Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.07 KB | None | 0 0
  1.  
  2. VWF:
  3.  
  4. var_40 equ -0x40
  5. var_3C equ -0x3C
  6. var_38 equ -0x38
  7. var_34 equ -0x34
  8. var_30 equ -0x30
  9. var_2C equ -0x2C
  10. var_28 equ -0x28
  11.  
  12. STMFD SP!, {R4-R11,LR}
  13. sub sp,1Ch
  14. MOV R4, R0
  15. LDR R1, [R4,4]
  16. LDRB R1, [R1]
  17. CMP R1, 0
  18. BNE loc_2011AAC
  19. MOV R0, 0
  20. STR R0, [R4,0x28]
  21. ADD SP, SP, 0x1C
  22. STR R0, [R4,0x2C]
  23. LDMFD SP!, {R4-R11,PC}
  24.  
  25. loc_2011AAC: ; CODE XREF: 2011A7C+18j
  26.  
  27. ADD R1, SP, 0x40+var_28
  28. ADD R2, SP, 0x40-0x30
  29. ADD R3, SP, 0x40+var_2C
  30. bl getwidths
  31.  
  32. ; BL 0x2010E68
  33. LDRH R1, [R4,0x22]
  34. LDRB R0, [R4,0x20]
  35. CMP R1, 0
  36. LDREQ R1, [SP,0x40+var_28]
  37.  
  38.  
  39. ; and r0,r0,7h
  40. ; add r1,r1,r0
  41. ; ands r0,r1,7h
  42. ; subne r1,r1,r0
  43. ; addne r1,8h
  44.  
  45. AND R0, R0, 7
  46. ADD R1, R1, 4
  47. ADD R1, R1, R0
  48. MOV R0, R1,ASR2
  49. ADD R0, R1, R0,LSR29
  50. MOV R0, R0,ASR3
  51. STR R0, [SP,0x40-0x30]
  52. MOV R2, R0,LSL7
  53. MOV R0, 1
  54. MOV R1, 0x20
  55. BL 0x2004240
  56. LDR R1, [SP,0x40-0x30]
  57. MOV R5, R0
  58. MOV R2, R1,LSL3
  59. MOV R0, 1
  60. MOV R1, 0x20
  61. BL 0x2004240
  62. LDR R1, [SP,0x40-0x30]
  63. MOV R6, R0
  64. MOV R0, R1,LSL7
  65. CMP R0, 0
  66. MOV R1, 0
  67. BLE loc_2011B44
  68.  
  69. loc_2011B28: ; CODE XREF: 2011A7C+C4j
  70.  
  71. LDRB R0, [R4,0xD]
  72. ADD R0, R0, R0,LSL4
  73. STRB R0, [R5,R1]
  74. LDR R0, [SP,0x40-0x30]
  75. ADD R1, R1, 1
  76. CMP R1, R0,LSL7
  77. BLT loc_2011B28
  78.  
  79. loc_2011B44: ; CODE XREF: 2011A7C+A8j
  80. STR R5, [R4,0x28]
  81. MOV R0, 0
  82. STR R6, [R4,0x2C]
  83. STRH R0, [R4,0x30]
  84. STRH R0, [R4,0x32]
  85. STR R0, [SP,0x40+var_3C]
  86. LDR R0, [SP,0x40+var_2C]
  87. LDRB R3, [R4,0x20]
  88. LDRH R1, [R4,0x24]
  89. CMP R0, 0
  90. LDR R0, [R4,4]
  91. LDRB R2, [R4,0x21]
  92. ADD R7, R3, R1
  93. STR R0, [SP,0x40+var_38]
  94. BLS loc_2011FF0
  95. MOV R1, R2,LSR31
  96. RSB R0, R1, R2,LSL29
  97. LDR R10, [Address2]
  98. ADD R8, R1, R0,ROR29
  99.  
  100. loc_2011B90: ; CODE XREF: 2011A7C+570j
  101. LDR R0, [SP,0x40+var_38]
  102. ; änderung: nur ein byte statt einem hw laden
  103.  
  104. ldrb r5,[r0],1h ; byte laden, offset erhöhen
  105. str r0,[sp,0x40+var_38] ; und den neuen offset speichern
  106.  
  107. ; LDRB R2, [R0]
  108. ; LDRB R1, [R0,1]
  109. ; ADD R0, R0, 2
  110. ; STR R0, [SP,0x40+var_38]
  111. ; MOV R0, R2,LSL24
  112. ; ADD R0, R1, R0,LSR16
  113. ; MOV R0, R0,LSL16
  114. ; MOV R5, R0,LSR16
  115.  
  116. LDRB R0, [R4,9]
  117. CMP R0, 7
  118. ADDLS PC, PC, R0,LSL2
  119. B loc_2011FD8
  120. loc_2011BC4: ; CODE XREF: 2011A7C+140j
  121. B loc_2011FD8
  122. loc_2011BC8: ; CODE XREF: 2011A7C+140j
  123. B loc_2011FD8
  124. loc_2011BCC: ; CODE XREF: 2011A7C+140j
  125. B loc_2011BE4
  126. loc_2011BD0: ; CODE XREF: 2011A7C+140j
  127. B loc_2011FD8
  128. loc_2011BD4: ; CODE XREF: 2011A7C+140j
  129. B loc_2011CDC
  130. loc_2011BD8: ; CODE XREF: 2011A7C+140j
  131. B loc_2011E8C
  132. loc_2011BDC: ; CODE XREF: 2011A7C+140j
  133. B loc_2011EEC
  134. loc_2011BE0: ; CODE XREF: 2011A7C+140j
  135. B loc_2011F7C
  136. loc_2011BE4: ; CODE XREF: 2011A7C+140j
  137. ; 2011A7C:loc_2011BCCj
  138. ; jumptable 02011BBC entry 2
  139. LDRB R1, [R4,0xA]
  140. MOV R0, R5
  141. BL 0x2010F2C
  142. LDRB R9, [R4,9]
  143. LDR R3, [Address1]
  144. LDRB R1, [R4,0x20]
  145. LDR R9, [R3,R9,LSL2]
  146. MOV R3, 0x1A
  147. MLA R3, R0, R3, R9
  148. BIC R0, R1, 7
  149. LDR R11, [R4,0xB0]
  150. SUB R0, R7, R0
  151. LDR R2, [R4,0x28]
  152. MOV R0, R0,LSR3
  153. STR R3, [SP,0x40+var_34]
  154. ADD R9, R2, R0,LSL5
  155. CMP R11, 0
  156. MOVEQ R0, 0
  157. BEQ loc_2011C44
  158. LDRB R2, [R4,0xC]
  159. LDRB R3, [R4,0xD]
  160. MOV R0, R5
  161. MOV R1, R10
  162. BLX R11
  163.  
  164. loc_2011C44: ; CODE XREF: 2011A7C+1B0j
  165. CMP R0, 0
  166. BNE loc_2011C64
  167. LDR R0, [SP,0x40+var_34]
  168. LDRB R2, [R4,0xC]
  169. LDRB R3, [R4,0xD]
  170. ADD R0, R0, 2
  171. MOV R1, R10
  172. BL 0x2010F90
  173.  
  174. loc_2011C64: ; CODE XREF: 2011A7C+1CCj
  175. MOV R1, R7,LSR31
  176. RSB R0, R1, R7,LSL29
  177. ADDS R0, R1, R0,ROR29
  178. CMPEQ R8, 0
  179. BNE loc_2011C88
  180. MOV R0, R9
  181. LDR R1, [SP,0x40-0x30]
  182. BL 0x2011408
  183. B loc_2011CD4
  184. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  185.  
  186. loc_2011C88: ; CODE XREF: 2011A7C+1F8j
  187. CMP R0, 0
  188. BEQ loc_2011CA8
  189. CMP R8, 0
  190. BNE loc_2011CA8
  191. MOV R0, R9
  192. LDR R1, [SP,0x40-0x30]
  193. BL 0x2011484
  194. B loc_2011CD4
  195. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  196.  
  197. loc_2011CA8: ; CODE XREF: 2011A7C+210j
  198. ; 2011A7C+218j
  199. CMP R0, 0
  200. BNE loc_2011CC8
  201. CMP R8, 0
  202. BEQ loc_2011CC8
  203. MOV R0, R9
  204. LDR R1, [SP,0x40-0x30]
  205. BL 0x2011564
  206. B loc_2011CD4
  207. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  208.  
  209. loc_2011CC8: ; CODE XREF: 2011A7C+230j
  210. ; 2011A7C+238j
  211. MOV R0, R9
  212. LDR R1, [SP,0x40-0x30]
  213. BL 0x2011634
  214.  
  215. loc_2011CD4: ; CODE XREF: 2011A7C+208j
  216. ; 2011A7C+228j ...
  217. ADD R7, R7, 0xC
  218. B loc_2011FD8
  219. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  220.  
  221. loc_2011CDC: ; CODE XREF: 2011A7C+140j
  222. ; 2011A7C:loc_2011BD4j
  223. ; jumptable 02011BBC entry 4
  224.  
  225. @@normal:
  226.  
  227. and r5,7Fh ; zeichen gehen nur bis 128
  228. ldrb r9,[r4,9h] ; mode byte laden
  229. ldr r3,[Address1] ; struct addresse laden
  230. ldr r11,[r3,r9,lsl 2h] ; font pointer laden
  231. mov r3,0Ch ; 1 zeichen = 12 byte an daten
  232. ldrb r1,[r11,r5] ; größenbyte laden
  233. mla r11,r3,r5,r11 ; mit der zeichennummer malnehmen und start vom font dazu addieren
  234. add r11,80h ; und die width table natürlich übergehen
  235. mov r5,r1 ; und das größbenbyte aufheben
  236.  
  237.  
  238. LDRB R1, [R4,0x20] ; größe?
  239. BIC R0, R1, 7
  240. SUB R0, R7, R0
  241. LDR R2, [R4,0x28]
  242. MOV R0, R0,LSR3
  243. ADD R9, R2, R0,LSL5
  244.  
  245. ; jetzt das ganze zeichen konvertieren
  246.  
  247. mov r0,r11
  248. MOV R1, R10
  249. LDRB R2, [R4,0xC]
  250. LDRB R3, [R4,0xD]
  251. BL 0x20110F0
  252.  
  253. ; und genau ab hier startet das verbinden! der lustige teil der arbeit
  254.  
  255. loc_2011D60: ; CODE XREF: 2011A7C+2CCj
  256.  
  257. cmp r8,0h ; check, welche der beiden funktionen gebraucht wird
  258.  
  259. mov r0,r9 ; ziel im ram
  260. mov r1,r7 ; aktuelle größe
  261. mov r2,r5 ; größe vom zeichen
  262. ldr r3,[SP,0x40-0x30] ; anzahl zeichen
  263.  
  264. bne @@MidTileBl
  265. bl DrawChar1
  266. ; bl 204127Ch ; grade reihen
  267. b loc_2011DD0 ; und weg
  268.  
  269. @@MidTileBl:
  270.  
  271. bl DrawChar2
  272. ; bl 204197Ch ; ungrade reihen
  273.  
  274. loc_2011DD0:
  275.  
  276. add r7,r7,r5 ; größe dazu addieren!
  277. B loc_2011FD8
  278.  
  279. loc_2011E8C: ; CODE XREF: 2011A7C+140j
  280. ; 2011A7C:loc_2011BD8j
  281. ; jumptable 02011BBC entry 5
  282. LDRB R1, [R4,0xA]
  283. MOV R0, R5
  284. BL 0x2010F2C
  285. LDRB R3, [R4,9]
  286. LDR R1, [Address1]
  287. LDRB R5, [R4,0x20]
  288. LDR R9, [R1,R3,LSL2]
  289. MOV R3, 0x12
  290. MLA R3, R0, R3, R9
  291. BIC R0, R5, 7
  292. SUB R0, R7, R0
  293. LDR R2, [R4,0x28]
  294. MOV R0, R0,LSR3
  295. ADD R5, R2, R0,LSL5
  296. ADD R0, R3, 2
  297. LDRB R2, [R4,0xC]
  298. LDRB R3, [R4,0xD]
  299. MOV R1, R10
  300. BL 0x20111A0
  301. LDR R1, [SP,0x40-0x30]
  302. MOV R0, R5
  303. BL 0x201199C
  304. ADD R7, R7, 8
  305. B loc_2011FD8
  306. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  307.  
  308. loc_2011EEC: ; CODE XREF: 2011A7C+140j
  309. ; 2011A7C:loc_2011BDCj
  310. ; jumptable 02011BBC entry 6
  311. LDRB R1, [R4,0xA]
  312. MOV R0, R5
  313. BL 0x2010F2C
  314. LDRB R9, [R4,9]
  315. LDR R3, [Address1]
  316. LDRB R1, [R4,0x20]
  317. LDR R9, [R3,R9,LSL2]
  318. MOV R3, 0x22
  319. MLA R9, R0, R3, R9
  320. BIC R0, R1, 7
  321. SUB R0, R7, R0
  322. LDR R11, [R4,0xB0]
  323. LDR R2, [R4,0x28]
  324. MOV R0, R0,LSR3
  325. ADD R0, R2, R0,LSL5
  326. STR R0, [SP,0x40+var_40]
  327. CMP R11, 0
  328. MOVEQ R0, 0
  329. BEQ loc_2011F4C
  330. LDRB R2, [R4,0xC]
  331. LDRB R3, [R4,0xD]
  332. MOV R0, R5
  333. MOV R1, R10
  334. BLX R11
  335.  
  336. loc_2011F4C: ; CODE XREF: 2011A7C+4B8j
  337. CMP R0, 0
  338. BNE loc_2011F68
  339. ADD R0, R9, 2
  340. MOV R1, R10
  341. LDRB R2, [R4,0xC]
  342. LDRB R3, [R4,0xD]
  343. BL 0x2011250
  344.  
  345. loc_2011F68: ; CODE XREF: 2011A7C+4D4j
  346. LDR R0, [SP,0x40+var_40]
  347. LDR R1, [SP,0x40-0x30]
  348. BL 0x20119E4
  349. ADD R7, R7, 0x10
  350. B loc_2011FD8
  351. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  352.  
  353. loc_2011F7C: ; CODE XREF: 2011A7C+140j
  354. ; 2011A7C:loc_2011BE0j
  355. ; jumptable 02011BBC entry 7
  356. LDRB R1, [R4,0xA]
  357. MOV R0, R5
  358. BL 0x2010F2C
  359. LDRB R3, [R4,9]
  360. LDR R1, [Address1]
  361. LDRB R5, [R4,0x20]
  362. LDR R9, [R1,R3,LSL2]
  363. MOV R3, 0xA
  364. MLA R3, R0, R3, R9
  365. BIC R0, R5, 7
  366. SUB R0, R7, R0
  367. LDR R2, [R4,0x28]
  368. MOV R0, R0,LSR3
  369. ADD R5, R2, R0,LSL5
  370. ADD R0, R3, 2
  371. LDRB R2, [R4,0xC]
  372. LDRB R3, [R4,0xD]
  373. MOV R1, R10
  374. BL 0x20113B0
  375. LDR R1, [SP,0x40-0x30]
  376. MOV R0, R5
  377. BL 0x2011A58
  378. ADD R7, R7, 8
  379.  
  380. loc_2011FD8: ; CODE XREF: 2011A7C+140j
  381. ; 2011A7C+144j ...
  382. ; jumptable 02011BBC default entry
  383. ; jumptable 02011BBC entries 0,1,3
  384. LDR R0, [SP,0x40+var_3C]
  385. LDR R1, [SP,0x40+var_2C]
  386. ADD R0, R0, 1
  387. STR R0, [SP,0x40+var_3C]
  388. CMP R0, R1
  389. BCC loc_2011B90
  390.  
  391. loc_2011FF0: ; CODE XREF: 2011A7C+100j
  392. LDRB R0, [R4,9]
  393. CMP R0, 7
  394. ADDLS PC, PC, R0,LSL2
  395. B loc_2012274
  396. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  397.  
  398. loc_2012000: ; CODE XREF: 2011A7C+57Cj
  399. B loc_2012274
  400. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  401.  
  402. loc_2012004: ; CODE XREF: 2011A7C+57Cj
  403. B loc_2012274
  404. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  405.  
  406. loc_2012008: ; CODE XREF: 2011A7C+57Cj
  407. B loc_2012020
  408. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  409.  
  410. loc_201200C: ; CODE XREF: 2011A7C+57Cj
  411. B loc_2012274
  412. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  413.  
  414. loc_2012010: ; CODE XREF: 2011A7C+57Cj
  415. B loc_2012098
  416. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  417.  
  418. loc_2012014: ; CODE XREF: 2011A7C+57Cj
  419. B loc_2012110
  420. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  421.  
  422. loc_2012018: ; CODE XREF: 2011A7C+57Cj
  423. B loc_2012188
  424. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  425.  
  426. loc_201201C: ; CODE XREF: 2011A7C+57Cj
  427. B loc_2012200
  428. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  429.  
  430. loc_2012020: ; CODE XREF: 2011A7C+57Cj
  431. ; 2011A7C:loc_2012008j
  432. ; jumptable 02011FF8 entry 2
  433. LDR R1, [SP,0x40-0x30]
  434. MOV R0, 0
  435. CMP R1, 0
  436. BLE loc_2012078
  437.  
  438. loc_2012030: ; CODE XREF: 2011A7C+5F8j
  439. LDRB R2, [R4,0xB]
  440. LDR R1, [R4,0x14]
  441. ADD R1, R1, R2,LSL12
  442. ADD R1, R0, R1
  443. STRH R1, [R6]
  444. LDRB R2, [R4,0xB]
  445. LDR R1, [R4,0x14]
  446. LDR R3, [SP,0x40-0x30]
  447. ADD R1, R1, R2,LSL12
  448. ADD R1, R0, R1
  449. ADD R2, R3, R1
  450. MOV R1, R3,LSL1
  451. STRH R2, [R6,R1]
  452. LDR R1, [SP,0x40-0x30]
  453. ADD R0, R0, 1
  454. CMP R0, R1
  455. ADD R6, R6, 2
  456. BLT loc_2012030
  457.  
  458. loc_2012078: ; CODE XREF: 2011A7C+5B0j
  459. MOV R0, R1,LSL1
  460. STRH R0, [R4,0x32]
  461. MOV R0, 2
  462. STRH R0, [R4,0x34]
  463. LDR R0, [SP,0x40-0x30]
  464. MOV R0, R0,LSL6
  465. STRH R0, [R4,0x30]
  466. B loc_2012274
  467. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  468.  
  469. loc_2012098: ; CODE XREF: 2011A7C+57Cj
  470. ; 2011A7C:loc_2012010j
  471. ; jumptable 02011FF8 entry 4
  472. LDR R1, [SP,0x40-0x30]
  473. MOV R0, 0
  474. CMP R1, 0
  475. BLE loc_20120F0
  476.  
  477. loc_20120A8: ; CODE XREF: 2011A7C+670j
  478. LDRB R2, [R4,0xB]
  479. LDR R1, [R4,0x14]
  480. ADD R1, R1, R2,LSL12
  481. ADD R1, R0, R1
  482. STRH R1, [R6]
  483. LDRB R2, [R4,0xB]
  484. LDR R1, [R4,0x14]
  485. LDR R3, [SP,0x40-0x30]
  486. ADD R1, R1, R2,LSL12
  487. ADD R1, R0, R1
  488. ADD R2, R3, R1
  489. MOV R1, R3,LSL1
  490. STRH R2, [R6,R1]
  491. LDR R1, [SP,0x40-0x30]
  492. ADD R0, R0, 1
  493. CMP R0, R1
  494. ADD R6, R6, 2
  495. BLT loc_20120A8
  496.  
  497. loc_20120F0: ; CODE XREF: 2011A7C+628j
  498. MOV R0, R1,LSL1
  499. STRH R0, [R4,0x32]
  500. MOV R0, 2
  501. STRH R0, [R4,0x34]
  502. LDR R0, [SP,0x40-0x30]
  503. MOV R0, R0,LSL6
  504. STRH R0, [R4,0x30]
  505. B loc_2012274
  506. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  507.  
  508. loc_2012110: ; CODE XREF: 2011A7C+57Cj
  509. ; 2011A7C:loc_2012014j
  510. ; jumptable 02011FF8 entry 5
  511. LDR R1, [SP,0x40-0x30]
  512. MOV R0, 0
  513. CMP R1, 0
  514. BLE loc_2012168
  515.  
  516. loc_2012120: ; CODE XREF: 2011A7C+6E8j
  517. LDRB R2, [R4,0xB]
  518. LDR R1, [R4,0x14]
  519. ADD R1, R1, R2,LSL12
  520. ADD R1, R0, R1
  521. STRH R1, [R6]
  522. LDRB R2, [R4,0xB]
  523. LDR R1, [R4,0x14]
  524. LDR R3, [SP,0x40-0x30]
  525. ADD R1, R1, R2,LSL12
  526. ADD R1, R0, R1
  527. ADD R2, R3, R1
  528. MOV R1, R3,LSL1
  529. STRH R2, [R6,R1]
  530. LDR R1, [SP,0x40-0x30]
  531. ADD R0, R0, 1
  532. CMP R0, R1
  533. ADD R6, R6, 2
  534. BLT loc_2012120
  535.  
  536. loc_2012168: ; CODE XREF: 2011A7C+6A0j
  537. MOV R0, R1,LSL1
  538. STRH R0, [R4,0x32]
  539. MOV R0, 2
  540. STRH R0, [R4,0x34]
  541. LDR R0, [SP,0x40-0x30]
  542. MOV R0, R0,LSL6
  543. STRH R0, [R4,0x30]
  544. B loc_2012274
  545. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  546.  
  547. loc_2012188: ; CODE XREF: 2011A7C+57Cj
  548. ; 2011A7C:loc_2012018j
  549. ; jumptable 02011FF8 entry 6
  550. LDR R1, [SP,0x40-0x30]
  551. MOV R0, 0
  552. CMP R1, 0
  553. BLE loc_20121E0
  554.  
  555. loc_2012198: ; CODE XREF: 2011A7C+760j
  556. LDRB R2, [R4,0xB]
  557. LDR R1, [R4,0x14]
  558. ADD R1, R1, R2,LSL12
  559. ADD R1, R0, R1
  560. STRH R1, [R6]
  561. LDRB R2, [R4,0xB]
  562. LDR R1, [R4,0x14]
  563. LDR R3, [SP,0x40-0x30]
  564. ADD R1, R1, R2,LSL12
  565. ADD R1, R0, R1
  566. ADD R2, R3, R1
  567. MOV R1, R3,LSL1
  568. STRH R2, [R6,R1]
  569. LDR R1, [SP,0x40-0x30]
  570. ADD R0, R0, 1
  571. CMP R0, R1
  572. ADD R6, R6, 2
  573. BLT loc_2012198
  574.  
  575. loc_20121E0: ; CODE XREF: 2011A7C+718j
  576. MOV R0, R1,LSL1
  577. STRH R0, [R4,0x32]
  578. MOV R0, 2
  579. STRH R0, [R4,0x34]
  580. LDR R0, [SP,0x40-0x30]
  581. MOV R0, R0,LSL6
  582. STRH R0, [R4,0x30]
  583. B loc_2012274
  584. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  585.  
  586. loc_2012200: ; CODE XREF: 2011A7C+57Cj
  587. ; 2011A7C:loc_201201Cj
  588. ; jumptable 02011FF8 entry 7
  589. LDR R1, [SP,0x40-0x30]
  590. MOV R0, 0
  591. CMP R1, 0
  592. BLE loc_2012258
  593.  
  594. loc_2012210: ; CODE XREF: 2011A7C+7D8j
  595. LDRB R2, [R4,0xB]
  596. LDR R1, [R4,0x14]
  597. ADD R1, R1, R2,LSL12
  598. ADD R1, R0, R1
  599. STRH R1, [R6]
  600. LDRB R2, [R4,0xB]
  601. LDR R1, [R4,0x14]
  602. LDR R3, [SP,0x40-0x30]
  603. ADD R1, R1, R2,LSL12
  604. ADD R1, R0, R1
  605. ADD R2, R3, R1
  606. MOV R1, R3,LSL1
  607. STRH R2, [R6,R1]
  608. LDR R1, [SP,0x40-0x30]
  609. ADD R0, R0, 1
  610. CMP R0, R1
  611. ADD R6, R6, 2
  612. BLT loc_2012210
  613.  
  614. loc_2012258: ; CODE XREF: 2011A7C+790j
  615. MOV R0, R1,LSL1
  616. STRH R0, [R4,0x32]
  617. MOV R0, 1
  618. STRH R0, [R4,0x34]
  619. LDR R0, [SP,0x40-0x30]
  620. MOV R0, R0,LSL5
  621. STRH R0, [R4,0x30]
  622.  
  623. loc_2012274: ; CODE XREF: 2011A7C+57Cj
  624. ; 2011A7C+580j ...
  625. ; jumptable 02011FF8 default entry
  626. ; jumptable 02011FF8 entries 0,1,3
  627. MOV R3, 0
  628. MOV R0, R3
  629.  
  630. loc_201227C: ; CODE XREF: 2011A7C+82Cj
  631. ADD R2, R4, R3,LSL2
  632. STR R0, [R2,0x38]
  633. ADD R1, R4, R3,LSL1
  634. STR R0, [R2,0x50]
  635. STRH R0, [R1,0x68]
  636. STRH R0, [R1,0x74]
  637. STRH R0, [R1,0x80]
  638. STRH R0, [R1,0x8C]
  639. ADD R3, R3, 1
  640. STR R0, [R2,0x98]
  641. CMP R3, 6
  642. BLT loc_201227C
  643. LDRB R1, [R4,0x10]
  644. CMP R1, 0
  645. BNE loc_20122E8
  646. LDR R2, [R4,0x28]
  647. MOV R1, 1
  648. STR R2, [R4,0x38]
  649. LDR R2, [R4,0x18]
  650. STR R2, [R4,0x50]
  651. LDRSH R2, [R4,0x30]
  652. STRH R2, [R4,0x68]
  653. STRH R1, [R4,0x74]
  654. STRH R0, [R4,0x80]
  655. STRH R0, [R4,0x8C]
  656. STR R0, [R4,0x98]
  657. B loc_201278C
  658. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  659.  
  660. loc_20122E8: ; CODE XREF: 2011A7C+838j
  661. LDRB R1, [R4,0x21]
  662. MOV R2, R1,LSR31
  663. RSB R1, R2, R1,LSL29
  664. ADDS R1, R2, R1,ROR29
  665. LDRH R2, [R4,0x24]
  666. LDRB R1, [R4,0x20]
  667. BNE loc_2012544
  668. LDR R6, [SP,0x40+var_28]
  669. ADD R1, R1, R2
  670. TST R1, 7
  671. MOV R7, R0
  672. SUBNE R6, R6, 4
  673. MOVNE R0, 4
  674. TST R6, 7
  675. SUBNE R6, R6, 4
  676. MOVNE R7, 4
  677. CMP R0, 0
  678. BEQ loc_20123C4
  679. MOV R1, R2,LSR3
  680. MOV R1, R1,LSL5
  681. ADD R5, R1, 2
  682. LDR R2, [R4,0x28]
  683. ADD R1, R5, R5,LSR31
  684. ADD R2, R2, R5
  685. STR R2, [R4,0x38]
  686. LDR R2, [R4,0x18]
  687. MOV R1, R1,ASR1
  688. ADD R1, R2, R1,LSL1
  689. STR R1, [R4,0x50]
  690. MOV R3, 2
  691. STRH R3, [R4,0x68]
  692. MOV R1, 8
  693. STRH R1, [R4,0x74]
  694. MOV R2, 4
  695. STRH R2, [R4,0x80]
  696. STRH R2, [R4,0x8C]
  697. MOV R1, 0
  698. STR R1, [R4,0x98]
  699. LDR R8, [SP,0x40-0x30]
  700. LDR R9, [R4,0x28]
  701. ADD R8, R5, R8,LSL5
  702. ADD R8, R9, R8
  703. STR R8, [R4,0x44]
  704. LDR R8, [SP,0x40-0x30]
  705. LDR R9, [R4,0x18]
  706. ADD R5, R5, R8,LSL5
  707. ADD R5, R5, R5,LSR31
  708. MOV R5, R5,ASR1
  709. ADD R5, R9, R5,LSL1
  710. STR R5, [R4,0x5C]
  711. STRH R3, [R4,0x6E]
  712. STRH R2, [R4,0x7A]
  713. STRH R2, [R4,0x86]
  714. STRH R2, [R4,0x92]
  715. STR R1, [R4,0xA4]
  716.  
  717. loc_20123C4: ; CODE XREF: 2011A7C+8B0j
  718. CMP R6, 0
  719. BEQ loc_2012480
  720. LDRH R1, [R4,0x24]
  721. CMP R0, 0
  722. LDR R3, [R4,0x28]
  723. MOVEQ R1, R1,LSR3
  724. MOVEQ R2, R1,LSL5
  725. MOVNE R1, R1,LSR3
  726. MOVNE R1, R1,LSL5
  727. ADDNE R2, R1, 0x20
  728. ADD R3, R3, R2
  729. ADD R1, R2, R2,LSR31
  730. STR R3, [R4,0x3C]
  731. LDR R3, [R4,0x18]
  732. MOV R1, R1,ASR1
  733. ADD R1, R3, R1,LSL1
  734. STR R1, [R4,0x54]
  735. MOV R1, R6,LSL2
  736. STRH R1, [R4,0x6A]
  737. MOV R1, 1
  738. STRH R1, [R4,0x76]
  739. MOV R1, 0
  740. STRH R1, [R4,0x82]
  741. STRH R1, [R4,0x8E]
  742. STR R1, [R4,0x9C]
  743. LDR R5, [R4,0x28]
  744. LDR R3, [SP,0x40-0x30]
  745. ADD R5, R5, R2
  746. ADD R3, R5, R3,LSL5
  747. STR R3, [R4,0x48]
  748. LDR R3, [SP,0x40-0x30]
  749. LDR R5, [R4,0x18]
  750. ADD R2, R2, R3,LSL5
  751. ADD R2, R2, R2,LSR31
  752. MOV R2, R2,ASR1
  753. ADD R3, R5, R2,LSL1
  754. MOV R2, R6,ASR2
  755. ADD R2, R6, R2,LSR29
  756. STR R3, [R4,0x60]
  757. MOV R3, 0x10
  758. STRH R3, [R4,0x70]
  759. MOV R2, R2,ASR3
  760. STRH R2, [R4,0x7C]
  761. MOV R2, 0x20
  762. STRH R2, [R4,0x88]
  763. STRH R2, [R4,0x94]
  764. STR R1, [R4,0xA8]
  765.  
  766. loc_2012480: ; CODE XREF: 2011A7C+94Cj
  767. CMP R7, 0
  768. BEQ loc_201278C
  769. LDRH R1, [R4,0x24]
  770. CMP R0, 0
  771. LDRNE R0, [SP,0x40+var_28]
  772. ADDNE R1, R1, R0
  773. BNE loc_20124A8
  774. LDR R0, [SP,0x40+var_28]
  775. ADD R0, R1, R0
  776. SUB R1, R0, 4
  777.  
  778. loc_20124A8: ; CODE XREF: 2011A7C+A1Cj
  779. MOV R0, R1,ASR2
  780. ADD R0, R1, R0,LSR29
  781. MOV R0, R0,ASR3
  782. MOV R3, R0,LSL5
  783. LDR R1, [R4,0x28]
  784. ADD R0, R3, R3,LSR31
  785. ADD R1, R1, R3
  786. STR R1, [R4,0x40]
  787. LDR R1, [R4,0x18]
  788. MOV R0, R0,ASR1
  789. ADD R0, R1, R0,LSL1
  790. STR R0, [R4,0x58]
  791. MOV R2, 2
  792. STRH R2, [R4,0x6C]
  793. MOV R0, 8
  794. STRH R0, [R4,0x78]
  795. MOV R1, 4
  796. STRH R1, [R4,0x84]
  797. STRH R1, [R4,0x90]
  798. MOV R0, 0
  799. STR R0, [R4,0xA0]
  800. LDR R6, [R4,0x28]
  801. LDR R5, [SP,0x40-0x30]
  802. ADD R6, R6, R3
  803. ADD R5, R6, R5,LSL5
  804. STR R5, [R4,0x4C]
  805. LDR R5, [SP,0x40-0x30]
  806. LDR R6, [R4,0x18]
  807. ADD R3, R3, R5,LSL5
  808. ADD R3, R3, R3,LSR31
  809. MOV R3, R3,ASR1
  810. ADD R3, R6, R3,LSL1
  811. STR R3, [R4,0x64]
  812. STRH R2, [R4,0x72]
  813. STRH R1, [R4,0x7E]
  814. STRH R1, [R4,0x8A]
  815. STRH R1, [R4,0x96]
  816. STR R0, [R4,0xAC]
  817. B loc_201278C
  818. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  819.  
  820. loc_2012544: ; CODE XREF: 2011A7C+884j
  821. LDR R6, [SP,0x40+var_28]
  822. ADD R1, R1, R2
  823. TST R1, 7
  824. MOV R7, R0
  825. SUBNE R6, R6, 4
  826. MOVNE R0, 4
  827. TST R6, 7
  828. SUBNE R6, R6, 4
  829. MOVNE R7, 4
  830. CMP R0, 0
  831. BEQ loc_2012608
  832. MOV R1, R2,LSR3
  833. MOV R5, R1,LSL5
  834. ADD R2, R5, 0x12
  835. LDR R3, [R4,0x28]
  836. ADD R1, R2, R2,LSR31
  837. ADD R2, R3, R2
  838. STR R2, [R4,0x38]
  839. LDR R2, [R4,0x18]
  840. MOV R1, R1,ASR1
  841. ADD R1, R2, R1,LSL1
  842. STR R1, [R4,0x50]
  843. MOV R3, 2
  844. STRH R3, [R4,0x68]
  845. MOV R2, 4
  846. STRH R2, [R4,0x74]
  847. STRH R2, [R4,0x80]
  848. STRH R2, [R4,0x8C]
  849. MOV R1, 0
  850. STR R1, [R4,0x98]
  851. LDR R8, [SP,0x40-0x30]
  852. ADD R9, R5, 2
  853. LDR R10, [R4,0x28]
  854. ADD R5, R9, R8,LSL5
  855. ADD R5, R10, R5
  856. STR R5, [R4,0x44]
  857. LDR R5, [SP,0x40-0x30]
  858. LDR R8, [R4,0x18]
  859. ADD R5, R9, R5,LSL5
  860. ADD R5, R5, R5,LSR31
  861. MOV R5, R5,ASR1
  862. ADD R5, R8, R5,LSL1
  863. STR R5, [R4,0x5C]
  864. STRH R3, [R4,0x6E]
  865. MOV R3, 8
  866. STRH R3, [R4,0x7A]
  867. STRH R2, [R4,0x86]
  868. STRH R2, [R4,0x92]
  869. STR R1, [R4,0xA4]
  870.  
  871. loc_2012608: ; CODE XREF: 2011A7C+AF0j
  872. CMP R6, 0
  873. BEQ loc_20126C8
  874. LDRH R1, [R4,0x24]
  875. CMP R0, 0
  876. LDR R3, [R4,0x28]
  877. MOVEQ R1, R1,LSR3
  878. MOVEQ R2, R1,LSL5
  879. MOVNE R1, R1,LSR3
  880. MOVNE R1, R1,LSL5
  881. ADDNE R2, R1, 0x20
  882. ADD R1, R2, 0x10
  883. ADD R3, R3, R1
  884. STR R3, [R4,0x3C]
  885. ADD R1, R1, R1,LSR31
  886. LDR R3, [R4,0x18]
  887. MOV R1, R1,ASR1
  888. ADD R3, R3, R1,LSL1
  889. MOV R1, R6,ASR2
  890. ADD R1, R6, R1,LSR29
  891. STR R3, [R4,0x54]
  892. MOV R3, 0x10
  893. STRH R3, [R4,0x6A]
  894. MOV R1, R1,ASR3
  895. STRH R1, [R4,0x76]
  896. MOV R1, 0x20
  897. STRH R1, [R4,0x82]
  898. STRH R1, [R4,0x8E]
  899. MOV R1, 0
  900. STR R1, [R4,0x9C]
  901. LDR R5, [R4,0x28]
  902. LDR R3, [SP,0x40-0x30]
  903. ADD R5, R5, R2
  904. ADD R3, R5, R3,LSL5
  905. STR R3, [R4,0x48]
  906. LDR R3, [SP,0x40-0x30]
  907. LDR R5, [R4,0x18]
  908. ADD R2, R2, R3,LSL5
  909. ADD R2, R2, R2,LSR31
  910. MOV R2, R2,ASR1
  911. ADD R2, R5, R2,LSL1
  912. STR R2, [R4,0x60]
  913. MOV R2, R6,LSL2
  914. STRH R2, [R4,0x70]
  915. MOV R2, 1
  916. STRH R2, [R4,0x7C]
  917. STRH R1, [R4,0x88]
  918. STRH R1, [R4,0x94]
  919. STR R1, [R4,0xA8]
  920.  
  921. loc_20126C8: ; CODE XREF: 2011A7C+B90j
  922. CMP R7, 0
  923. BEQ loc_201278C
  924. LDRH R1, [R4,0x24]
  925. CMP R0, 0
  926. LDRNE R0, [SP,0x40+var_28]
  927. ADDNE R1, R1, R0
  928. BNE loc_20126F0
  929. LDR R0, [SP,0x40+var_28]
  930. ADD R0, R1, R0
  931. SUB R1, R0, 4
  932.  
  933. loc_20126F0: ; CODE XREF: 2011A7C+C64j
  934. MOV R0, R1,ASR2
  935. ADD R0, R1, R0,LSR29
  936. MOV R0, R0,ASR3
  937. MOV R3, R0,LSL5
  938. LDR R1, [R4,0x28]
  939. ADD R0, R3, 0x10
  940. ADD R1, R1, R0
  941. STR R1, [R4,0x40]
  942. ADD R0, R0, R0,LSR31
  943. LDR R1, [R4,0x18]
  944. MOV R0, R0,ASR1
  945. ADD R0, R1, R0,LSL1
  946. STR R0, [R4,0x58]
  947. MOV R2, 2
  948. STRH R2, [R4,0x6C]
  949. MOV R1, 4
  950. STRH R1, [R4,0x78]
  951. STRH R1, [R4,0x84]
  952. STRH R1, [R4,0x90]
  953. MOV R0, 0
  954. STR R0, [R4,0xA0]
  955. LDR R5, [SP,0x40-0x30]
  956. LDR R6, [R4,0x28]
  957. ADD R5, R3, R5,LSL5
  958. ADD R5, R6, R5
  959. STR R5, [R4,0x4C]
  960. LDR R5, [SP,0x40-0x30]
  961. LDR R6, [R4,0x18]
  962. ADD R3, R3, R5,LSL5
  963. ADD R3, R3, R3,LSR31
  964. MOV R3, R3,ASR1
  965. ADD R3, R6, R3,LSL1
  966. STR R3, [R4,0x64]
  967. STRH R2, [R4,0x72]
  968. MOV R2, 8
  969. STRH R2, [R4,0x7E]
  970. STRH R1, [R4,0x8A]
  971. STRH R1, [R4,0x96]
  972. STR R0, [R4,0xAC]
  973.  
  974. loc_201278C: ; CODE XREF: 2011A7C+868j
  975. ; 2011A7C+A08j ...
  976. MOV R2, 5
  977.  
  978. loc_2012790: ; CODE XREF: 2011A7C+D34j
  979. ADD R1, R4, R2,LSL2
  980. LDR R0, [R1,0x38]
  981. CMP R0, 0
  982. LDRNE R0, [R4,0x28]
  983. ADDNE SP, SP, 0x1C
  984. STRNE R0, [R1,0x98]
  985. LDMNEFD SP!, {R4-R11,PC}
  986. SUBS R2, R2, 1
  987. BPL loc_2012790
  988. ADD SP, SP, 0x1C
  989. LDMFD SP!, {R4-R11,PC}
  990. ; End of function 2011A7C
  991.  
  992. ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  993.  
  994. Address1:
  995. .word 21F3630h
  996. Address2:
  997. .word 21F365Ch
  998. .pool
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement