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

Disassembly:
sub esp, 0x484
push ebx
push ebp
mov ebp, dword [esp + 0x490]
mov ecx, dword [ebp + 0x5c]
push esi
push edi
xor edi, edi
xor eax, eax
cmp ecx, edi
setne al
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], edi
mov esi, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
imul esi, esi, 0x14c
mov eax, dword [esi + ecx + 0x9c]
add esi, ecx
cmp eax, edi
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], ecx
jbe 0x8959df
mov ebx, esi
call fcn.00895162
jmp 0x895fd2
cmp dword [esi + 0x7c], edi
jne 0x895f8c
cmp dword [esp + 0x28], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x258], edi
mov dword [esp + 0x25c], edi
mov dword [esp + 0x47c], 0x15
mov dword [esp + 0x474], edi
mov dword [esp + 0x478], edi
je 0x895ae0
cmp dword [esi + 0x94], edi
je 0x895ae0
cmp dword [esi + 0x78], edi
jne 0x895ae0
cmp dword [esi + 0xd0], edi
jne 0x895ae0
cmp dword [esp + 0x18], edi
jne 0x895a6c
mov edx, dword [0x7638b0]
push 0x464
push 0x646b90
push edi
push edx
call fcn.0088eb92
add esp, 0x10
mov dword [esp + 0x18], 1
jmp 0x895a95
mov eax, dword [0x7638b0]
cmp dword [eax + 0x38], edi
je 0x895a95
push eax
call fcn.0088a932
mov eax, dword [0x7638b0]
push 0x471
push 0x646b90
push edi
push eax
call fcn.0088eb92
add esp, 0x14
push ebp
lea eax, [esp + 0x3c]
mov ecx, esi
call fcn.008958c2
add esp, 4
cmp eax, edi
je 0x895f46
cmp eax, 1
je 0x895c7c
xor edi, edi
lea ecx, [esp + 0x38]
push ecx
mov dword [esi + 0x78], edi
mov dword [esi + 0x7c], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x9c], edi
call fcn.008b98b2
lea edx, [esp + 0x3c]
push edx
call fcn.0088aa92
add esp, 8
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x895afc
mov eax, dword [0x7638b0]
push eax
call fcn.0088a932
add esp, 4
xor eax, eax
mov dword [esp + 0x18], eax
cmp dword [esi + 0x78], edi
jne 0x895b26
lea ecx, [esp + 0x38]
push ecx
push ebp
call fcn.00895752
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x20], 1
mov ecx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x10], eax
jmp 0x895b88
mov ecx, dword [ebp + 0x44]
mov ebx, dword [esi + 0x4c]
lea edx, [esp + 0x38]
push edx
lea eax, [esi + 8]
push eax
push ecx
call fcn.008e72e2
mov ecx, dword [esi + 0x74]
add esp, 0xc
cmp ecx, edi
je 0x895b56
cmp ebx, 1
jne 0x895b78
cmp eax, edi
je 0x895b71
mov eax, dword [esi + 0x80]
jmp 0x895b7a
cmp ebx, 2
je 0x895b78
cmp ebx, 4
je 0x895b78
cmp ebx, 1
jne 0x895b71
cmp eax, edi
je 0x895b78
mov eax, dword [esi + 0x80]
jmp 0x895b7a
mov eax, 1
jmp 0x895b7a
xor eax, eax
xor ecx, ecx
cmp eax, edi
mov dword [esp + 0x20], ecx
jne 0x895ee0
cmp dword [ebp + 0x38], edi
mov ebx, dword [esi + 0xc]
jne 0x895bec
cmp ecx, edi
je 0x895bec
push ebx
call fcn.00894672
add eax, 0x74
add esp, 4
cmp ebx, eax
je 0x895bec
cmp dword [esp + 0x28], edi
jne 0x895bec
mov eax, dword [0x7607ec]
mov edx, dword [esp + 0x49c]
mov ecx, dword [esp + 0x14]
cmp eax, edi
mov eax, dword [ebp + 0x48]
push edx
je 0x895bc9
push 0x400
jmp 0x895bcb
push 0
push eax
push ecx
push ebx
call fcn.00894872
add esp, 4
push eax
call fcn.008956e2
mov edi, eax
add esp, 0x14
cmp edi, 0xa
jne 0x896088
xor edi, edi
push ebx
call fcn.00894672
add eax, 0x65
add esp, 4
cmp ebx, eax
jne 0x895c05
inc dword [esp + 0x10]
jmp 0x895ee0
cmp dword [esp + 0x28], edi
jne 0x895c44
mov eax, dword [0x7607ec]
mov edx, dword [esp + 0x49c]
mov ecx, dword [esp + 0x14]
cmp eax, edi
mov eax, dword [ebp + 0x48]
push edx
je 0x895c2a
push 0x400
jmp 0x895c2c
push 0
push eax
push ecx
push ebx
call fcn.008956e2
mov edi, eax
add esp, 0x14
cmp edi, 0xa
jne 0x896088
xor edi, edi
push ebx
call fcn.00894672
add eax, 0x74
add esp, 4
cmp ebx, eax
je 0x895ee0
cmp dword [esp + 0x10], 0x64
ja 0x896057
cmp dword [esi + 0x94], edi
je 0x895cb4
cmp dword [esp + 0x20], edi
je 0x895cb4
mov edx, dword [esi + 0x20]
cmp edx, dword [esi + 0x90]
jae 0x895cd0
lea edx, [esp + 0x38]
push edx
mov dword [esi + 0x7c], 1
call fcn.008b98b2
mov eax, dword [esi + 0x9c]
xor edi, edi
add esp, 4
cmp eax, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], edi
jbe 0x895f8c
mov ebx, esi
call fcn.00895162
jmp 0x895fd2
cmp dword [esi + 0xa8], edi
je 0x895cd0
mov eax, dword [esi]
push ebx
push eax
call fcn.008947f2
add esp, 8
test eax, eax
je 0x895ee0
cmp dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
je 0x895d72
mov ecx, dword [esp + 0x14]
test byte [ecx + 0xc], 1
je 0x895d54
mov edx, dword [ebp + 0x5c]
push edx
mov eax, ecx
push eax
push ebx
call fcn.008c46d2
add esp, 0xc
test eax, eax
jne 0x895d72
mov eax, dword [ebp + 0x5c]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x38]
push edx
push ebx
push eax
mov edi, esi
call fcn.00895262
mov edi, eax
add esp, 0x10
cmp edi, 0xa
jne 0x896088
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x895d4e
mov ecx, dword [esi + 0xb0]
mov eax, dword [esp + 0x14]
push ebx
call fcn.00895012
push esi
call fcn.00895302
add esp, 8
test eax, eax
je 0x895c7c
jmp 0x895ee0
mov ebx, eax
xor edi, edi
jmp 0x895d72
mov ecx, dword [ebp + 0x5c]
mov edx, dword [esp + 0x14]
push ecx
push edx
push ebx
call fcn.008c4702
add esp, 0xc
test eax, eax
jne 0x895d72
mov dword [esp + 0x2c], 1
mov ecx, dword [esi + 0xb0]
mov eax, dword [esp + 0x14]
push ebx
call fcn.00895012
mov eax, dword [esi + 0x94]
add esp, 4
cmp eax, edi
je 0x895d95
cmp dword [esp + 0x20], edi
jne 0x895da6
push esi
call fcn.00895302
add esp, 4
test eax, eax
je 0x895c7c
test byte [ebx - 6], 0x20
je 0x895dc3
cmp dword [esp + 0x2c], edi
jne 0x895dc3
cmp dword [esi + 0x94], edi
jne 0x895c7c
jmp 0x895ee0
cmp dword [esi + 0xd0], edi
jne 0x895dd1
cmp dword [esp + 0x2c], edi
je 0x895e3c
mov edx, dword [esp + 0x49c]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x34]
push ecx
push edx
push ebx
push ebp
mov eax, esi
call fcn.008953a2
mov edi, eax
add esp, 0x14
cmp edi, 0xa
mov dword [esp + 0x1c], 1
jne 0x896088
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
inc edx
test eax, eax
mov dword [esp + 0x10], edx
je 0x895f60
test byte [eax - 6], 0x20
jne 0x895f60
mov eax, dword [ebp + 0x70]
test eax, eax
je 0x895e3c
lea eax, [esp + 0x38]
push eax
lea ecx, [esi + 0xdc]
push ecx
call fcn.008e6ec2
add esp, 8
push esi
call fcn.00895352
add esp, 4
test eax, eax
jne 0x895e5c
mov eax, dword [esi + 0x94]
test eax, eax
jne 0x895c7c
jmp 0x895ee0
mov edx, dword [esi + 0x98]
inc edx
mov dword [esi + 0x98], edx
mov ecx, dword [ebp + 0x40]
test ecx, ecx
mov eax, edx
je 0x895eab
mov eax, dword [esp + 0x49c]
lea edx, [esp + 0x38]
push edx
push eax
push ebp
call fcn.008f04a2
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x94]
add ecx, 0xd
add esp, 0xc
test eax, eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], ecx
jne 0x895c7c
jmp 0x895ee0
cmp eax, 1
jbe 0x895f46
mov eax, dword [esi + 0x94]
test eax, eax
jne 0x895f46
mov eax, dword [esi + 0xa4]
test eax, eax
jne 0x895f46
push esi
call fcn.008951d2
mov eax, dword [esi + 0x9c]
add esp, 4
cmp eax, 0x10
je 0x895f3f
mov eax, dword [esp + 0x1c]
xor edi, edi
cmp eax, edi
jne 0x895f60
cmp dword [esp + 0x24], edi
je 0x895f06
mov ecx, dword [esi + 0xc]
push ecx
call fcn.00894672
mov ecx, dword [esi + 0xc]
add eax, 0x74
add esp, 4
cmp eax, ecx
je 0x895f60
cmp dword [ebp + 0x38], edi
je 0x895f1b
lea edx, [esp + 0x38]
push edx
lea eax, [esi + 8]
push eax
call fcn.00894a92
jmp 0x895f29
lea ecx, [esp + 0x38]
push ecx
lea edx, [esi + 8]
push edx
call fcn.008e7b22
add esp, 8
cmp eax, edi
je 0x895c7c
xor ecx, ecx
mov dword [esp + 0x20], ecx
jmp 0x895b88
mov ebx, esi
call fcn.00895162
mov eax, dword [esi + 0x94]
xor edi, edi
cmp eax, edi
je 0x895fa0
cmp dword [ebp + 0x70], edi
jne 0x895fa0
mov dword [esi + 0x7c], 1
jmp 0x895fbb
lea eax, [esp + 0x38]
mov dword [esi + 0x80], 1
push eax
add esi, 8
push esi
call fcn.008e6ec2
lea ecx, [esp + 0x40]
push ecx
call fcn.008b98b2
add esp, 0xc
xor edi, edi
jmp 0x8959ab
mov eax, dword [ebp + 0x50]
cmp eax, edi
je 0x8960ba
dec eax
mov dword [ebp + 0x50], eax
jmp 0x8959b3
lea eax, [esp + 0x38]
mov dword [esi + 0x80], 1
push eax
add esi, 8
push esi
call fcn.008e6ec2
add esp, 8
lea ecx, [esp + 0x38]
push ecx
call fcn.008b98b2
add esp, 4
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], edi
xor edi, edi
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x4c]
inc eax
cmp eax, ecx
jne 0x896032
push ebp
call fcn.00894eb2
mov eax, dword [ebp + 0x68]
add esp, 4
cmp eax, edi
jne 0x8959b3
mov ecx, dword [ebp + 0x30]
push ebp
push ecx
call fcn.00894ef2
mov eax, dword [esp + 0x4a4]
mov edx, dword [ebp + 4]
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, edi
je 0x896022
mov ecx, dword [0x7638b0]
push ecx
call fcn.0088a932
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xa
pop ebx
add esp, 0x484
ret
mov ecx, dword [ebp + 0x54]
mov dword [ebp + 0x50], eax
imul eax, eax, 0x14c
add eax, ecx
mov dword [eax + 0x78], edi
mov dword [eax + 0x7c], edi
mov dword [eax + 0x98], edi
mov dword [eax + 0x9c], edi
jmp 0x8959b3
lea edx, [esp + 0x38]
mov dword [esi + 0x80], edi
push edx
add esi, 8
push esi
call fcn.008e6ec2
lea eax, [esp + 0x40]
push eax
call fcn.008b98b2
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 0xa
pop ebx
add esp, 0x484
ret
lea ecx, [esp + 0x38]
mov dword [esi + 0x80], 0
push ecx
add esi, 8
push esi
call fcn.008e6ec2
lea edx, [esp + 0x40]
push edx
call fcn.008b98b2
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x484
ret
cmp dword [ebp + 0x68], edi
je 0x8960fc
cmp dword [ebp + 0x6c], edi
jne 0x8960fc
mov eax, dword [ebp + 0x30]
push ebp
push eax
mov dword [ebp + 0x6c], 1
call fcn.00894ef2
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x4a4]
add esp, 8
cmp eax, edi
mov dword [edx + 0x54], ecx
je 0x896022
mov eax, dword [0x7638b0]
push eax
jmp 0x89601a
cmp dword [esp + 0x18], edi
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x49c]
mov dword [ebp + 0x28], 3
mov dword [edx + 0x54], ecx
je 0x896022
mov eax, dword [0x7638b0]
push eax
jmp 0x89601a