能力值:
( LV9,RANK:1210 )
2 楼
下面是一个整理出来的handler,变形代码没有清理干净。但Themida的VM基本就这模样(请别问我要程序,毛病很多,没有完成,我怀疑按代码模式匹配的办法根本得不到理想的结果)。
_14A0000:014A0000 l_014A0000: ; DATA XREF: _1480000:01480008o
_14A0000:014A0000 mov esi, [edi] ; Moved from 014A1FB5
_14A0000:014A0002 mov al, [esi+1]
_14A0000:014A0008 mov dl, [esi]
_14A0000:014A000A and dl, 80h
_14A0000:014A000D or dl, dl
_14A0000:014A000F jz loc_14A001F
_14A0000:014A0015 mov dword ptr [edi+20h], 0
_14A0000:014A001F
_14A0000:014A001F loc_14A001F: ; CODE XREF: _14A0000:014A000Fj
_14A0000:014A001F and al, 3
_14A0000:014A0022 mov dl, [esi]
_14A0000:014A0024 or al, al
_14A0000:014A0026 jnz loc_14A0312
_14A0000:014A002C xor byte ptr [edi+20h], 1Fh
_14A0000:014A0033
_14A0000:014A0033 loc_14A0033: ; CODE XREF: _14A0000:014A0322j
_14A0000:014A0033 ; _14A0000:014A066Ej
_14A0000:014A0033 ; _14A0000:014A07FEj
_14A0000:014A0033 nop
_14A0000:014A0034 mov ecx, [esi]
_14A0000:014A0036 and ecx, 80h
_14A0000:014A003C or ecx, ecx
_14A0000:014A003E jz loc_14A004E
_14A0000:014A0044 mov dword ptr [edi+8], 0
_14A0000:014A004E
_14A0000:014A004E loc_14A004E: ; CODE XREF: _14A0000:014A003Ej
_14A0000:014A004E nop
_14A0000:014A004F mov ebx, [esi+7]
_14A0000:014A0055 and ebx, 0FFh
_14A0000:014A005B mov ecx, ebx
_14A0000:014A005D xor bl, [edi+8]
_14A0000:014A0063 xor bl, 20h
_14A0000:014A0066 sub bl, 10h
_14A0000:014A0069 xor [edi+8], ecx
_14A0000:014A006F test ebx, 80h
_14A0000:014A0075 jz loc_14A0327
_14A0000:014A007B and ebx, 0FFFFFF7Fh
_14A0000:014A0081 imul ebx, 0Eh
_14A0000:014A0084 sub [edi], ebx
_14A0000:014A0086
_14A0000:014A0086 loc_14A0086: ; CODE XREF: _14A0000:014A032Cj
_14A0000:014A0086 pushf
_14A0000:014A0087 add ebx, 0FFFFFFFFh
_14A0000:014A008D popf
_14A0000:014A008E mov ebp, [esi+0Ch]
_14A0000:014A0094 and ebp, 0FFh
_14A0000:014A009A mov ebx, [esi]
_14A0000:014A009C and ebx, 80h
_14A0000:014A00A2 or ebx, ebx
_14A0000:014A00A4 jz loc_14A00B4
_14A0000:014A00AA mov dword ptr [edi+10h], 0
_14A0000:014A00B4
_14A0000:014A00B4 loc_14A00B4: ; CODE XREF: _14A0000:014A00A4j
_14A0000:014A00B4 mov ebx, ebp
_14A0000:014A00B6 xor ebp, [edi+10h]
_14A0000:014A00BC xor ebp, 92h
_14A0000:014A00C2 sub ebp, 5Dh
_14A0000:014A00C8 and ebx, 0FFh
_14A0000:014A00CE xor [edi+10h], ebx
_14A0000:014A00D4 and ebp, 0FFh
_14A0000:014A00DA mov [edi+0Ch], ebp
_14A0000:014A00E0 mov eax, [esi+1]
_14A0000:014A00E6 and eax, 1Ch
_14A0000:014A00EC shr eax, 2
_14A0000:014A00EF shl eax, 3
_14A0000:014A00F2 or eax, eax
_14A0000:014A00F4 jz loc_14A018D
_14A0000:014A00FA mov ebx, [edi+38h]
_14A0000:014A0100 add [edi+38h], eax
_14A0000:014A0106 cmp dword ptr [edi+38h], 0F0000070h
_14A0000:014A0110 jb loc_14A013F
_14A0000:014A0116 mov eax, [edi+38h]
_14A0000:014A011C sub eax, 0F0000070h
_14A0000:014A0122 add eax, 0F0000000h
_14A0000:014A0128 mov [edi+38h], eax
_14A0000:014A012E sub ebx, 0F0000070h
_14A0000:014A0134 neg ebx
_14A0000:014A0136 mov eax, ebx
_14A0000:014A0138 mov ebx, 0F0000000h
_14A0000:014A013D sub ebx, eax
_14A0000:014A013F
_14A0000:014A013F loc_14A013F: ; CODE XREF: _14A0000:014A0110j
_14A0000:014A013F mov dx, si
_14A0000:014A0142 push esi
_14A0000:014A0143 mov esi, [edi+3Ch]
_14A0000:014A0149 mov eax, edi
_14A0000:014A014B mov edx, [edi+38h]
_14A0000:014A0151 sub edx, ebx
_14A0000:014A0153 lea edi, [edi+144h]
_14A0000:014A0159 add edi, edx
_14A0000:014A015B lea edx, [eax+144h]
_14A0000:014A0161 add edx, 70h
_14A0000:014A0167 mov ecx, 0Eh
_14A0000:014A016C
_14A0000:014A016C loc_14A016C: ; CODE XREF: _14A0000:014A0347j
_14A0000:014A016C or ecx, ecx
_14A0000:014A016E jnz loc_14A0331
_14A0000:014A0174 mov edi, [eax+3Ch]
_14A0000:014A017A lea esi, [eax+144h]
_14A0000:014A0180 mov ecx, 0Eh
_14A0000:014A0185 imul ecx, 8
_14A0000:014A0188 rep movsb
_14A0000:014A018A pop esi
_14A0000:014A018B mov edi, eax
_14A0000:014A018D
_14A0000:014A018D loc_14A018D: ; CODE XREF: _14A0000:014A00F4j
_14A0000:014A018D mov eax, esi
_14A0000:014A018F mov eax, [esi+0Ah]
_14A0000:014A0195 and eax, 0FFh
_14A0000:014A019B mov ecx, [esi]
_14A0000:014A019D and ecx, 80h
_14A0000:014A01A3 or ecx, ecx
_14A0000:014A01A5 jz loc_14A01B5
_14A0000:014A01AB mov dword ptr [edi+18h], 0
_14A0000:014A01B5
_14A0000:014A01B5 loc_14A01B5: ; CODE XREF: _14A0000:014A01A5j
_14A0000:014A01B5 mov ecx, eax
_14A0000:014A01B7 xor eax, [edi+18h]
_14A0000:014A01BD xor eax, 63h
_14A0000:014A01C3 sub eax, 0F2h
_14A0000:014A01C9 and ecx, 0FFh
_14A0000:014A01CF xor [edi+18h], ecx
_14A0000:014A01D5 and eax, 0FFh
_14A0000:014A01DB mov [edi+14h], eax
_14A0000:014A01E1 mov ebx, [esi+2]
_14A0000:014A01E7 mov dl, [edi+20h]
_14A0000:014A01ED mov eax, 4
_14A0000:014A01F2 add ecx, ebp
_14A0000:014A01F4 xor ebp, ebp
_14A0000:014A01F6 sub ebp, 0FFFFFFE3h
_14A0000:014A01FC or ch, 63h
_14A0000:014A01FF
_14A0000:014A01FF loc_14A01FF: ; CODE XREF: _14A0000:014A0360j
_14A0000:014A01FF or eax, eax
_14A0000:014A0201 jnz loc_14A034C
_14A0000:014A0207 push ebx
_14A0000:014A0208 pushf
_14A0000:014A0209 add ebx, eax
_14A0000:014A020B popf
_14A0000:014A020C mov dl, [esi+0Bh]
_14A0000:014A0212 xor dl, [edi+20h]
_14A0000:014A0218 add dl, 5Bh
_14A0000:014A021B add dl, [edi+20h]
_14A0000:014A0221 test dl, 80h
_14A0000:014A0224 jz loc_14A0365
_14A0000:014A022A or dword ptr [edi+24h], 10h
_14A0000:014A0234
_14A0000:014A0234 loc_14A0234: ; CODE XREF: _14A0000:014A036Fj
_14A0000:014A0234 shl edx, 8
_14A0000:014A0237 mov dl, [esi+8]
_14A0000:014A023D xor dl, [edi+20h]
_14A0000:014A0243 add dl, 0F0h
_14A0000:014A0246 add dl, [edi+20h]
_14A0000:014A024C shl edx, 8
_14A0000:014A024F mov dl, [esi+6]
_14A0000:014A0255 xor dl, [edi+20h]
_14A0000:014A025B add dl, 50h
_14A0000:014A025E add dl, [edi+20h]
_14A0000:014A0264 shl edx, 8
_14A0000:014A0267 mov dl, [esi+9]
_14A0000:014A026D xor dl, [edi+20h]
_14A0000:014A0273 add dl, 66h
_14A0000:014A0276 add dl, [edi+20h]
_14A0000:014A027C and dl, 7Fh
_14A0000:014A027F mov ebx, edx
_14A0000:014A0281 and edx, 40h
_14A0000:014A0287 or edx, edx
_14A0000:014A0289 jz loc_14A0374
_14A0000:014A028F or dword ptr [edi+24h], 20h
_14A0000:014A0299
_14A0000:014A0299 loc_14A0299: ; CODE XREF: _14A0000:014A037Ej
_14A0000:014A0299 mov edx, ebx
_14A0000:014A029B and edx, 7
_14A0000:014A02A1 or dl, dl
_14A0000:014A02A3 jnz loc_14A0383
_14A0000:014A02A9 mov edx, [esp+8]
_14A0000:014A02B0 push edx
_14A0000:014A02B1
_14A0000:014A02B1 loc_14A02B1: ; CODE XREF: _14A0000:014A0390j
_14A0000:014A02B1 ; _14A0000:014A0696j
_14A0000:014A02B1 ; _14A0000:014A0806j
_14A0000:014A02B1 ; _14A0000:014A0813j
_14A0000:014A02B1 ; _14A0000:014A081Aj
_14A0000:014A02B1 push esi
_14A0000:014A02B2 mov dword ptr [edi+48h], 1
_14A0000:014A02BC mov edx, ebx
_14A0000:014A02BE and edx, 0FFFFFF00h
_14A0000:014A02C4 or edx, edx
_14A0000:014A02C6 jnz loc_14A0395
_14A0000:014A02CC
_14A0000:014A02CC loc_14A02CC: ; CODE XREF: _14A0000:014A05F2j
_14A0000:014A02CC ; _14A0000:014A06A0j
_14A0000:014A02CC ; _14A0000:014A06B0j
_14A0000:014A02CC pop esi
_14A0000:014A02CD cmp dword ptr [edi+48h], 0
_14A0000:014A02D7 jz loc_14A05F7
_14A0000:014A02DD mov eax, [esp]
_14A0000:014A02E0 cmp eax, 80000000h
_14A0000:014A02E6 jb loc_14A0639
_14A0000:014A02EC cmp eax, 800445C0h
_14A0000:014A02F2 jnb loc_14A0639
_14A0000:014A02F8 sub eax, 80000000h
_14A0000:014A02FE add eax, [edi+4Ch]
_14A0000:014A0304 mov [edi], eax
_14A0000:014A0306 add esp, 8
_14A0000:014A030C jmp dword ptr [edi+58h]
_14A0000:014A0312 ; ---------------------------------------------------------------------------
_14A0000:014A0312
_14A0000:014A0312 loc_14A0312: ; CODE XREF: _14A0000:014A0026j
_14A0000:014A0312 cmp al, 1
_14A0000:014A0315 jnz loc_14A065F
_14A0000:014A031B add byte ptr [edi+20h], 76h
_14A0000:014A0322 jmp loc_14A0033
_14A0000:014A0327 ; ---------------------------------------------------------------------------
_14A0000:014A0327
_14A0000:014A0327 loc_14A0327: ; CODE XREF: _14A0000:014A0075j
_14A0000:014A0327 imul ebx, 0Eh
_14A0000:014A032A add [edi], ebx
_14A0000:014A032C jmp loc_14A0086
_14A0000:014A0331 ; ---------------------------------------------------------------------------
_14A0000:014A0331
_14A0000:014A0331 loc_14A0331: ; CODE XREF: _14A0000:014A016Ej
_14A0000:014A0331 cmp edi, edx
_14A0000:014A0333 jb loc_14A033F
_14A0000:014A0339 lea edi, [eax+144h]
_14A0000:014A033F
_14A0000:014A033F loc_14A033F: ; CODE XREF: _14A0000:014A0333j
_14A0000:014A033F movsd
_14A0000:014A0340 movsd
_14A0000:014A0341 sub ecx, 1
_14A0000:014A0347 jmp loc_14A016C
_14A0000:014A034C ; ---------------------------------------------------------------------------
_14A0000:014A034C
_14A0000:014A034C loc_14A034C: ; CODE XREF: _14A0000:014A0201j
_14A0000:014A034C ror ebx, 4
_14A0000:014A034F cmp dl, 80h
_14A0000:014A0352 jbe loc_14A0673
_14A0000:014A0358 xor bl, dl
_14A0000:014A035A
_14A0000:014A035A loc_14A035A: ; CODE XREF: _14A0000:014A0675j
_14A0000:014A035A sub eax, 1
_14A0000:014A0360 jmp loc_14A01FF
_14A0000:014A0365 ; ---------------------------------------------------------------------------
_14A0000:014A0365
_14A0000:014A0365 loc_14A0365: ; CODE XREF: _14A0000:014A0224j
_14A0000:014A0365 and dword ptr [edi+24h], 0FFFFFFEFh
_14A0000:014A036F jmp loc_14A0234
_14A0000:014A0374 ; ---------------------------------------------------------------------------
_14A0000:014A0374
_14A0000:014A0374 loc_14A0374: ; CODE XREF: _14A0000:014A0289j
_14A0000:014A0374 and dword ptr [edi+24h], 0FFFFFFDFh
_14A0000:014A037E jmp loc_14A0299
_14A0000:014A0383 ; ---------------------------------------------------------------------------
_14A0000:014A0383
_14A0000:014A0383 loc_14A0383: ; CODE XREF: _14A0000:014A02A3j
_14A0000:014A0383 cmp dl, 1
_14A0000:014A0386 jnz loc_14A067A
_14A0000:014A038C mov edx, [esp]
_14A0000:014A038F push edx
_14A0000:014A0390 jmp loc_14A02B1
_14A0000:014A0395 ; ---------------------------------------------------------------------------
_14A0000:014A0395
_14A0000:014A0395 loc_14A0395: ; CODE XREF: _14A0000:014A02C6j
_14A0000:014A0395 mov eax, 0
_14A0000:014A039A mov esi, 0
_14A0000:014A039F mov edx, ebx
_14A0000:014A03A1 and edx, 200h
_14A0000:014A03A7 mov ecx, [edi+70h]
_14A0000:014A03AD and ecx, 1
_14A0000:014A03B3 shr ecx, 0
_14A0000:014A03B6 or edx, edx
_14A0000:014A03B8 jz loc_14A03DE
_14A0000:014A03BE mov edx, ebx
_14A0000:014A03C0 and edx, 100h
_14A0000:014A03C6 shr edx, 8
_14A0000:014A03C9 xor edx, ecx
_14A0000:014A03CB not edx
_14A0000:014A03CD and edx, 1
_14A0000:014A03D3 or eax, edx
_14A0000:014A03D5 shl eax, 1
_14A0000:014A03D8 add esi, 1
_14A0000:014A03DE
_14A0000:014A03DE loc_14A03DE: ; CODE XREF: _14A0000:014A03B8j
_14A0000:014A03DE mov edx, ebx
_14A0000:014A03E0 and edx, 800h
_14A0000:014A03E6 or edx, edx
_14A0000:014A03E8 jz loc_14A041D
_14A0000:014A03EE mov ecx, [edi+70h]
_14A0000:014A03F4 and ecx, 40h
_14A0000:014A03FA shr ecx, 6
_14A0000:014A03FD mov edx, ebx
_14A0000:014A03FF and edx, 400h
_14A0000:014A0405 shr edx, 0Ah
_14A0000:014A0408 xor edx, ecx
_14A0000:014A040A not edx
_14A0000:014A040C and edx, 1
_14A0000:014A0412 or eax, edx
_14A0000:014A0414 shl eax, 1
_14A0000:014A0417 add esi, 1
_14A0000:014A041D
_14A0000:014A041D loc_14A041D: ; CODE XREF: _14A0000:014A03E8j
_14A0000:014A041D mov edx, ebx
_14A0000:014A041F and edx, 2000000h
_14A0000:014A0425 or edx, edx
_14A0000:014A0427 jz loc_14A045C
_14A0000:014A042D mov ecx, [edi+70h]
_14A0000:014A0433 and ecx, 4
_14A0000:014A0439 shr ecx, 0Ah
_14A0000:014A043C mov edx, ebx
_14A0000:014A043E and edx, 1000000h
_14A0000:014A0444 shr edx, 18h
_14A0000:014A0447 xor edx, ecx
_14A0000:014A0449 not edx
_14A0000:014A044B and edx, 1
_14A0000:014A0451 or eax, edx
_14A0000:014A0453 shl eax, 1
_14A0000:014A0456 add esi, 1
_14A0000:014A045C
_14A0000:014A045C loc_14A045C: ; CODE XREF: _14A0000:014A0427j
_14A0000:014A045C mov edx, ebx
_14A0000:014A045E and edx, 2000h
_14A0000:014A0464 or edx, edx
_14A0000:014A0466 jz loc_14A049B
_14A0000:014A046C mov ecx, [edi+70h]
_14A0000:014A0472 and ecx, 80h
_14A0000:014A0478 shr ecx, 7
_14A0000:014A047B mov edx, ebx
_14A0000:014A047D and edx, 1000h
_14A0000:014A0483 shr edx, 0Ch
_14A0000:014A0486 xor edx, ecx
_14A0000:014A0488 not edx
_14A0000:014A048A and edx, 1
_14A0000:014A0490 or eax, edx
_14A0000:014A0492 shl eax, 1
_14A0000:014A0495 add esi, 1
_14A0000:014A049B
_14A0000:014A049B loc_14A049B: ; CODE XREF: _14A0000:014A0466j
_14A0000:014A049B mov edx, ebx
_14A0000:014A049D and edx, 8000h
_14A0000:014A04A3 or edx, edx
_14A0000:014A04A5 jz loc_14A04DA
_14A0000:014A04AB mov ecx, [edi+70h]
_14A0000:014A04B1 and ecx, 800h
_14A0000:014A04B7 shr ecx, 0Bh
_14A0000:014A04BA mov edx, ebx
_14A0000:014A04BC and edx, 4000h
_14A0000:014A04C2 shr edx, 0Eh
_14A0000:014A04C5 xor edx, ecx
_14A0000:014A04C7 not edx
_14A0000:014A04C9 and edx, 1
_14A0000:014A04CF or eax, edx
_14A0000:014A04D1 shl eax, 1
_14A0000:014A04D4 add esi, 1
_14A0000:014A04DA
_14A0000:014A04DA loc_14A04DA: ; CODE XREF: _14A0000:014A04A5j
_14A0000:014A04DA mov edx, ebx
_14A0000:014A04DC and edx, 20000h
_14A0000:014A04E2 or edx, edx
_14A0000:014A04E4 jz loc_14A0519
_14A0000:014A04EA mov ecx, [edi+70h]
_14A0000:014A04F0 and ecx, 4
_14A0000:014A04F6 shr ecx, 2
_14A0000:014A04F9 mov edx, ebx
_14A0000:014A04FB and edx, 10000h
_14A0000:014A0501 shr edx, 10h
_14A0000:014A0504 xor edx, ecx
_14A0000:014A0506 not edx
_14A0000:014A0508 and edx, 1
_14A0000:014A050E or eax, edx
_14A0000:014A0510 shl eax, 1
_14A0000:014A0513 add esi, 1
_14A0000:014A0519
_14A0000:014A0519 loc_14A0519: ; CODE XREF: _14A0000:014A04E4j
_14A0000:014A0519 mov edx, ebx
_14A0000:014A051B and edx, 80000h
_14A0000:014A0521 or edx, edx
_14A0000:014A0523 jz loc_14A0569
_14A0000:014A0529 mov ecx, [edi+70h]
_14A0000:014A052F and ecx, 80h
_14A0000:014A0535 shr ecx, 7
_14A0000:014A0538 mov edx, [edi+70h]
_14A0000:014A053E and edx, 800h
_14A0000:014A0544 shr edx, 0Bh
_14A0000:014A0547 xor ecx, edx
_14A0000:014A0549 mov edx, ebx
_14A0000:014A054B and edx, 40000h
_14A0000:014A0551 shr edx, 12h
_14A0000:014A0554 xor edx, ecx
_14A0000:014A0556 not edx
_14A0000:014A0558 and edx, 1
_14A0000:014A055E or eax, edx
_14A0000:014A0560 shl eax, 1
_14A0000:014A0563 add esi, 1
_14A0000:014A0569
_14A0000:014A0569 loc_14A0569: ; CODE XREF: _14A0000:014A0523j
_14A0000:014A0569 mov edx, ebx
_14A0000:014A056B and edx, 200000h
_14A0000:014A0571 or edx, edx
_14A0000:014A0573 jz loc_14A059F
_14A0000:014A0579 push 84h
_14A0000:014A057E call dword ptr [edi+5Ch]
_14A0000:014A0584 mov edx, [edi+30h]
_14A0000:014A058A mov edx, [edx]
_14A0000:014A058C and edx, 0FFFFh
_14A0000:014A0592 or edx, edx
_14A0000:014A0594 jnz loc_14A059F
_14A0000:014A059A mov eax, 1
_14A0000:014A059F
_14A0000:014A059F loc_14A059F: ; CODE XREF: _14A0000:014A0573j
_14A0000:014A059F ; _14A0000:014A0594j
_14A0000:014A059F mov edx, ebx
_14A0000:014A05A1 and edx, 800000h
_14A0000:014A05A7 or edx, edx
_14A0000:014A05A9 jz loc_14A05CF
_14A0000:014A05AF push 84h
_14A0000:014A05B4 call dword ptr [edi+5Ch]
_14A0000:014A05BA mov edx, [edi+30h]
_14A0000:014A05C0 mov edx, [edx]
_14A0000:014A05C2 or edx, edx
_14A0000:014A05C4 jnz loc_14A05CF
_14A0000:014A05CA mov eax, 1
_14A0000:014A05CF
_14A0000:014A05CF loc_14A05CF: ; CODE XREF: _14A0000:014A05A9j
_14A0000:014A05CF ; _14A0000:014A05C4j
_14A0000:014A05CF mov ecx, esi
_14A0000:014A05D1 mov esi, 1
_14A0000:014A05D6 shl esi, cl
_14A0000:014A05D8 sub esi, 1
_14A0000:014A05DE and ebx, 10h
_14A0000:014A05E4 or ebx, ebx
_14A0000:014A05E6 jnz loc_14A069B
_14A0000:014A05EC mov [edi+48h], eax
_14A0000:014A05F2 jmp loc_14A02CC
_14A0000:014A05F7 ; ---------------------------------------------------------------------------
_14A0000:014A05F7
_14A0000:014A05F7 loc_14A05F7: ; CODE XREF: _14A0000:014A02D7j
_14A0000:014A05F7 nop
_14A0000:014A05F8 add esp, 8
_14A0000:014A05FE mov ebx, [edi+0Ch]
_14A0000:014A0604 shl ebx, 2
_14A0000:014A0607 mov eax, [edi+14h]
_14A0000:014A060D shl eax, 2
_14A0000:014A0610 mov esi, [edi+40h]
_14A0000:014A0616 add esi, ebx
_14A0000:014A0618 mov esi, [esi]
_14A0000:014A061A add esi, eax
_14A0000:014A061C push ecx
_14A0000:014A061D push esi
_14A0000:014A061E push ebx
_14A0000:014A061F mov ebx, 0
_14A0000:014A0624 add ebp, ebx
_14A0000:014A0626 mov esi, ebx
_14A0000:014A0628 pop ebx
_14A0000:014A0629 mov ecx, esi
_14A0000:014A062B add ax, dx
_14A0000:014A062E pop esi
_14A0000:014A062F add ecx, esi
_14A0000:014A0631 mov esi, [ecx]
_14A0000:014A0633 shr dh, 1
_14A0000:014A0636 pop ecx
_14A0000:014A0637 jmp esi
_14A0000:014A0639 ; ---------------------------------------------------------------------------
_14A0000:014A0639
_14A0000:014A0639 loc_14A0639: ; CODE XREF: _14A0000:014A02E6j
_14A0000:014A0639 ; _14A0000:014A02F2j
_14A0000:014A0639 cmp eax, [edi+4Ch]
_14A0000:014A063F jb loc_14A06B5
_14A0000:014A0645 cmp eax, [edi+50h]
_14A0000:014A064B ja loc_14A06B5
_14A0000:014A0651 mov [edi], eax
_14A0000:014A0653 add esp, 8
_14A0000:014A0659 jmp dword ptr [edi+58h]
_14A0000:014A065F ; ---------------------------------------------------------------------------
_14A0000:014A065F
_14A0000:014A065F loc_14A065F: ; CODE XREF: _14A0000:014A0315j
_14A0000:014A065F cmp al, 2
_14A0000:014A0662 jnz loc_14A07F7
_14A0000:014A0668 xor [edi+20h], dl
_14A0000:014A066E jmp loc_14A0033
_14A0000:014A0673 ; ---------------------------------------------------------------------------
_14A0000:014A0673
_14A0000:014A0673 loc_14A0673: ; CODE XREF: _14A0000:014A0352j
_14A0000:014A0673 add bl, dl
_14A0000:014A0675 jmp loc_14A035A
_14A0000:014A067A ; ---------------------------------------------------------------------------
_14A0000:014A067A
_14A0000:014A067A loc_14A067A: ; CODE XREF: _14A0000:014A0386j
_14A0000:014A067A cmp dl, 2
_14A0000:014A067D jnz loc_14A0803
_14A0000:014A0683 mov edx, [edi+34h]
_14A0000:014A0689 cmp edx, 80000000h
_14A0000:014A068F jbe loc_14A0818
_14A0000:014A0695 push edx
_14A0000:014A0696 jmp loc_14A02B1
_14A0000:014A069B ; ---------------------------------------------------------------------------
_14A0000:014A069B
_14A0000:014A069B loc_14A069B: ; CODE XREF: _14A0000:014A05E6j
_14A0000:014A069B shr eax, 1
_14A0000:014A069E cmp esi, eax
_14A0000:014A06A0 jz loc_14A02CC
_14A0000:014A06A6 mov dword ptr [edi+48h], 0
_14A0000:014A06B0 jmp loc_14A02CC
_14A0000:014A06B5 ; ---------------------------------------------------------------------------
_14A0000:014A06B5
_14A0000:014A06B5 loc_14A06B5: ; CODE XREF: _14A0000:014A063Fj
_14A0000:014A06B5 ; _14A0000:014A064Bj
_14A0000:014A06B5 cmp dword ptr [edi+60h], 0
_14A0000:014A06BF jz loc_14A06E1
_14A0000:014A06C5 test dword ptr [edi+24h], 10h
_14A0000:014A06CF jz loc_14A06E1
_14A0000:014A06D5 sub eax, [edi+60h]
_14A0000:014A06DB add eax, [edi+64h]
_14A0000:014A06E1
_14A0000:014A06E1 loc_14A06E1: ; CODE XREF: _14A0000:014A06BFj
_14A0000:014A06E1 ; _14A0000:014A06CFj
_14A0000:014A06E1 push eax
_14A0000:014A06E2 mov ebx, [edi+24h]
_14A0000:014A06E8 and ebx, 20h
_14A0000:014A06EE or ebx, ebx
_14A0000:014A06F0 jz loc_14A0739
_14A0000:014A06F6 mov esi, [edi+68h]
_14A0000:014A06FC add esi, 8
_14A0000:014A0702 mov eax, [edi]
_14A0000:014A0704 mov ebx, [esi+10h]
_14A0000:014A070A
_14A0000:014A070A loc_14A070A: ; CODE XREF: _14A0000:014A0869j
_14A0000:014A070A cmp dword ptr [esi], 0FFFFFFFFh
_14A0000:014A0710 jnz loc_14A081F
_14A0000:014A0716
_14A0000:014A0716 loc_14A0716: ; CODE XREF: _14A0000:014A0841j
_14A0000:014A0716 mov ebx, [esi+14h]
_14A0000:014A071C add ebx, [edi+54h]
_14A0000:014A0722 push 0ACh
_14A0000:014A0727 call dword ptr [edi+5Ch]
_14A0000:014A072D mov eax, [edi+30h]
_14A0000:014A0733 add dword ptr [eax], 4
_14A0000:014A0739
_14A0000:014A0739 loc_14A0739: ; CODE XREF: _14A0000:014A06F0j
_14A0000:014A0739 pop eax
_14A0000:014A073A mov esi, eax
_14A0000:014A073C push 0ACh
_14A0000:014A0741 call dword ptr [edi+5Ch]
_14A0000:014A0747 mov eax, [edi+30h]
_14A0000:014A074D mov esp, [eax]
_14A0000:014A074F or ebx, ebx
_14A0000:014A0751 jz loc_14A0758
_14A0000:014A0757 push ebx
_14A0000:014A0758
_14A0000:014A0758 loc_14A0758: ; CODE XREF: _14A0000:014A0751j
_14A0000:014A0758 push esi
_14A0000:014A0759 mov esi, [edi+38h]
_14A0000:014A075F pushf
_14A0000:014A0760 sub esi, 0F0000000h
_14A0000:014A0766 popf
_14A0000:014A0767 add esi, [edi+3Ch]
_14A0000:014A076D mov eax, [edi+3Ch]
_14A0000:014A0773 add eax, 70h
_14A0000:014A0779 mov ecx, 0Eh
_14A0000:014A077E push edi
_14A0000:014A077F mov ebp, [edi+3Ch]
_14A0000:014A0785 lea edi, [edi+144h]
_14A0000:014A078B
_14A0000:014A078B loc_14A078B: ; CODE XREF: _14A0000:014A0858j
_14A0000:014A078B or ecx, ecx
_14A0000:014A078D jnz loc_14A0846
_14A0000:014A0793 mov eax, [esp]
_14A0000:014A0796 lea esi, [eax+144h]
_14A0000:014A079C mov ecx, 1Ch
_14A0000:014A07A1 mov edi, [eax+3Ch]
_14A0000:014A07A7 rep movsd
_14A0000:014A07A9 pop edi
_14A0000:014A07AA mov dword ptr [edi+38h], 0F0000000h
_14A0000:014A07B4 push dword ptr [edi+70h]
_14A0000:014A07BA push dword ptr [edi+74h]
_14A0000:014A07C0 push dword ptr [edi+84h]
_14A0000:014A07C6 push dword ptr [edi+8Ch]
_14A0000:014A07CC push dword ptr [edi+7Ch]
_14A0000:014A07D2 push dword ptr [edi+0ACh]
_14A0000:014A07D8 push dword ptr [edi+0A4h]
_14A0000:014A07DE push dword ptr [edi+94h]
_14A0000:014A07E4 push dword ptr [edi+9Ch]
_14A0000:014A07EA mov dword ptr [edi+28h], 0
_14A0000:014A07F4 popa
_14A0000:014A07F5 popf
_14A0000:014A07F6 retn
_14A0000:014A07F7 ; ---------------------------------------------------------------------------
_14A0000:014A07F7
_14A0000:014A07F7 loc_14A07F7: ; CODE XREF: _14A0000:014A0662j
_14A0000:014A07F7 nop
_14A0000:014A07F8 add [edi+20h], dl
_14A0000:014A07FE jmp loc_14A0033
_14A0000:014A0803 ; ---------------------------------------------------------------------------
_14A0000:014A0803
_14A0000:014A0803 loc_14A0803: ; CODE XREF: _14A0000:014A067Dj
_14A0000:014A0803 cmp dl, 3
_14A0000:014A0806 jnz loc_14A02B1
_14A0000:014A080C mov edx, [edi+34h]
_14A0000:014A0812 push edx
_14A0000:014A0813 jmp loc_14A02B1
_14A0000:014A0818 ; ---------------------------------------------------------------------------
_14A0000:014A0818
_14A0000:014A0818 loc_14A0818: ; CODE XREF: _14A0000:014A068Fj
_14A0000:014A0818 push dword ptr [edx]
_14A0000:014A081A jmp loc_14A02B1
_14A0000:014A081F ; ---------------------------------------------------------------------------
_14A0000:014A081F
_14A0000:014A081F loc_14A081F: ; CODE XREF: _14A0000:014A0710j
_14A0000:014A081F add ebx, [edi+54h]
_14A0000:014A0825 mov ecx, [esi+4]
_14A0000:014A082B add ecx, [edi+54h]
_14A0000:014A0831 cmp ecx, eax
_14A0000:014A0833 jnb loc_14A085D
_14A0000:014A0839 cmp eax, ebx
_14A0000:014A083B ja loc_14A085D
_14A0000:014A0841 jmp loc_14A0716
_14A0000:014A0846 ; ---------------------------------------------------------------------------
_14A0000:014A0846
_14A0000:014A0846 loc_14A0846: ; CODE XREF: _14A0000:014A078Dj
_14A0000:014A0846 cmp esi, eax
_14A0000:014A0848 jb loc_14A0850
_14A0000:014A084E mov esi, ebp
_14A0000:014A0850
_14A0000:014A0850 loc_14A0850: ; CODE XREF: _14A0000:014A0848j
_14A0000:014A0850 movsd
_14A0000:014A0851 movsd
_14A0000:014A0852 sub ecx, 1
_14A0000:014A0858 jmp loc_14A078B
_14A0000:014A085D ; ---------------------------------------------------------------------------
_14A0000:014A085D
_14A0000:014A085D loc_14A085D: ; CODE XREF: _14A0000:014A0833j
_14A0000:014A085D ; _14A0000:014A083Bj
_14A0000:014A085D add esi, 0Ch
_14A0000:014A0863 mov ebx, [esi+10h]
_14A0000:014A0869 jmp loc_14A070A