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

Disassembly:
sub esp, 0x4f8
mov eax, dword [0x71a00c]
xor eax, esp
mov dword [esp + 0x4f4], eax
push ebx
xor eax, eax
mov ebx, ecx
push edi
mov dword [esp + 8], eax
mov edi, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x74]
mov dword [esp + 0x10], edi
test al, 1
je 0x64c2dc
test al, 6
je 0x64bcb6
mov edx, dword [esp + 0x504]
call fcn.0064a920
mov edx, 0x71d144
mov ecx, ebx
call fcn.00645200
pop edi
pop ebx
mov ecx, dword [esp + 0x4f4]
xor ecx, esp
call fcn.0066bc45
add esp, 0x4f8
ret
push ebp
mov ebp, dword [esp + 0x508]
cmp ebp, 9
jae 0x64bcee
mov edx, ebp
call fcn.0064a920
mov edx, str.too_short
mov ecx, ebx
call fcn.00645200
pop ebp
pop edi
pop ebx
mov ecx, dword [esp + 0x4f4]
xor ecx, esp
call fcn.0066bc45
add esp, 0x4f8
ret
movzx eax, word [ebx + 0x326]
test ax, ax
jns 0x64bd19
mov edx, ebp
call fcn.0064a920
pop ebp
pop edi
pop ebx
mov ecx, dword [esp + 0x4f4]
xor ecx, esp
call fcn.0066bc45
add esp, 0x4f8
ret
push esi
test al, 4
jne 0x64c245
mov eax, dword [ebx + 0x5c]
mov edi, 0x51
cmp ebp, edi
cmovb edi, ebp
test eax, eax
je 0x64c2e6
push edi
lea ecx, [esp + 0x30]
push ecx
push ebx
call eax
push edi
lea edx, [esp + 0x3c]
mov ecx, ebx
call fcn.00641a10
sub ebp, edi
lea eax, [esp + 0x3c]
mov dword [esp + 0x51c], ebp
xor esi, esi
dec eax
lea ebp, [esp + 0x3e]
add esp, 0x10
mov dword [esp + 0x1c], eax
sub ebp, 3
mov dword [esp + 0x20], ebp
lea ecx, [esi + 3]
mov ebp, dword [esp + 0x50c]
lea edx, [esi + 1]
nop dword [eax + eax]
cmp esi, edi
jae 0x64bde3
cmp byte [eax + edx], 0
je 0x64bde3
cmp edx, edi
jae 0x64bde2
cmp byte [esp + edx + 0x2c], 0
je 0x64bde2
lea eax, [ecx - 1]
cmp eax, edi
jae 0x64bddd
mov eax, dword [esp + 0x20]
cmp byte [eax + ecx], 0
je 0x64bddd
cmp ecx, edi
jae 0x64bdd8
cmp byte [esp + ecx + 0x2c], 0
je 0x64bdd8
lea eax, [esi + 4]
cmp eax, edi
jae 0x64bdd3
cmp byte [esp + esi + 0x30], 0
je 0x64bdd3
mov eax, dword [esp + 0x1c]
add edx, 5
add esi, 5
add ecx, 5
cmp edx, 0x51
jb 0x64bd80
jmp 0x64bde3
add esi, 4
jmp 0x64bde3
add esi, 3
jmp 0x64bde3
add esi, 2
jmp 0x64bde3
inc esi
lea eax, [esi - 1]
cmp eax, 0x4e
ja 0x64c237
lea eax, [esi + 1]
mov dword [esp + 0x20], eax
cmp eax, edi
jae 0x64c229
cmp byte [esp + esi + 0x2d], 0
jne 0x64c229
mov edx, 0x69434350
mov ecx, ebx
call fcn.0064aac0
test eax, eax
jne 0x64c219
lea eax, [esp + 0x2e]
mov dword [esp + 0x14], 0x84
add eax, esi
lea edx, [esp + 0x104]
mov dword [ebx + 0x84], eax
sub edi, esi
push 0
lea eax, [esp + 0x18]
sub edi, 2
push eax
lea eax, [esp + 0x88]
mov dword [ebx + 0x88], edi
push eax
lea eax, [esp + 0x518]
push eax
push ecx
mov ecx, ebx
call fcn.0064af70
add esp, 0x14
cmp dword [esp + 0x14], 0
jne 0x64c1ec
movzx ecx, byte [esp + 0x80]
movzx eax, byte [esp + 0x81]
shl ecx, 8
add ecx, eax
movzx eax, byte [esp + 0x82]
shl ecx, 8
add ecx, eax
movzx eax, byte [esp + 0x83]
shl ecx, 8
add ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x84
jae 0x64beb2
push 0x71b57c
jmp 0x64bebc
test cl, 3
je 0x64bede
push str.invalid_length
push ecx
lea eax, [esp + 0x34]
mov ecx, ebx
push eax
lea edx, [ebx + 0x2dc]
call fcn.00643100
add esp, 0xc
test eax, eax
je 0x64c1f6
mov ecx, dword [esp + 0x14]
movzx eax, byte [ebx + 0x157]
lea edx, [ebx + 0x2dc]
push eax
lea eax, [esp + 0x84]
push eax
push ecx
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call fcn.00643420
add esp, 0x10
test eax, eax
je 0x64c1f6
movzx edx, byte [esp + 0x100]
movzx eax, byte [esp + 0x101]
mov ebp, dword [esp + 0x14]
shl edx, 8
add edx, eax
movzx eax, byte [esp + 0x102]
shl edx, 8
add edx, eax
movzx eax, byte [esp + 0x103]
shl edx, 8
add edx, eax
mov eax, dword [ebx + 0x2b8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
test eax, eax
je 0x64bf88
cmp ebp, dword [ebx + 0x2bc]
jbe 0x64bfc7
mov ecx, dword [ebx + 0x278]
mov dword [ebx + 0x2b8], 0
mov dword [ebx + 0x2bc], 0
push eax
test ecx, ecx
je 0x64bf80
push ebx
call ecx
add esp, 8
jmp 0x64bf88
call fcn.00676479
add esp, 4
test ebp, ebp
je 0x64c1e2
mov eax, dword [ebx + 0x274]
push ebp
test eax, eax
je 0x64bfa3
push ebx
call eax
add esp, 8
jmp 0x64bfab
call fcn.0067647e
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x64c1e2
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x2b8], eax
mov dword [ebx + 0x2bc], ebp
mov edi, eax
lea esi, [esp + 0x80]
mov ecx, 0x21
add eax, 0x84
rep movsd dword es:[edi], dword [esi]
push 0
lea ecx, [esp + 0x18]
push ecx
push eax
lea eax, [esp + 0x518]
lea edi, [edx + edx*2]
push eax
push ecx
shl edi, 2
lea edx, [esp + 0x118]
mov ecx, ebx
mov dword [esp + 0x28], edi
call fcn.0064af70
add esp, 0x14
cmp dword [esp + 0x14], 0
jne 0x64c1ec
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x2c]
push esi
push ebp
push eax
lea edx, [ebx + 0x2dc]
mov ecx, ebx
call fcn.00643730
add esp, 0xc
test eax, eax
je 0x64c1f6
mov eax, ebp
lea edx, [esp + 0x104]
sub eax, edi
sub eax, 0x84
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push 1
push eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*2]
lea eax, [eax + 0x21]
lea eax, [esi + eax*4]
push eax
lea eax, [esp + 0x518]
push eax
push ecx
mov ecx, ebx
call fcn.0064af70
mov edi, dword [esp + 0x520]
add esp, 0x14
test edi, edi
je 0x64c094
test dword [ebx + 0x78], 0x100000
jne 0x64c094
mov ebp, str.extra_compressed_data
mov dword [esp + 0x10], ebp
jmp 0x64c1f6
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x64c1d8
test edi, edi
je 0x64c0b0
mov edx, 0x71d110
mov ecx, ebx
call fcn.006451b0
mov edx, edi
mov ecx, ebx
call fcn.0064a920
push dword [ebx + 0xb4]
mov edx, esi
mov dword [esp + 0x2c], 1
mov ecx, ebx
call fcn.00643850
add esp, 4
test eax, eax
je 0x64c107
movzx ecx, byte [esi + 0x40]
lea edx, [ebx + 0x2dc]
movzx eax, byte [esi + 0x41]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0x42]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0x43]
shl ecx, 8
add ecx, eax
push ecx
mov ecx, ebx
call fcn.006432f0
add esp, 4
mov edi, dword [esp + 0x18]
test edi, edi
je 0x64c1c9
push 0
push 0x10
mov edx, edi
mov ecx, ebx
call fcn.00641e30
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, ebx
call fcn.006455a0
mov dword [edi + 0x74], eax
test eax, eax
je 0x64c16e
push dword [esp + 0x20]
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.006843a0
or dword [edi + 0xe8], 0x10
add esp, 0xc
or dword [edi + 8], 0x1000
mov dword [edi + 0x7c], ebp
xor ebp, ebp
mov dword [edi + 0x78], esi
mov esi, 0x8000
mov dword [ebx + 0x2b8], 0
jmp 0x64c183
mov esi, 0x8000
mov ebp, 0x71d100
or word [ebx + 0x326], si
mov dword [esp + 0x10], ebp
movups xmm0, xmmword [ebx + 0x2dc]
lea eax, [ebx + 0x2dc]
mov edx, edi
mov ecx, ebx
movups xmmword [edi + 0x28], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x38], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x48], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [edi + 0x58], xmm0
movq xmm0, qword [eax + 0x40]
mov eax, dword [eax + 0x48]
movq qword [edi + 0x68], xmm0
mov dword [edi + 0x70], eax
call fcn.00642780
test ebp, ebp
jne 0x64c1ff
mov dword [ebx + 0x80], 0
jmp 0x64c2c3
mov dword [esp + 0x10], 0x71d138
jmp 0x64c1f6
mov dword [esp + 0x10], 0x71d128
jmp 0x64c1f6
mov eax, dword [ebx + 0x9c]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x18]
mov esi, 0x8000
cmp dword [esp + 0x28], 0
mov dword [ebx + 0x80], 0
jne 0x64c25c
mov ebp, dword [esp + 0x50c]
jmp 0x64c253
mov esi, dword [ebx + 0x9c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], esi
jmp 0x64c24e
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], str.bad_compression_method
jmp 0x64c24e
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], 0x71cfa4
jmp 0x64c24e
mov eax, 0x71cfec
mov dword [esp + 0x10], eax
mov esi, 0x8000
mov edx, ebp
mov ecx, ebx
call fcn.0064a920
or word [ebx + 0x326], si
test edi, edi
je 0x64c2b2
movups xmm0, xmmword [ebx + 0x2dc]
mov eax, dword [ebx + 0x324]
mov edx, edi
mov ecx, ebx
movups xmmword [edi + 0x28], xmm0
movups xmm0, xmmword [ebx + 0x2ec]
movups xmmword [edi + 0x38], xmm0
movups xmm0, xmmword [ebx + 0x2fc]
movups xmmword [edi + 0x48], xmm0
movups xmm0, xmmword [ebx + 0x30c]
movups xmmword [edi + 0x58], xmm0
movq xmm0, qword [ebx + 0x31c]
movq qword [edi + 0x68], xmm0
mov dword [edi + 0x70], eax
call fcn.00642780
mov eax, dword [esp + 0x10]
test eax, eax
je 0x64c2c3
mov edx, eax
mov ecx, ebx
call fcn.00645200
mov ecx, dword [esp + 0x504]
pop esi
pop ebp
pop edi
pop ebx
xor ecx, esp
call fcn.0066bc45
add esp, 0x4f8
ret
mov edx, 0x71d154
call fcn.00645180
mov edx, str.Call_to_NULL_read_function
call fcn.00644f30
int3