Advertisement
Guest User

error

a guest
Jul 28th, 2015
599
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.08 KB | None | 0 0
  1. text:0046FC90 ; =============== S U B R O U T I N E =======================================
  2. .text:0046FC90
  3. .text:0046FC90 ; Attributes: bp-based frame
  4. .text:0046FC90
  5. .text:0046FC90 public _upcase_
  6. .text:0046FC90 _upcase_ proc near ; CODE XREF: _read_inp_+8DEp
  7. .text:0046FC90 ; _convert_inp_+6EEp ...
  8. .text:0046FC90
  9. .text:0046FC90 var_3AE4 = dword ptr -3AE4h
  10. .text:0046FC90 var_3AE0 = dword ptr -3AE0h
  11. .text:0046FC90 var_3ADC = dword ptr -3ADCh
  12. .text:0046FC90 var_3ACC = dword ptr -3ACCh
  13. .text:0046FC90 var_3AC8 = dword ptr -3AC8h
  14. .text:0046FC90 var_3AC4 = dword ptr -3AC4h
  15. .text:0046FC90 var_3AC0 = dword ptr -3AC0h
  16. .text:0046FC90 var_3ABC = dword ptr -3ABCh
  17. .text:0046FC90 var_3AB0 = byte ptr -3AB0h
  18. .text:0046FC90 var_2728 = byte ptr -2728h
  19. .text:0046FC90 var_13A0 = byte ptr -13A0h
  20. .text:0046FC90 Dst = dword ptr -0Ch
  21. .text:0046FC90 Src = dword ptr -8
  22. .text:0046FC90 Size = dword ptr -4
  23. .text:0046FC90 var_s0 = dword ptr 0
  24. .text:0046FC90 arg_0 = dword ptr 8
  25. .text:0046FC90 arg_4 = dword ptr 0Ch
  26. .text:0046FC90 arg_8 = dword ptr 10h
  27. .text:0046FC90
  28. .text:0046FC90 000 push ebp
  29. .text:0046FC91 004 mov ebp, esp
  30. .text:0046FC93 004 push edi
  31. .text:0046FC94 008 push esi
  32. .text:0046FC95 00C push ebx ; Size
  33. .text:0046FC96 010 mov eax, 3AFCh
  34. .text:0046FC9B 010 call __alloca
  35. .text:0046FCA0 010 mov ebx, [ebp+arg_8]
  36. .text:0046FCA3 010 lea eax, [ebp+var_3AB0]
  37. .text:0046FCA9 010 mov [ebp+var_3ADC], eax
  38. .text:0046FCAF 010 mov esi, offset unk_6E45BC
  39. .text:0046FCB4 010 mov ecx, 4E2h
  40. .text:0046FCB9 010 mov edi, eax
  41. .text:0046FCBB 010 rep movsd
  42. .text:0046FCBD 010 lea edx, [ebp+var_2728]
  43. .text:0046FCC3 010 mov [ebp+var_3AE0], edx
  44. .text:0046FCC9 010 mov esi, offset unk_6E45BC
  45. .text:0046FCCE 010 mov cx, 4E2h
  46. .text:0046FCD2 010 mov edi, edx
  47. .text:0046FCD4 010 rep movsd
  48. .text:0046FCD6 010 lea ecx, [ebp+var_13A0]
  49. .text:0046FCDC 010 mov [ebp+var_3AE4], ecx
  50. .text:0046FCE2 010 mov esi, offset unk_6E45BC
  51. .text:0046FCE7 010 mov ecx, 4E2h
  52. .text:0046FCEC 010 mov edi, [ebp+var_3AE4]
  53. .text:0046FCF2 010 rep movsd
  54. .text:0046FCF4 010 cmp ebx, 1387h
  55. .text:0046FCFA 010 jle loc_470060
  56. .text:0046FD00 010 mov [esp+0Ch+Size], 1388h ; Size
  57. .text:0046FD08 010 mov eax, [ebp+arg_0]
  58. .text:0046FD0B 010 mov [esp+0Ch+Src], eax ; Src
  59. .text:0046FD0F 010 lea edx, [ebp+var_3AB0]
  60. .text:0046FD15 010 mov [esp+0Ch+Dst], edx ; Dst
  61. .text:0046FD18 010 call _memmove
  62. .text:0046FD1D
  63. .text:0046FD1D loc_46FD1D: ; CODE XREF: _upcase_+3FEj
  64. .text:0046FD1D 010 mov eax, [ebp+arg_4]
  65. .text:0046FD20 010 mov ecx, [eax]
  66. .text:0046FD22 010 test ecx, ecx
  67. .text:0046FD24 010 jle short loc_46FD59
  68. .text:0046FD26 010 mov eax, 1
  69. .text:0046FD2B 010 mov esi, [ebp+arg_0]
  70. .text:0046FD2E 010 jmp short loc_46FD41
  71. .text:0046FD30 ; ---------------------------------------------------------------------------
  72. .text:0046FD30
  73. .text:0046FD30 loc_46FD30: ; CODE XREF: _upcase_+B9j
  74. .text:0046FD30 010 cmp edx, 7Ah
  75. .text:0046FD33 010 jg short loc_46FD3C
  76. .text:0046FD35 010 sub edx, 20h
  77. .text:0046FD38 010 mov [esi+eax-1], dl
  78. .text:0046FD3C
  79. .text:0046FD3C loc_46FD3C: ; CODE XREF: _upcase_+A3j
  80. .text:0046FD3C ; _upcase_+BEj
  81. .text:0046FD3C 010 cmp eax, ecx
  82. .text:0046FD3E 010 jz short loc_46FD59
  83. .text:0046FD40
  84. .text:0046FD40 loc_46FD40: ; CODE XREF: _upcase_+C7j
  85. .text:0046FD40 010 inc eax
  86. .text:0046FD41
  87. .text:0046FD41 loc_46FD41: ; CODE XREF: _upcase_+9Ej
  88. .text:0046FD41 010 movzx edx, byte ptr [esi+eax-1]
  89. .text:0046FD46 010 cmp edx, 60h
  90. .text:0046FD49 010 jg short loc_46FD30
  91. .text:0046FD4B 010 cmp edx, 9
  92. .text:0046FD4E 010 jnz short loc_46FD3C
  93. .text:0046FD50 010 mov byte ptr [esi+eax-1], 20h
  94. .text:0046FD55 010 cmp eax, ecx
  95. .text:0046FD57 010 jnz short loc_46FD40
  96. .text:0046FD59
  97. .text:0046FD59 loc_46FD59: ; CODE XREF: _upcase_+94j
  98. .text:0046FD59 ; _upcase_+AEj
  99. .text:0046FD59 010 inc ebx
  100. .text:0046FD5A 010 mov [ebp+var_3AC0], ebx
  101. .text:0046FD60 010 mov [ebp+var_3AC4], 0
  102. .text:0046FD6A 010 mov [ebp+var_3ABC], 1
  103. .text:0046FD74
  104. .text:0046FD74 loc_46FD74: ; CODE XREF: _upcase_+2BDj
  105. .text:0046FD74 ; _upcase_+2C3j
  106. .text:0046FD74 010 mov ebx, [ebp+var_3AC0]
  107. .text:0046FD7A 010 sub ebx, [ebp+var_3ABC]
  108. .text:0046FD80 010 js loc_46FF90
  109. .text:0046FD86
  110. .text:0046FD86 loc_46FD86: ; CODE XREF: _upcase_+2FAj
  111. .text:0046FD86 010 cmp ebx, 1387h
  112. .text:0046FD8C 010 jle loc_46FF92
  113. .text:0046FD92 010 mov [esp+0Ch+Size], 1388h ; Size
  114. .text:0046FD9A 010 mov ecx, [ebp+arg_0]
  115. .text:0046FD9D 010 mov edx, [ebp+var_3ABC]
  116. .text:0046FDA3 010 lea eax, [ecx+edx-1]
  117. .text:0046FDA7 010 mov [esp+0Ch+Src], eax ; Src
  118. .text:0046FDAB 010 lea eax, [ebp+var_13A0]
  119. .text:0046FDB1 010 mov [esp+0Ch+Dst], eax ; Dst
  120. .text:0046FDB4 010 call _memmove
  121. .text:0046FDB9
  122. .text:0046FDB9 loc_46FDB9: ; CODE XREF: _upcase_+33Aj
  123. .text:0046FDB9 010 mov dword ptr [esp+10h], 0
  124. .text:0046FDC1 010 mov [esp+0Ch+var_s0], offset unk_6E45B5
  125. .text:0046FDC9 010 mov [esp+0Ch+Size], 1
  126. .text:0046FDD1 010 lea edx, [ebp+var_13A0]
  127. .text:0046FDD7 010 mov [esp+0Ch+Src], edx
  128. .text:0046FDDB 010 mov [esp+0Ch+Dst], 1388h
  129. .text:0046FDE2 010 call __gfortran_string_index
  130. .text:0046FDE7 010 mov ebx, eax
  131. .text:0046FDE9 010 mov dword ptr [esp+10h], 0
  132. .text:0046FDF1 010 mov [esp+0Ch+var_s0], 6E45B7h
  133. .text:0046FDF9 010 mov [esp+0Ch+Size], 1
  134. .text:0046FE01 010 lea ecx, [ebp+var_13A0]
  135. .text:0046FE07 010 mov [esp+0Ch+Src], ecx
  136. .text:0046FE0B 010 mov [esp+0Ch+Dst], 1388h
  137. .text:0046FE12 010 call __gfortran_string_index
  138. .text:0046FE17 010 mov esi, eax
  139. .text:0046FE19 010 test ebx, ebx
  140. .text:0046FE1B 010 jle short loc_46FE5B
  141. .text:0046FE1D 010 mov dword ptr [esp+10h], 0
  142. .text:0046FE25 010 mov [esp+0Ch+var_s0], 6E45B7h
  143. .text:0046FE2D 010 mov [esp+0Ch+Size], 1
  144. .text:0046FE35 010 lea esi, [ebx-1]
  145. .text:0046FE38 010 lea eax, [ebp+var_13A0]
  146. .text:0046FE3E 010 add eax, esi
  147. .text:0046FE40 010 mov [esp+0Ch+Src], eax
  148. .text:0046FE44 010 mov eax, 1389h
  149. .text:0046FE49 010 sub eax, ebx
  150. .text:0046FE4B 010 js loc_47004C
  151. .text:0046FE51
  152. .text:0046FE51 loc_46FE51: ; CODE XREF: _upcase_+3BEj
  153. .text:0046FE51 010 mov [esp+0Ch+Dst], eax
  154. .text:0046FE54 010 call __gfortran_string_index
  155. .text:0046FE59 010 add esi, eax
  156. .text:0046FE5B
  157. .text:0046FE5B loc_46FE5B: ; CODE XREF: _upcase_+18Bj
  158. .text:0046FE5B 010 test esi, esi
  159. .text:0046FE5D 010 jle loc_46FFD0
  160. .text:0046FE63 010 lea edi, [esi+1]
  161. .text:0046FE66 010 mov dword ptr [esp+10h], 0
  162. .text:0046FE6E 010 mov [esp+0Ch+var_s0], 6E45B7h
  163. .text:0046FE76 010 mov [esp+0Ch+Size], 1
  164. .text:0046FE7E 010 lea eax, [ebp+var_13A0]
  165. .text:0046FE84 010 add eax, esi
  166. .text:0046FE86 010 mov [esp+0Ch+Src], eax
  167. .text:0046FE8A 010 mov eax, 1389h
  168. .text:0046FE8F 010 sub eax, edi
  169. .text:0046FE91 010 js loc_470044
  170. .text:0046FE97
  171. .text:0046FE97 loc_46FE97: ; CODE XREF: _upcase_+3B6j
  172. .text:0046FE97 010 mov [esp+0Ch+Dst], eax
  173. .text:0046FE9A 010 call __gfortran_string_index
  174. .text:0046FE9F 010 add eax, edi
  175. .text:0046FEA1 010 mov [ebp+var_3AC8], eax
  176. .text:0046FEA7
  177. .text:0046FEA7 loc_46FEA7: ; CODE XREF: _upcase_+34Aj
  178. .text:0046FEA7 010 cmp esi, [ebp+var_3AC8]
  179. .text:0046FEAD 010 jl short loc_46FEB1
  180. .text:0046FEAF 010 xor esi, esi
  181. .text:0046FEB1
  182. .text:0046FEB1 loc_46FEB1: ; CODE XREF: _upcase_+21Dj
  183. .text:0046FEB1 010 test ebx, ebx
  184. .text:0046FEB3 010 jle loc_470054
  185. .text:0046FEB9 010 add [ebp+var_3AC4], ebx
  186. .text:0046FEBF 010 mov eax, [ebp+var_3AC4]
  187. .text:0046FEC5 010 inc eax
  188. .text:0046FEC6 010 mov [ebp+var_3ABC], eax
  189. .text:0046FECC 010 mov edi, [ebp+var_3AC0]
  190. .text:0046FED2 010 sub edi, eax
  191. .text:0046FED4 010 js loc_46FFE0
  192. .text:0046FEDA 010 cmp edi, 1387h
  193. .text:0046FEE0 010 jle loc_46FFE2
  194. .text:0046FEE6 010 mov [esp+0Ch+Size], 1388h ; Size
  195. .text:0046FEEE 010 mov edx, [ebp+var_3AC4]
  196. .text:0046FEF4 010 mov [ebp+var_3ACC], edx
  197. .text:0046FEFA 010 mov eax, [ebp+arg_0]
  198. .text:0046FEFD 010 add eax, edx
  199. .text:0046FEFF 010 mov [esp+0Ch+Src], eax ; Src
  200. .text:0046FF03 010 lea ecx, [ebp+var_2728]
  201. .text:0046FF09 010 mov [esp+0Ch+Dst], ecx ; Dst
  202. .text:0046FF0C 010 call _memmove
  203. .text:0046FF11
  204. .text:0046FF11 loc_46FF11: ; CODE XREF: _upcase_+393j
  205. .text:0046FF11 010 mov dword ptr [esp+10h], 0
  206. .text:0046FF19 010 mov [esp+0Ch+var_s0], offset off_6E45B6
  207. .text:0046FF21 010 mov [esp+0Ch+Size], 1
  208. .text:0046FF29 010 lea edx, [ebp+var_2728]
  209. .text:0046FF2F 010 mov [esp+0Ch+Src], edx
  210. .text:0046FF33 010 mov [esp+0Ch+Dst], 1388h
  211. .text:0046FF3A 010 call __gfortran_string_index
  212. .text:0046FF3F 010 lea edx, [ebx+1]
  213. .text:0046FF42 010 cmp edx, esi
  214. .text:0046FF44 010 jz loc_470028
  215. .text:0046FF4A
  216. .text:0046FF4A loc_46FF4A: ; CODE XREF: _upcase_+3A0j
  217. .text:0046FF4A ; _upcase_+3AEj
  218. .text:0046FF4A 010 cmp eax, 0
  219. .text:0046FF4D 010 jl loc_46FD74
  220. .text:0046FF53 010 jz loc_46FD74
  221. .text:0046FF59 010 mov [esp+0Ch+Size], eax ; Size
  222. .text:0046FF5D 010 lea eax, [ebp+var_3AB0]
  223. .text:0046FF63 010 add eax, [ebp+var_3ACC]
  224. .text:0046FF69 010 mov [esp+0Ch+Src], eax ; Src
  225. .text:0046FF6D 010 mov eax, [ebp+arg_0]
  226. .text:0046FF70 010 add eax, [ebp+var_3ACC]
  227. .text:0046FF76 010 mov [esp+0Ch+Dst], eax ; Dst
  228. .text:0046FF79 010 call _memmove
  229. .text:0046FF7E 010 mov ebx, [ebp+var_3AC0]
  230. .text:0046FF84 010 sub ebx, [ebp+var_3ABC]
  231. .text:0046FF8A 010 jns loc_46FD86
  232. .text:0046FF90
  233. .text:0046FF90 loc_46FF90: ; CODE XREF: _upcase_+F0j
  234. .text:0046FF90 010 xor ebx, ebx
  235. .text:0046FF92
  236. .text:0046FF92 loc_46FF92: ; CODE XREF: _upcase_+FCj
  237. .text:0046FF92 010 mov [esp+0Ch+Size], ebx ; Size
  238. .text:0046FF96 010 mov ecx, [ebp+arg_0]
  239. .text:0046FF99 010 mov edx, [ebp+var_3ABC]
  240. .text:0046FF9F 010 lea eax, [ecx+edx-1]
  241. .text:0046FFA3 010 mov [esp+0Ch+Src], eax ; Src
  242. .text:0046FFA7 010 lea eax, [ebp+var_13A0]
  243. .text:0046FFAD 010 mov [esp+0Ch+Dst], eax ; Dst
  244. .text:0046FFB0 010 call _memmove
  245. .text:0046FFB5 010 mov ecx, 1388h
  246. .text:0046FFBA 010 sub ecx, ebx
  247. .text:0046FFBC 010 lea edx, [ebp+var_13A0]
  248. .text:0046FFC2 010 add edx, ebx
  249. .text:0046FFC4 010 mov edi, edx
  250. .text:0046FFC6 010 mov al, 20h
  251. .text:0046FFC8 010 rep stosb
  252. .text:0046FFCA 010 jmp loc_46FDB9
  253. .text:0046FFCA ; ---------------------------------------------------------------------------
  254. .text:0046FFCF 010 align 10h
  255. .text:0046FFD0
  256. .text:0046FFD0 loc_46FFD0: ; CODE XREF: _upcase_+1CDj
  257. .text:0046FFD0 010 mov [ebp+var_3AC8], 0
  258. .text:0046FFDA 010 jmp loc_46FEA7
  259. .text:0046FFDA ; ---------------------------------------------------------------------------
  260. .text:0046FFDF 010 align 10h
  261. .text:0046FFE0
  262. .text:0046FFE0 loc_46FFE0: ; CODE XREF: _upcase_+244j
  263. .text:0046FFE0 010 xor edi, edi
  264. .text:0046FFE2
  265. .text:0046FFE2 loc_46FFE2: ; CODE XREF: _upcase_+250j
  266. .text:0046FFE2 010 mov [esp+0Ch+Size], edi ; Size
  267. .text:0046FFE6 010 mov eax, [ebp+var_3ABC]
  268. .text:0046FFEC 010 dec eax
  269. .text:0046FFED 010 mov [ebp+var_3ACC], eax
  270. .text:0046FFF3 010 mov eax, [ebp+arg_0]
  271. .text:0046FFF6 010 add eax, [ebp+var_3ACC]
  272. .text:0046FFFC 010 mov [esp+0Ch+Src], eax ; Src
  273. .text:00470000 010 lea edx, [ebp+var_2728]
  274. .text:00470006 010 mov [esp+0Ch+Dst], edx ; Dst
  275. .text:00470009 010 call _memmove
  276. .text:0047000E 010 mov ecx, 1388h
  277. .text:00470013 010 sub ecx, edi
  278. .text:00470015 010 lea edx, [ebp+var_2728]
  279. .text:0047001B 010 add edx, edi
  280. .text:0047001D 010 mov edi, edx
  281. .text:0047001F 010 mov al, 20h
  282. .text:00470021 010 rep stosb
  283. .text:00470023 010 jmp loc_46FF11
  284. .text:00470028 ; ---------------------------------------------------------------------------
  285. .text:00470028
  286. .text:00470028 loc_470028: ; CODE XREF: _upcase_+2B4j
  287. .text:00470028 010 mov edi, [ebp+var_3AC8]
  288. .text:0047002E 010 test edi, edi
  289. .text:00470030 010 jle loc_46FF4A
  290. .text:00470036 010 mov eax, [ebp+var_3AC8]
  291. .text:0047003C 010 sub eax, ebx
  292. .text:0047003E 010 jmp loc_46FF4A
  293. .text:0047003E ; ---------------------------------------------------------------------------
  294. .text:00470043 010 align 4
  295. .text:00470044
  296. .text:00470044 loc_470044: ; CODE XREF: _upcase_+201j
  297. .text:00470044 010 xor eax, eax
  298. .text:00470046 010 jmp loc_46FE97
  299. .text:00470046 ; ---------------------------------------------------------------------------
  300. .text:0047004B 010 align 4
  301. .text:0047004C
  302. .text:0047004C loc_47004C: ; CODE XREF: _upcase_+1BBj
  303. .text:0047004C 010 xor eax, eax
  304. .text:0047004E 010 jmp loc_46FE51
  305. .text:0047004E ; ---------------------------------------------------------------------------
  306. .text:00470053 010 align 4
  307. .text:00470054
  308. .text:00470054 loc_470054: ; CODE XREF: _upcase_+223j
  309. .text:00470054 010 add esp, 3AFCh
  310. .text:0047005A -3AEC pop ebx
  311. .text:0047005B -3AF0 pop esi
  312. .text:0047005C -3AF4 pop edi
  313. .text:0047005D -3AF8 leave
  314. .text:0047005E -3AFC retn
  315. .text:0047005E ; ---------------------------------------------------------------------------
  316. .text:0047005F -3AFC align 10h
  317. .text:00470060
  318. .text:00470060 loc_470060: ; CODE XREF: _upcase_+6Aj
  319. .text:00470060 010 mov [esp+0Ch+Size], ebx ; Size
  320. .text:00470064 010 mov ecx, [ebp+arg_0]
  321. .text:00470067 010 mov [esp+0Ch+Src], ecx ; Src
  322. .text:0047006B 010 lea eax, [ebp+var_3AB0]
  323. .text:00470071 010 mov [esp+0Ch+Dst], eax ; Dst
  324. .text:00470074 010 call _memmove
  325. .text:00470079 010 mov ecx, 1388h
  326. .text:0047007E 010 sub ecx, ebx
  327. .text:00470080 010 lea edx, [ebp+var_3AB0]
  328. .text:00470086 010 add edx, ebx
  329. .text:00470088 010 mov al, 20h
  330. .text:0047008A 010 mov edi, edx
  331. .text:0047008C 010 rep stosb
  332. .text:0047008E 010 jmp loc_46FD1D
  333. .text:0047008E _upcase_ endp ; sp-analysis failed
  334. .text:0047008E
  335. .text:0047008E ; ---------------------------------------------------------------------------
  336. .text:00470093 align 4
  337. .text:00470094
  338. .text:00470094 ; =============== S U B R O U T I N E =======================================
  339. .text:00470094
  340. .text:00470094 ; Attributes: bp-based frame
  341. .text:00470094
  342. .text:00470094 public _lowcase_
  343. .text:00470094 _lowcase_ proc near ; CODE XREF: _read_data_+17A7p
  344. .text:00470094 ; _read_cas_+A47p ...
  345. .text:00470094
  346. .text:00470094 var_13AC = dword ptr -13ACh
  347. .text:00470094 var_13A0 = byte ptr -13A0h
  348. .text:00470094 Dst = dword ptr -0Ch
  349. .text:00470094 Src = dword ptr -8
  350. .text:00470094 Size = dword ptr -4
  351. .text:00470094 arg_0 = dword ptr 8
  352. .text:00470094 arg_4 = dword ptr 0Ch
  353. .text:00470094 arg_8 = dword ptr 10h
  354. .text:00470094 arg_C = dword ptr 14h
  355. .text:00470094
  356. .text:00470094 000 push ebp
  357. .text:00470095 004 mov ebp, esp
  358. .text:00470097 004 push edi
  359. .text:00470098 008 push esi
  360. .text:00470099 00C push ebx ; Size
  361. .text:0047009A 010 mov eax, 13BCh
  362. .text:0047009F 010 call __alloca
  363. .text:004700A4 010 mov ebx, [ebp+arg_0]
  364. .text:004700A7 010 lea edx, [ebp+var_13A0]
  365. .text:004700AD 010 mov esi, offset unk_6E45BC
  366. .text:004700B2 010 mov ecx, 4E2h
  367. .text:004700B7 010 mov edi, edx
  368. .text:004700B9 010 rep movsd
  369. .text:004700BB 010 cmp [ebp+arg_C], 1387h
  370. .text:004700C2 010 jle loc_470154
  371. .text:004700C8 010 mov [esp+0Ch+Size], 1388h ; Size
  372. .text:004700D0 010 mov [esp+0Ch+Src], ebx ; Src
  373. .text:004700D4 010 mov [esp+0Ch+Dst], edx ; Dst
  374. .text:004700D7 010 call _memmove
  375. .text:004700DC
  376. .text:004700DC loc_4700DC: ; CODE XREF: _lowcase_+F0j
  377. .text:004700DC 010 mov eax, [ebp+arg_4]
  378. .text:004700DF 010 mov esi, [eax]
  379. .text:004700E1 010 test esi, esi
  380. .text:004700E3 010 jle short loc_470148
  381. .text:004700E5 010 mov eax, [ebp+arg_8]
  382. .text:004700E8 010 mov edi, [eax]
  383. .text:004700EA 010 mov eax, 1
  384. .text:004700EF 010 jmp short loc_470132
  385. .text:004700EF ; ---------------------------------------------------------------------------
  386. .text:004700F1 010 align 4
  387. .text:004700F4
  388. .text:004700F4 loc_4700F4: ; CODE XREF: _lowcase_+A6j
  389. .text:004700F4 010 cmp edx, 5Ah
  390. .text:004700F7 010 jg short loc_470100
  391. .text:004700F9 010 lea ecx, [edx+20h]
  392. .text:004700FC 010 mov [ebx+eax-1], cl
  393. .text:00470100
  394. .text:00470100 loc_470100: ; CODE XREF: _lowcase_+63j
  395. .text:00470100 ; _lowcase_+ABj ...
  396. .text:00470100 010 test edi, edi
  397. .text:00470102 010 jle short loc_47012D
  398. .text:00470104 010 cmp edx, 30h
  399. .text:00470107 010 jg short loc_47010E
  400. .text:00470109 010 mov byte ptr [ebx+eax-1], 30h
  401. .text:0047010E
  402. .text:0047010E loc_47010E: ; CODE XREF: _lowcase_+73j
  403. .text:0047010E 010 lea ecx, [edx-3Ah]
  404. .text:00470111 010 cmp ecx, 5
  405. .text:00470114 010 ja short loc_47011B
  406. .text:00470116 010 mov byte ptr [ebx+eax-1], 30h
  407. .text:0047011B
  408. .text:0047011B loc_47011B: ; CODE XREF: _lowcase_+80j
  409. .text:0047011B 010 lea ecx, [edx-5Bh]
  410. .text:0047011E 010 cmp ecx, 5
  411. .text:00470121 010 jbe short loc_470128
  412. .text:00470123 010 cmp edx, 7Ah
  413. .text:00470126 010 jle short loc_47012D
  414. .text:00470128
  415. .text:00470128 loc_470128: ; CODE XREF: _lowcase_+8Dj
  416. .text:00470128 010 mov byte ptr [ebx+eax-1], 30h
  417. .text:0047012D
  418. .text:0047012D loc_47012D: ; CODE XREF: _lowcase_+6Ej
  419. .text:0047012D ; _lowcase_+92j
  420. .text:0047012D 010 cmp eax, esi
  421. .text:0047012F 010 jz short loc_470148
  422. .text:00470131 010 inc eax
  423. .text:00470132
  424. .text:00470132 loc_470132: ; CODE XREF: _lowcase_+5Bj
  425. .text:00470132 010 movzx edx, byte ptr [ebx+eax-1]
  426. .text:00470137 010 cmp edx, 40h
  427. .text:0047013A 010 jg short loc_4700F4
  428. .text:0047013C 010 cmp edx, 9
  429. .text:0047013F 010 jnz short loc_470100
  430. .text:00470141 010 mov byte ptr [ebx+eax-1], 20h
  431. .text:00470146 010 jmp short loc_470100
  432. .text:00470148 ; ---------------------------------------------------------------------------
  433. .text:00470148
  434. .text:00470148 loc_470148: ; CODE XREF: _lowcase_+4Fj
  435. .text:00470148 ; _lowcase_+9Bj
  436. .text:00470148 010 add esp, 13BCh
  437. .text:0047014E -13AC pop ebx
  438. .text:0047014F -13B0 pop esi
  439. .text:00470150 -13B4 pop edi
  440. .text:00470151 -13B8 leave
  441. .text:00470152 -13BC retn
  442. .text:00470152 ; ---------------------------------------------------------------------------
  443. .text:00470153 -13BC align 4
  444. .text:00470154
  445. .text:00470154 loc_470154: ; CODE XREF: _lowcase_+2Ej
  446. .text:00470154 010 mov eax, [ebp+arg_C]
  447. .text:00470157 010 mov [esp+0Ch+Size], eax ; Size
  448. .text:0047015B 010 mov [esp+0Ch+Src], ebx ; Src
  449. .text:0047015F 010 mov [esp+0Ch+Dst], edx ; Dst
  450. .text:00470162 010 mov [ebp+var_13AC], edx
  451. .text:00470168 010 call _memmove
  452. .text:0047016D 010 mov ecx, 1388h
  453. .text:00470172 010 sub ecx, [ebp+arg_C]
  454. .text:00470175 010 mov edx, [ebp+var_13AC]
  455. .text:0047017B 010 add edx, [ebp+arg_C]
  456. .text:0047017E 010 mov al, 20h
  457. .text:00470180 010 mov edi, edx
  458. .text:00470182 010 rep stosb
  459. .text:00470184 010 jmp loc_4700DC
  460. .text:00470184 _lowcase_ endp ; sp-analysis failed
  461. .text:00470184
  462. .text:00470184 ; ---------------------------------------------------------------------------
  463. .text:00470189 align 4
  464. .text:0047018C
  465. .text:0047018C ; =============== S U B R O U T I N E =======================================
  466. .text:0047018C
  467. .text:0047018C ; Attributes: bp-based frame
  468. .text:0047018C
  469. .text:0047018C public _read_icl_
  470. .text:0047018C _read_icl_ proc near ; CODE XREF: _read_met_+182Fp
  471. .text:0047018C ; _read_efil_+508p ...
  472. .text:0047018C
  473. .text:0047018C var_58 = dword ptr -58h
  474. .text:0047018C var_54 = dword ptr -54h
  475. .text:0047018C var_50 = dword ptr -50h
  476. .text:0047018C var_4C = dword ptr -4Ch
  477. .text:0047018C var_48 = dword ptr -48h
  478. .text:0047018C var_30 = dword ptr -30h
  479. .text:0047018C var_2C = dword ptr -2Ch
  480. .text:0047018C var_28 = dword ptr -28h
  481. .text:0047018C var_24 = dword ptr -24h
  482. .text:0047018C var_20 = dword ptr -20h
  483. .text:0047018C var_1C = dword ptr -1Ch
  484. .text:0047018C arg_0 = dword ptr 8
  485. .text:0047018C arg_4 = dword ptr 0Ch
  486. .text:0047018C arg_8 = dword ptr 10h
  487. .text:0047018C arg_C = dword ptr 14h
  488. .text:0047018C arg_10 = dword ptr 18h
  489. .text:0047018C arg_14 = dword ptr 1Ch
  490. .text:0047018C
  491. .text:0047018C 000 push ebp
  492. .text:0047018D 004 mov ebp, esp
  493. .text:0047018F 004 push edi
  494. .text:00470190 008 push esi
  495. .text:00470191 00C push ebx
  496. .text:00470192 010 sub esp, 4Ch
  497. .text:00470195 05C mov esi, [ebp+arg_10]
  498. .text:00470198 05C mov eax, [ebp+arg_0]
  499. .text:0047019B 05C mov [esp+58h+var_54], eax
  500. .text:0047019F 05C mov [esp+58h+var_58], esi
  501. .text:004701A2 05C call __gfortran_string_len_trim
  502. .text:004701A7 05C mov edx, [ebp+arg_4]
  503. .text:004701AA 05C mov [esp+58h+var_54], edx
  504. .text:004701AE 05C mov eax, [ebp+arg_14]
  505. .text:004701B1 05C mov [esp+58h+var_58], eax
  506. .text:004701B4 05C call __gfortran_string_len_trim
  507. .text:004701B9 05C mov [ebp+var_28], eax
  508. .text:004701BC 05C mov eax, [ebp+arg_0]
  509. .text:004701BF 05C xor ebx, ebx
  510. .text:004701C1 05C cmp byte ptr [eax], 20h
  511. .text:004701C4 05C setz bl
  512. .text:004701C7 05C inc ebx
  513. .text:004701C8 05C inc esi
  514. .text:004701C9 05C mov [ebp+var_24], esi
  515. .text:004701CC 05C mov edx, [ebp+var_28]
  516. .text:004701CF 05C dec edx
  517. .text:004701D0 05C mov [ebp+var_2C], edx
  518. .text:004701D3 05C lea esi, [ebx-1]
  519. .text:004701D6 05C mov edi, [ebp+arg_0]
  520. .text:004701D9 05C add edi, esi
  521. .text:004701DB 05C mov edx, [ebp+var_24]
  522. .text:004701DE 05C sub edx, ebx
  523. .text:004701E0 05C js loc_47042E
  524. .text:004701E6 05C xchg ax, ax
  525. .text:004701E8
  526. .text:004701E8 loc_4701E8: ; CODE XREF: _read_icl_+29Cj
  527. .text:004701E8 ; _read_icl_+2A4j
  528. .text:004701E8 05C mov [esp+58h+var_48], 0
  529. .text:004701F0 05C mov [esp+58h+var_4C], offset off_6E45B6
  530. .text:004701F8 05C mov [esp+58h+var_50], 1
  531. .text:00470200 05C mov [esp+58h+var_54], edi
  532. .text:00470204 05C mov [esp+58h+var_58], edx
  533. .text:00470207 05C mov [ebp+var_30], edx
  534. .text:0047020A 05C call __gfortran_string_index
  535. .text:0047020F 05C test eax, eax
  536. .text:00470211 05C mov edx, [ebp+var_30]
  537. .text:00470214 05C jle loc_470458
  538. .text:0047021A 05C mov eax, [ebp+arg_8]
  539. .text:0047021D 05C mov dword ptr [eax], 0
  540. .text:00470223 05C mov eax, [ebp+arg_C]
  541. .text:00470226 05C mov dword ptr [eax], 0
  542. .text:0047022C 05C mov [esp+58h+var_48], 0
  543. .text:00470234 05C mov [esp+58h+var_4C], offset off_6E45B6
  544. .text:0047023C 05C mov [esp+58h+var_50], 1
  545. .text:00470244 05C mov [esp+58h+var_54], edi
  546. .text:00470248 05C mov [esp+58h+var_58], edx
  547. .text:0047024B 05C call __gfortran_string_index
  548. .text:00470250 05C lea eax, [esi+eax]
  549. .text:00470253 05C mov [ebp+var_1C], eax
  550. .text:00470256 05C mov edx, eax
  551. .text:00470258 05C sub edx, ebx
  552. .text:0047025A 05C inc edx
  553. .text:0047025B 05C js loc_470448
  554. .text:00470261
  555. .text:00470261 loc_470261: ; CODE XREF: _read_icl_+2BEj
  556. .text:00470261 05C mov [esp+58h+var_48], 0
  557. .text:00470269 05C mov [esp+58h+var_4C], 6E45B7h
  558. .text:00470271 05C mov [esp+58h+var_50], 1
  559. .text:00470279 05C mov [esp+58h+var_54], edi
  560. .text:0047027D 05C mov [esp+58h+var_58], edx
  561. .text:00470280 05C mov [ebp+var_30], edx
  562. .text:00470283 05C call __gfortran_string_index
  563. .text:00470288 05C test eax, eax
  564. .text:0047028A 05C mov edx, [ebp+var_30]
  565. .text:0047028D 05C jle short loc_470308
  566. .text:0047028F 05C mov [esp+58h+var_48], 0
  567. .text:00470297 05C mov [esp+58h+var_4C], 6E45B7h
  568. .text:0047029F 05C mov [esp+58h+var_50], 1
  569. .text:004702A7 05C mov [esp+58h+var_54], edi
  570. .text:004702AB 05C mov [esp+58h+var_58], edx
  571. .text:004702AE 05C call __gfortran_string_index
  572. .text:004702B3 05C lea edi, [eax+ebx]
  573. .text:004702B6 05C lea edx, [edi+1]
  574. .text:004702B9 05C mov [esp+58h+var_48], 0
  575. .text:004702C1 05C mov [esp+58h+var_4C], 6E45B7h
  576. .text:004702C9 05C mov [esp+58h+var_50], 1
  577. .text:004702D1 05C mov eax, [ebp+arg_0]
  578. .text:004702D4 05C add eax, edi
  579. .text:004702D6 05C mov [esp+58h+var_54], eax
  580. .text:004702DA 05C mov eax, [ebp+var_24]
  581. .text:004702DD 05C sub eax, edx
  582. .text:004702DF 05C js loc_470450
  583. .text:004702E5
  584. .text:004702E5 loc_4702E5: ; CODE XREF: _read_icl_+2C6j
  585. .text:004702E5 05C mov [esp+58h+var_58], eax
  586. .text:004702E8 05C call __gfortran_string_index
  587. .text:004702ED 05C cmp [ebp+var_1C], edi
  588. .text:004702F0 05C jle short loc_470308
  589. .text:004702F2 05C add edi, eax
  590. .text:004702F4 05C lea eax, [edi-1]
  591. .text:004702F7 05C cmp [ebp+var_1C], eax
  592. .text:004702FA 05C jge short loc_470308
  593. .text:004702FC 05C lea edx, [edi+1]
  594. .text:004702FF 05C mov [ebp+var_1C], edx
  595. .text:00470302 05C mov ebx, edi
  596. .text:00470304 05C mov esi, eax
  597. .text:00470306 05C xchg ax, ax
  598. .text:00470308
  599. .text:00470308 loc_470308: ; CODE XREF: _read_icl_+101j
  600. .text:00470308 ; _read_icl_+164j ...
  601. .text:00470308 05C mov edx, [ebp+var_28]
  602. .text:0047030B 05C test edx, edx
  603. .text:0047030D 05C js loc_470440
  604. .text:00470313
  605. .text:00470313 loc_470313: ; CODE XREF: _read_icl_+2B6j
  606. .text:00470313 05C mov eax, [ebp+arg_0]
  607. .text:00470316 05C add eax, esi
  608. .text:00470318 05C mov [ebp+var_20], eax
  609. .text:0047031B 05C mov edi, [ebp+var_1C]
  610. .text:0047031E 05C sub edi, ebx
  611. .text:00470320 05C js loc_470438
  612. .text:00470326
  613. .text:00470326 loc_470326: ; CODE XREF: _read_icl_+2AEj
  614. .text:00470326 05C mov [esp+58h+var_48], 0
  615. .text:0047032E 05C mov eax, [ebp+arg_4]
  616. .text:00470331 05C mov [esp+58h+var_4C], eax
  617. .text:00470335 05C mov [esp+58h+var_50], edx
  618. .text:00470339 05C mov eax, [ebp+var_20]
  619. .text:0047033C 05C mov [esp+58h+var_54], eax
  620. .text:00470340 05C mov [esp+58h+var_58], edi
  621. .text:00470343 05C mov [ebp+var_30], edx
  622. .text:00470346 05C call __gfortran_string_index
  623. .text:0047034B 05C test eax, eax
  624. .text:0047034D 05C mov edx, [ebp+var_30]
  625. .text:00470350 05C jle loc_470412
  626. .text:00470356 05C mov [esp+58h+var_48], 0
  627. .text:0047035E 05C mov eax, [ebp+arg_4]
  628. .text:00470361 05C mov [esp+58h+var_4C], eax
  629. .text:00470365 05C mov [esp+58h+var_50], edx
  630. .text:00470369 05C mov edx, [ebp+var_20]
  631. .text:0047036C 05C mov [esp+58h+var_54], edx
  632. .text:00470370 05C mov [esp+58h+var_58], edi
  633. .text:00470373 05C call __gfortran_string_index
  634. .text:00470378 05C add eax, esi
  635. .text:0047037A 05C mov edx, [ebp+arg_8]
  636. .text:0047037D 05C mov [edx], eax
  637. .text:0047037F 05C add eax, [ebp+var_2C]
  638. .text:00470382 05C mov edx, [ebp+arg_C]
  639. .text:00470385 05C mov [edx], eax
  640. .text:00470387 05C mov [esp+58h+var_48], 0
  641. .text:0047038F 05C mov [esp+58h+var_4C], offset unk_6E45B5
  642. .text:00470397 05C mov [esp+58h+var_50], 1
  643. .text:0047039F 05C mov eax, [ebp+var_20]
  644. .text:004703A2 05C mov [esp+58h+var_54], eax
  645. .text:004703A6 05C mov [esp+58h+var_58], edi
  646. .text:004703A9 05C call __gfortran_string_index
  647. .text:004703AE 05C test eax, eax
  648. .text:004703B0 05C jle loc_470458
  649. .text:004703B6 05C mov [esp+58h+var_48], 0
  650. .text:004703BE 05C mov [esp+58h+var_4C], offset unk_6E45B5
  651. .text:004703C6 05C mov [esp+58h+var_50], 1
  652. .text:004703CE 05C mov edx, [ebp+var_20]
  653. .text:004703D1 05C mov [esp+58h+var_54], edx
  654. .text:004703D5 05C mov [esp+58h+var_58], edi
  655. .text:004703D8 05C call __gfortran_string_index
  656. .text:004703DD 05C test eax, eax
  657. .text:004703DF 05C jle short loc_470412
  658. .text:004703E1 05C mov [esp+58h+var_48], 0
  659. .text:004703E9 05C mov [esp+58h+var_4C], offset unk_6E45B5
  660. .text:004703F1 05C mov [esp+58h+var_50], 1
  661. .text:004703F9 05C mov eax, [ebp+var_20]
  662. .text:004703FC 05C mov [esp+58h+var_54], eax
  663. .text:00470400 05C mov [esp+58h+var_58], edi
  664. .text:00470403 05C call __gfortran_string_index
  665. .text:00470408 05C lea esi, [eax+esi]
  666. .text:0047040B 05C mov edx, [ebp+arg_8]
  667. .text:0047040E 05C cmp esi, [edx]
  668. .text:00470410 05C jg short loc_470458
  669. .text:00470412
  670. .text:00470412 loc_470412: ; CODE XREF: _read_icl_+1C4j
  671. .text:00470412 ; _read_icl_+253j
  672. .text:00470412 05C cmp ebx, [ebp+var_1C]
  673. .text:00470415 05C jge short loc_470458
  674. .text:00470417 05C mov ebx, [ebp+var_1C]
  675. .text:0047041A 05C inc ebx
  676. .text:0047041B 05C lea esi, [ebx-1]
  677. .text:0047041E 05C mov edi, [ebp+arg_0]
  678. .text:00470421 05C add edi, esi
  679. .text:00470423 05C mov edx, [ebp+var_24]
  680. .text:00470426 05C sub edx, ebx
  681. .text:00470428 05C jns loc_4701E8
  682. .text:0047042E
  683. .text:0047042E loc_47042E: ; CODE XREF: _read_icl_+54j
  684. .text:0047042E 05C xor edx, edx
  685. .text:00470430 05C jmp loc_4701E8
  686. .text:00470430 ; ---------------------------------------------------------------------------
  687. .text:00470435 05C align 4
  688. .text:00470438
  689. .text:00470438 loc_470438: ; CODE XREF: _read_icl_+194j
  690. .text:00470438 05C xor edi, edi
  691. .text:0047043A 05C jmp loc_470326
  692. .text:0047043A ; ---------------------------------------------------------------------------
  693. .text:0047043F 05C align 10h
  694. .text:00470440
  695. .text:00470440 loc_470440: ; CODE XREF: _read_icl_+181j
  696. .text:00470440 05C xor edx, edx
  697. .text:00470442 05C jmp loc_470313
  698. .text:00470442 ; ---------------------------------------------------------------------------
  699. .text:00470447 05C align 4
  700. .text:00470448
  701. .text:00470448 loc_470448: ; CODE XREF: _read_icl_+CFj
  702. .text:00470448 05C xor edx, edx
  703. .text:0047044A 05C jmp loc_470261
  704. .text:0047044A ; ---------------------------------------------------------------------------
  705. .text:0047044F 05C align 10h
  706. .text:00470450
  707. .text:00470450 loc_470450: ; CODE XREF: _read_icl_+153j
  708. .text:00470450 05C xor eax, eax
  709. .text:00470452 05C jmp loc_4702E5
  710. .text:00470452 ; ---------------------------------------------------------------------------
  711. .text:00470457 05C align 4
  712. .text:00470458
  713. .text:00470458 loc_470458: ; CODE XREF: _read_icl_+88j
  714. .text:00470458 ; _read_icl_+224j ...
  715. .text:00470458 05C add esp, 4Ch
  716. .text:0047045B 010 pop ebx
  717. .text:0047045C 00C pop esi
  718. .text:0047045D 008 pop edi
  719. .text:0047045E 004 leave
  720. .text:0047045F 000 retn
  721. .text:0047045F _read_icl_ endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement