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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x8c6776
sub esp, 0x68
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x8c61d6
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x8c6734
mov eax, dword [ecx + 0x50]
mov edx, dword [esp + 0x80]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
lea ecx, [eax - 0x12]
cmp ecx, 5
ja 0x8c6127
mov ecx, dword [esp + 0x7c]
mov eax, 1
jmp 0x8c616a
cmp eax, 0x19
jne 0x8c6164
mov eax, dword [0x128529c]
mov ecx, dword [esp + 0x7c]
cmp dword [0x1285298], ecx
je 0x8c6142
xor eax, eax
jmp 0x8c616a
mov dword [esp], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403760
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x7c]
jmp 0x8c616a
mov ecx, dword [esp + 0x7c]
xor eax, eax
test al, al
jne 0x8c66ec
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
test ecx, ecx
je 0x8c618b
mov eax, dword [ecx + 4]
jmp 0x8c618d
mov eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
lea edx, [0x9fc055]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1a
lea edx, [esp + 0x44]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
mov eax, dword [esp + 0x78]
mov ecx, dword [0x128529c]
mov edx, dword [esp + 0x7c]
cmp dword [0x1285298], edx
je 0x8c61ec
xor ecx, ecx
jmp 0x8c6212
mov dword [esp], edx
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00403760
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x7c]
mov ecx, eax
mov eax, dword [esp + 0x78]
test cl, cl
jne 0x8c621a
xor ecx, ecx
jmp 0x8c6272
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x7c]
cmp edx, eax
je 0x8c6249
mov eax, 1
jmp 0x8c626c
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.00403760
movzx eax, byte [esp + 0xc]
xor eax, 1
mov edx, dword [esp + 0x7c]
mov ecx, eax
mov eax, dword [esp + 0x78]
test cl, cl
jne 0x8c6633
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x8c6286
xor ebx, ebx
jmp 0x8c62d7
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0xc]
xor eax, 1
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
mov ebx, eax
mov eax, dword [esp + 0x78]
test bl, bl
je 0x8c6612
nop
mov ebx, eax
and eax, 0x1f
cmp eax, 0x14
jne 0x8c63ad
mov eax, dword [esp + 0x74]
mov ebp, dword [eax]
test ebp, ebp
xchg ebp, ebx
setne bl
xchg ebp, ebx
xor ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x8c63b1
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0048a2d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0xc]
test al, al
jne 0x8c6388
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
jmp 0x8c63b5
mov eax, dword [esp + 0x38]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x8c], eax
add esp, 0x68
ret
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebp
nop
mov esi, ebx
and ebx, 0x1f
cmp ebx, 0x16
je 0x8c63d0
xor ebx, ebx
jmp 0x8c642e
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x28]
test bl, bl
je 0x8c64d7
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0048a2d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test eax, eax
jne 0x8c661a
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov ebx, dword [esp + 0x7c]
test ebx, ebx
je 0x8c6481
mov ebx, dword [ebx + 4]
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
lea eax, [0xa05a64]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x25
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
jmp 0x8c661a
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
lea edx, [0xcb1d7c]
cmp eax, edx
jne 0x8c6759
mov dword [esp], ecx
call fcn.004840a0
mov eax, dword [esp + 4]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.00484470
movzx eax, byte [esp + 0xc]
test al, al
je 0x8c6561
mov eax, dword [esp + 0x18]
test eax, 0x100
je 0x8c6565
mov ecx, dword [esp + 0x24]
mov dword [esp], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00487900
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x8c661a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [esp], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x8c65b0
mov edx, dword [edx + 4]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x5c], edx
test eax, eax
je 0x8c65c6
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
lea eax, [0xa0918c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x29
lea eax, [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.008c1480
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
jmp 0x8c661a
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
add esp, 0x68
ret
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
lea eax, [0x9e00a0]
mov dword [esp], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], eax
call fcn.00408f80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test eax, eax
je 0x8c66cd
nop
movzx ebx, byte [0x1285af8]
test bl, bl
je 0x8c669e
mov dword [0x1285afc], ecx
mov ebx, dword [0x12ad060]
test ebx, ebx
jne 0x8c6691
mov dword [0x1285b00], edx
jmp 0x8c669e
lea edi, [0x1285b00]
mov eax, edx
call fcn.0045f9a0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x8c66c5
nop
movzx ecx, byte [eax + 0xf]
mov ebx, ecx
and ecx, 0x1f
test bl, 0x20
jne 0x8c66d3
or ecx, 0x80
jmp 0x8c66d3
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x8c66d3
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
add esp, 0x68
ret
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
call fcn.0048f0e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
add esp, 0x68
ret
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x68
ret
mov dword [esp], eax
lea eax, [0x9da820]
mov dword [esp + 4], eax
lea eax, [0x9ce640]
mov dword [esp + 8], eax
call fcn.00408e40
nop
call fcn.0045e560
jmp fcn.008c60d0