Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CODE:0042CAC5 ; ---------------------------------------------------------------------------
- CODE:0042CAC6 align 4
- CODE:0042CAC8 ; Exported entry 6. UnpackAFile
- CODE:0042CAC8
- CODE:0042CAC8 ; =============== S U B R O U T I N E =======================================
- CODE:0042CAC8
- CODE:0042CAC8 ; Attributes: bp-based frame
- CODE:0042CAC8
- CODE:0042CAC8 public UnpackAFile
- CODE:0042CAC8 UnpackAFile proc near ; CODE XREF: ReadArcBmp+33p
- CODE:0042CAC8 ; ReadArcBmp2+2Fp
- CODE:0042CAC8
- CODE:0042CAC8 var_10 = dword ptr -10h
- CODE:0042CAC8 var_C = dword ptr -0Ch
- CODE:0042CAC8 var_8 = dword ptr -8
- CODE:0042CAC8 var_4 = dword ptr -4
- CODE:0042CAC8 arg_0 = dword ptr 8
- CODE:0042CAC8
- CODE:0042CAC8 push ebp
- CODE:0042CAC9 mov ebp, esp
- CODE:0042CACB xor ecx, ecx
- CODE:0042CACD push ecx
- CODE:0042CACE push ecx
- CODE:0042CACF push ecx
- CODE:0042CAD0 push ecx
- CODE:0042CAD1 push ebx
- CODE:0042CAD2 push esi
- CODE:0042CAD3 push edi
- CODE:0042CAD4 mov edi, offset dword_42F764
- CODE:0042CAD9 xor eax, eax
- CODE:0042CADB push ebp
- CODE:0042CADC push offset loc_42CC52
- CODE:0042CAE1 push dword ptr fs:[eax]
- CODE:0042CAE4 mov fs:[eax], esp
- CODE:0042CAE7 lea edx, [ebp+var_8]
- CODE:0042CAEA mov eax, [ebp+arg_0]
- CODE:0042CAED call sub_406A80
- CODE:0042CAF2 cmp ds:dword_478430, 0
- CODE:0042CAF9 jnz short loc_42CB02
- CODE:0042CAFB xor ebx, ebx
- CODE:0042CAFD jmp loc_42CC37
- CODE:0042CB02 ; ---------------------------------------------------------------------------
- CODE:0042CB02
- CODE:0042CB02 loc_42CB02: ; CODE XREF: UnpackAFile+31j
- CODE:0042CB02 mov esi, ds:dword_478430
- CODE:0042CB08 dec esi
- CODE:0042CB09 test esi, esi
- CODE:0042CB0B jl loc_42CC26
- CODE:0042CB11 inc esi
- CODE:0042CB12 mov [ebp+var_4], 0
- CODE:0042CB19 mov ebx, offset unk_42F780
- CODE:0042CB1E
- CODE:0042CB1E loc_42CB1E: ; CODE XREF: UnpackAFile+158j
- CODE:0042CB1E lea eax, [ebp+var_10]
- CODE:0042CB21 mov edx, ebx
- CODE:0042CB23 call sub_4037BC
- CODE:0042CB28 mov eax, [ebp+var_10]
- CODE:0042CB2B lea edx, [ebp+var_C]
- CODE:0042CB2E call sub_406464
- CODE:0042CB33 mov eax, [ebp+var_C]
- CODE:0042CB36 push eax
- CODE:0042CB37 lea edx, [ebp+var_10]
- CODE:0042CB3A mov eax, [ebp+var_8]
- CODE:0042CB3D call sub_406464
- CODE:0042CB42 mov edx, [ebp+var_10]
- CODE:0042CB45 pop eax
- CODE:0042CB46 call sub_403928
- CODE:0042CB4B jnz loc_42CC19
- CODE:0042CB51 mov esi, [ebx+20h]
- CODE:0042CB54 mov eax, [ebx+1Ch]
- CODE:0042CB57 sub esi, eax
- CODE:0042CB59 inc esi
- CODE:0042CB5A xor ecx, ecx ; dwMoveMethod
- CODE:0042CB5C mov edx, eax ; lDistanceToMove
- CODE:0042CB5E mov eax, [edi]
- CODE:0042CB60 call sub_406704
- CODE:0042CB65 mov edx, offset unk_438420 ; lpBuffer
- CODE:0042CB6A mov ecx, esi ; nNumberOfBytesToRead
- CODE:0042CB6C mov eax, [edi]
- CODE:0042CB6E call sub_4066AC
- CODE:0042CB73 dec eax
- CODE:0042CB74 mov ds:dword_478424, eax
- CODE:0042CB79 xor esi, esi
- CODE:0042CB7B mov edx, ds:dword_478424
- CODE:0042CB81 test edx, edx
- CODE:0042CB83 jl short loc_42CB96
- CODE:0042CB85 inc edx
- CODE:0042CB86 mov eax, offset unk_438420
- CODE:0042CB8B
- CODE:0042CB8B loc_42CB8B: ; CODE XREF: UnpackAFile+CCj
- CODE:0042CB8B xor ecx, ecx
- CODE:0042CB8D mov cl, [eax]
- CODE:0042CB8F add si, cx
- CODE:0042CB92 inc eax
- CODE:0042CB93 dec edx
- CODE:0042CB94 jnz short loc_42CB8B
- CODE:0042CB96
- CODE:0042CB96 loc_42CB96: ; CODE XREF: UnpackAFile+BBj
- CODE:0042CB96 cmp si, [ebx+12h]
- CODE:0042CB9A jz short loc_42CBA3
- CODE:0042CB9C xor ebx, ebx
- CODE:0042CB9E jmp loc_42CC37
- CODE:0042CBA3 ; ---------------------------------------------------------------------------
- CODE:0042CBA3
- CODE:0042CBA3 loc_42CBA3: ; CODE XREF: UnpackAFile+D2j
- CODE:0042CBA3 xor eax, eax
- CODE:0042CBA5 mov ds:dword_478428, eax
- CODE:0042CBAA xor eax, eax
- CODE:0042CBAC mov ds:dword_47842C, eax
- CODE:0042CBB1 xor esi, esi
- CODE:0042CBB3 mov al, [ebx+0Fh]
- CODE:0042CBB6 cmp al, 2
- CODE:0042CBB8 jnz short loc_42CBC6
- CODE:0042CBBA mov eax, offset dword_42CC6C
- CODE:0042CBBF call sub_42B840
- CODE:0042CBC4 jmp short loc_42CBF9
- CODE:0042CBC6 ; ---------------------------------------------------------------------------
- CODE:0042CBC6
- CODE:0042CBC6 loc_42CBC6: ; CODE XREF: UnpackAFile+F0j
- CODE:0042CBC6 cmp al, 1
- CODE:0042CBC8 jnz short loc_42CBDB
- CODE:0042CBCA mov edx, offset sub_42C798
- CODE:0042CBCF mov eax, offset sub_42C74C
- CODE:0042CBD4 call sub_42C62C
- CODE:0042CBD9 jmp short loc_42CBF9
- CODE:0042CBDB ; ---------------------------------------------------------------------------
- CODE:0042CBDB
- CODE:0042CBDB loc_42CBDB: ; CODE XREF: UnpackAFile+100j
- CODE:0042CBDB mov eax, ds:dword_42F77C
- CODE:0042CBE0 push eax
- CODE:0042CBE1 push offset sub_42C6B4
- CODE:0042CBE6 mov eax, ds:dword_42F77C
- CODE:0042CBEB push eax
- CODE:0042CBEC push offset sub_42C718
- CODE:0042CBF1 mov eax, [ebx+14h]
- CODE:0042CBF4 call sub_42C2AC
- CODE:0042CBF9
- CODE:0042CBF9 loc_42CBF9: ; CODE XREF: UnpackAFile+FCj
- CODE:0042CBF9 ; UnpackAFile+111j
- CODE:0042CBF9 test esi, esi
- CODE:0042CBFB jz short loc_42CC01
- CODE:0042CBFD xor ebx, ebx
- CODE:0042CBFF jmp short loc_42CC37
- CODE:0042CC01 ; ---------------------------------------------------------------------------
- CODE:0042CC01
- CODE:0042CC01 loc_42CC01: ; CODE XREF: UnpackAFile+133j
- CODE:0042CC01 mov eax, [ebx+14h]
- CODE:0042CC04 mov ds:dword_42F76C, eax
- CODE:0042CC09 xor eax, eax
- CODE:0042CC0B mov ds:dword_42F774, eax
- CODE:0042CC10 mov ds:byte_42F778, 0
- CODE:0042CC17 jmp short loc_42CC26
- CODE:0042CC19 ; ---------------------------------------------------------------------------
- CODE:0042CC19
- CODE:0042CC19 loc_42CC19: ; CODE XREF: UnpackAFile+83j
- CODE:0042CC19 inc [ebp+var_4]
- CODE:0042CC1C add ebx, 24h
- CODE:0042CC1F dec esi
- CODE:0042CC20 jnz loc_42CB1E
- CODE:0042CC26
- CODE:0042CC26 loc_42CC26: ; CODE XREF: UnpackAFile+43j
- CODE:0042CC26 ; UnpackAFile+14Fj
- CODE:0042CC26 mov eax, [ebp+var_4]
- CODE:0042CC29 cmp eax, ds:dword_478430
- CODE:0042CC2F jnz short loc_42CC35
- CODE:0042CC31 xor ebx, ebx
- CODE:0042CC33 jmp short loc_42CC37
- CODE:0042CC35 ; ---------------------------------------------------------------------------
- CODE:0042CC35
- CODE:0042CC35 loc_42CC35: ; CODE XREF: UnpackAFile+167j
- CODE:0042CC35 mov bl, 1
- CODE:0042CC37
- CODE:0042CC37 loc_42CC37: ; CODE XREF: UnpackAFile+35j
- CODE:0042CC37 ; UnpackAFile+D6j ...
- CODE:0042CC37 xor eax, eax
- CODE:0042CC39 pop edx
- CODE:0042CC3A pop ecx
- CODE:0042CC3B pop ecx
- CODE:0042CC3C mov fs:[eax], edx
- CODE:0042CC3F push offset loc_42CC59
- CODE:0042CC44
- CODE:0042CC44 loc_42CC44: ; CODE XREF: UnpackAFile+18Fj
- CODE:0042CC44 lea eax, [ebp+var_10]
- CODE:0042CC47 mov edx, 3
- CODE:0042CC4C call sub_4035C0
- CODE:0042CC51 retn
- CODE:0042CC52 ; ---------------------------------------------------------------------------
- CODE:0042CC52
- CODE:0042CC52 loc_42CC52: ; DATA XREF: UnpackAFile+14o
- CODE:0042CC52 jmp loc_402FD4
- CODE:0042CC57 ; ---------------------------------------------------------------------------
- CODE:0042CC57 jmp short loc_42CC44
- CODE:0042CC59 ; ---------------------------------------------------------------------------
- CODE:0042CC59
- CODE:0042CC59 loc_42CC59: ; CODE XREF: UnpackAFile+189j
- CODE:0042CC59 ; DATA XREF: UnpackAFile+177o
- CODE:0042CC59 mov eax, ebx
- CODE:0042CC5B pop edi
- CODE:0042CC5C pop esi
- CODE:0042CC5D pop ebx
- CODE:0042CC5E mov esp, ebp
- CODE:0042CC60 pop ebp
- CODE:0042CC61 retn
- CODE:0042CC61 UnpackAFile endp
- CODE:0042CC61
- CODE:0042CC61 ; ---------------------------------------------------------------------------
- CODE:0042CC62 align 4
- CODE:0042CC64 dd 0FFFFFFFFh, 0Eh
- CODE:0042CC6C dword_42CC6C dd 697A6B70h, 6F632070h, 6572706Dh, 7373h
- CODE:0042CC6C ; DATA XREF: UnpackAFile+F2o
Advertisement
Add Comment
Please, Sign In to add comment