Function at 0x64db80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10c
mov eax, dword [0x71a00c]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
mov ebx, dword [esp + 0x114]
push edi
mov edi, ecx
mov dword [esp + 0x18], edx
mov eax, dword [edi + 0x298]
test eax, eax
je 0x64dc06
cmp eax, 1
jne 0x64dbd0
mov edx, ebx
call fcn.0064a920
pop edi
pop ebx
mov ecx, dword [esp + 0x108]
xor ecx, esp
call fcn.0066bc45
add esp, 0x10c
ret
dec eax
mov dword [edi + 0x298], eax
cmp eax, 1
jne 0x64dc06
mov edx, ebx
call fcn.0064a920
mov edx, 0x71d360
mov ecx, edi
call fcn.00645200
pop edi
pop ebx
mov ecx, dword [esp + 0x108]
xor ecx, esp
call fcn.0066bc45
add esp, 0x10c
ret
mov eax, dword [edi + 0x74]
test al, 1
je 0x64de6b
test al, 4
je 0x64dc1b
or eax, 8
mov dword [edi + 0x74], eax
push ebp
mov ebp, dword [edi + 0x2b8]
push esi
lea esi, [ebx + 1]
test ebp, ebp
je 0x64dc61
cmp esi, dword [edi + 0x2bc]
jbe 0x64dca2
mov eax, dword [edi + 0x278]
mov dword [edi + 0x2b8], 0
mov dword [edi + 0x2bc], 0
push ebp
test eax, eax
je 0x64dc59
push edi
call eax
add esp, 8
jmp 0x64dc61
call fcn.00676479
add esp, 4
test esi, esi
je 0x64dc94
mov eax, dword [edi + 0x274]
push esi
test eax, eax
je 0x64dc78
push edi
call eax
add esp, 8
jmp 0x64dc80
call fcn.0067647e
add esp, 4
mov ebp, eax
test ebp, ebp
je 0x64dc96
mov dword [edi + 0x2b8], ebp
mov dword [edi + 0x2bc], esi
jmp 0x64dca2
xor ebp, ebp
mov edx, str.insufficient_memory_to_read_chunk
mov ecx, edi
call fcn.006451b0
test ebp, ebp
jne 0x64dcd4
mov edx, ebx
mov ecx, edi
call fcn.0064a920
mov edx, 0x71d38c
mov ecx, edi
call fcn.00645200
mov ecx, dword [esp + 0x118]
pop esi
pop ebp
pop edi
pop ebx
xor ecx, esp
call fcn.0066bc45
add esp, 0x10c
ret
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x64de7a
push ebx
push ebp
push edi
call eax
push ebx
mov edx, ebp
mov ecx, edi
call fcn.00641a10
add esp, 0x10
xor edx, edx
mov ecx, edi
call fcn.0064a920
test eax, eax
jne 0x64dcbb
xor esi, esi
test ebx, ebx
je 0x64de3e
cmp byte [esi + ebp], 0
je 0x64dd13
inc esi
cmp esi, ebx
jb 0x64dd08
cmp esi, 0x4f
ja 0x64de3e
cmp esi, 1
jb 0x64de3e
lea eax, [esi + 5]
cmp eax, ebx
jbe 0x64dd36
mov edx, 0x71d458
jmp 0x64de43
mov al, byte [esi + ebp + 1]
mov byte [esp + 0x13], al
test al, al
je 0x64dd57
cmp al, 1
jne 0x64dd4d
cmp byte [esi + ebp + 2], 0
je 0x64dd57
mov edx, str.bad_compression_info
jmp 0x64de43
add esi, 3
mov dword [esp + 0x18], esi
cmp esi, ebx
jae 0x64dd6d
cmp byte [esi + ebp], 0
je 0x64dd6d
inc esi
cmp esi, ebx
jb 0x64dd62
inc esi
mov dword [esp + 0x1c], esi
cmp esi, ebx
jae 0x64dd81
cmp byte [esi + ebp], 0
je 0x64dd81
inc esi
cmp esi, ebx
jb 0x64dd76
inc esi
test al, al
jne 0x64dd96
cmp esi, ebx
ja 0x64dd8e
sub ebx, esi
jmp 0x64ddd4
test al, al
je 0x64de37
cmp esi, ebx
jae 0x64de37
push ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0xffffffff
push eax
push esi
mov edx, ebx
mov ecx, edi
call fcn.0064ad40
add esp, 0xc
cmp eax, 1
jne 0x64ddc6
mov ebp, dword [edi + 0x2b8]
jmp 0x64ddd0
mov edx, dword [edi + 0x9c]
test edx, edx
jne 0x64de43
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
lea eax, [ebx + esi]
mov byte [eax + ebp], 0
xor eax, eax
cmp byte [esp + 0x13], al
push ecx
sete al
mov dword [esp + 0x2c], ebp
inc eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], eax
mov ecx, edi
mov eax, dword [esp + 0x1c]
add eax, ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
add eax, ebp
mov dword [esp + 0x40], eax
lea eax, [esi + ebp]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x28]
push eax
call fcn.0064fac0
add esp, 8
test eax, eax
je 0x64dcbb
mov edx, str.insufficient_memory
jmp 0x64de43
mov edx, str.truncated
jmp 0x64de43
mov edx, str.bad_keyword
test dword [edi + 0x78], 0x100000
mov ecx, edi
je 0x64de75
push edx
lea edx, [esp + 0x44]
call fcn.00645080
add esp, 4
lea edx, [esp + 0x40]
mov ecx, edi
call fcn.00644f60
jmp 0x64dcbb
mov edx, 0x71d39c
call fcn.00645180
call fcn.00645180
mov edx, str.Call_to_NULL_read_function
mov ecx, edi
call fcn.00644f30
int3