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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xd0]
cmp eax, dword [ecx + 8]
jbe 0x8c5642
sub esp, 0x150
mov eax, dword [esp + 0x194]
test eax, eax
jne 0x8c4b1a
mov eax, dword [esp + 0x154]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + 0x1c], 2
jne 0x8c4aec
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea eax, [0x9fedbd]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1d
lea eax, [esp + 0x9c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
mov eax, dword [0x1285bb8]
mov ecx, dword [0x1285bbc]
mov edx, dword [0x1285bc0]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], edx
add esp, 0x150
ret
mov ecx, dword [esp + 0x18c]
mov dword [esp], ecx
mov edx, dword [esp + 0x190]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x74], ecx
mov edx, dword [esp + 0x18c]
mov dword [esp], edx
mov edx, dword [esp + 0x190]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x194]
mov dword [esp + 8], edx
call fcn.008c83d0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
nop
mov ebp, edx
and edx, 0x1f
cmp edx, 0x14
jne 0x8c4c83
test al, al
je 0x8c4c80
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x90]
test eax, eax
je 0x8c4bd2
mov eax, dword [eax + 4]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea eax, [0x9fde83]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
lea eax, [esp + 0xa4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.008c1480
mov eax, dword [0x1285bb8]
mov ecx, dword [0x1285bbc]
mov edx, dword [0x1285bc0]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], edx
add esp, 0x150
ret
cmp edx, 0x14
mov byte [esp + 0x52], al
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], ebx
je 0x8c4cca
cmp edx, 0x16
je 0x8c4cca
test ebp, 0x100
je 0x8c4cca
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00487900
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebp, edx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x10], ecx
call fcn.0048c2a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x8c533a
mov eax, dword [esp + 0x178]
cmp eax, 1
jle 0x8c4d17
mov eax, 1
jmp 0x8c4d4c
mov eax, dword [esp + 0x180]
cmp dword [0x1285ba8], eax
jne 0x8c4d35
mov eax, dword [esp + 0x184]
cmp dword [0x1285bac], eax
je 0x8c4d3c
mov eax, 1
jmp 0x8c4d4c
mov eax, dword [esp + 0x188]
cmp dword [0x1285bb0], eax
setne al
mov byte [esp + 0x53], al
mov ecx, dword [esp + 0x68]
cmp ecx, 0x15
je 0x8c500c
cmp ecx, 0x16
je 0x8c54de
cmp ecx, 0x19
jne 0x8c540c
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 8], edx
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
lea edi, [esp + 0x11c]
mov edx, eax
xor eax, eax
call fcn.0045fc43
mov eax, dword [edx + 0x38]
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x168]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0x40]
lea edi, [esp + 0x11c]
lea esi, [esp + 0xc]
call fcn.004600de
lea edi, [esp + 0xb4]
lea esi, [esp + 0x11c]
call fcn.004600de
test al, al
je 0x8c540c
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0048a520
mov eax, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], edx
lea edi, [esp + 0xe8]
lea esi, [esp + 0xb4]
call fcn.004600de
mov ecx, dword [esp + 0xf4]
test ecx, ecx
je 0x8c4f4d
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x8c4ef4
mov eax, dword [eax + 4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea ecx, [0xa09cb3]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2b
lea ecx, [esp + 0xa4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.008c1480
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x68]
movzx ecx, byte [esp + 0x53]
test cl, cl
je 0x8c4fe9
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea eax, [0xa0e44f]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x32
lea eax, [esp + 0x9c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], edx
add esp, 0x150
ret
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
call fcn.00409170
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x1285af8]
test cl, cl
je 0x8c5061
lea ecx, [0x95cee0]
mov dword [0x1285afc], ecx
mov edx, dword [0x12ad060]
test edx, edx
jne 0x8c5054
mov dword [0x1285b00], eax
jmp 0x8c5067
lea edi, [0x1285b00]
call fcn.0045f9a0
jmp 0x8c5067
lea ecx, [0x95cee0]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x94]
test edx, edx
je 0x8c5099
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x8c509f
or ebx, 0x80
jmp 0x8c509f
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x88]
mov dword [esp], edx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x64]
mov dword [esp + 8], ebp
call fcn.0048e3e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x4c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 0xc]
test al, al
je 0x8c540c
movzx eax, byte [esp + 0x53]
test al, al
je 0x8c51b1
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea edx, [0xa048ac]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x24
lea edx, [esp + 0x9c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x14], ebx
call fcn.0048b7d0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x8c531e
mov ebx, dword [esp + 0x154]
mov ebp, dword [ebx]
mov ebp, dword [ebp + 0xc]
mov ebp, dword [ebp + 0x1c]
test ebp, ebp
je 0x8c531e
cmp ebp, 1
je 0x8c52cc
cmp ebp, 2
jne 0x8c531e
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea eax, [0x9fcf84]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1b
lea eax, [esp + 0x9c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
jmp 0x8c531e
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
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 dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0048f0e0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], edx
mov dword [esp + 0x1a0], eax
add esp, 0x150
ret
mov ebx, dword [esp + 0x154]
mov dword [esp], ebx
mov ebx, dword [esp + 0x158]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x15c]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x40], eax
call fcn.008c5650
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], edx
add esp, 0x150
ret
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x8c5478
mov eax, dword [eax + 4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea eax, [0xa031d9]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x22
lea eax, [esp + 0xa4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.008c1480
lea eax, [0x95cee0]
mov dword [esp], eax
lea eax, [0xc94db4]
mov dword [esp + 4], eax
call fcn.00434020
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
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 dword [esp + 0x58], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x78], ecx
mov edx, dword [eax + 0x50]
mov dword [esp], ecx
call edx
cmp dword [esp + 4], 0x19
je 0x8c560a
movzx eax, byte [esp + 0x52]
test al, al
je 0x8c540c
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x90]
test eax, eax
je 0x8c5603
mov ecx, dword [eax + 4]
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0x74]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x164]
mov dword [esp], ecx
mov edx, dword [esp + 0x168]
mov dword [esp + 4], edx
call fcn.00409170
mov eax, dword [esp + 8]
lea ecx, [0x95cee0]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x154]
mov dword [esp], eax
lea edx, [0x9fde83]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1c
lea edx, [esp + 0xa4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.008c1480
jmp 0x8c540c
mov ecx, eax
jmp 0x8c557e
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x38]
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x168]
mov dword [esp + 8], edx
call eax
movzx eax, byte [esp + 0x40]
test al, al
jne 0x8c5533
jmp 0x8c540c
call fcn.0045e560
jmp fcn.008c4a20