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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x18]
cmp eax, dword [ecx + 8]
jbe 0x8c74d1
sub esp, 0x98
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x9c]
mov dword [edx + 0xc], ecx
mov ebx, dword [0x12ad060]
lea edi, [edx + 0x10]
test ebx, ebx
jne 0x8c67ca
mov ebx, dword [esp + 0xb8]
mov dword [edx + 0x10], ebx
jmp 0x8c67d8
mov eax, dword [esp + 0xb8]
call fcn.0045f9a0
mov ebx, eax
mov ebp, dword [esp + 0xb4]
test ebp, ebp
je 0x8c6ef8
mov esi, dword [ebp + 8]
cmp esi, 0x4f130308
ja 0x8c6ab9
cmp esi, 0xfa45894
jne 0x8c68f9
lea eax, [0xcaa174]
cmp ecx, eax
jne 0x8c6ef8
mov ecx, dword [0x1285ba8]
mov ebx, dword [0x1285bac]
mov ebp, dword [0x1285bb0]
mov dword [esp], edx
mov esi, dword [esp + 0xa0]
mov dword [esp + 4], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 8], esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebp
call fcn.008c4850
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.008c60d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp esi, 0x36572e67
jne 0x8c69f4
lea eax, [0xcaa0ac]
cmp ecx, eax
jne 0x8c6ef8
mov eax, dword [0x1285ba8]
mov ecx, dword [0x1285bac]
mov ebx, dword [0x1285bb0]
mov dword [esp], edx
mov ebp, dword [esp + 0xa0]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
call fcn.008c4150
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.008c60d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp esi, 0x4f130308
jne 0x8c6ef8
lea eax, [0xcaa23c]
cmp ecx, eax
jne 0x8c6ef8
mov dword [esp], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c30a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.008c60d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp esi, 0x8e6cd13b
ja 0x8c6c41
cmp esi, 0x7a206bd0
jne 0x8c6bc0
lea eax, [0xcaa304]
cmp ecx, eax
jne 0x8c6ef8
mov eax, dword [0x1285ba8]
mov ecx, dword [0x1285bac]
mov ebx, dword [0x1285bb0]
mov dword [esp], edx
mov ebp, dword [esp + 0xa0]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
call fcn.008c4360
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.008c60d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp esi, 0x8e6cd13b
jne 0x8c6ef8
lea eax, [0xcaa124]
cmp ecx, eax
jne 0x8c6ef8
mov dword [esp], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.008c60d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp esi, 0xe4047a14
jne 0x8c6db7
lea esi, [0xcaa14c]
cmp ecx, esi
jne 0x8c6ef8
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebx
mov ecx, dword [0x1285ba8]
mov ebx, dword [0x1285bac]
mov ebp, dword [0x1285bb0]
nop
mov dword [edx + 0xc], esi
mov eax, ebp
mov ebp, dword [0x12ad060]
test ebp, ebp
jne 0x8c6ca8
mov ebp, dword [esp + 0xb8]
mov dword [edx + 0x10], ebp
jmp 0x8c6cbc
mov ebp, eax
mov eax, dword [esp + 0xb8]
call fcn.0045f9a0
mov edi, eax
mov eax, ebp
mov ebp, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ecx
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x54], ebx
mov dword [esp], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], 1
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], eax
call fcn.008c45c0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.008c60d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp esi, 0xf46e0b19
jne 0x8c6ef8
lea eax, [0xcaa1ec]
cmp ecx, eax
jne 0x8c6ef8
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x50]
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
lea ecx, [eax - 0x12]
cmp ecx, 5
ja 0x8c6e01
mov ecx, dword [esp + 0xac]
mov eax, 1
jmp 0x8c6e4d
cmp eax, 0x19
jne 0x8c6e44
mov eax, dword [0x128529c]
mov ecx, dword [esp + 0xac]
cmp dword [0x1285298], ecx
je 0x8c6e1f
xor eax, eax
jmp 0x8c6e4d
mov dword [esp], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403760
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xac]
jmp 0x8c6e4d
mov ecx, dword [esp + 0xac]
xor eax, eax
test al, al
jne 0x8c6eb6
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
test ecx, ecx
je 0x8c6e6a
mov eax, dword [ecx + 4]
jmp 0x8c6e6c
mov eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
lea edx, [0x9f8e81]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x17
lea edx, [esp + 0x74]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.008c1480
jmp 0x8c6ef8
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.0048f0e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x50]
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
cmp eax, 0xe
ja 0x8c70e7
cmp eax, 6
ja 0x8c700a
cmp eax, 1
je 0x8c6fa7
cmp eax, 2
jb 0x8c74c3
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c7780
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c74e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp eax, 0xc
ja 0x8c7084
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c78f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c7a60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp eax, 0x14
ja 0x8c7207
cmp eax, 0x10
jbe 0x8c7192
cmp eax, 0x14
jne 0x8c74b5
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x6c]
mov ecx, dword [esp + 0xb0]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
test eax, eax
jne 0x8c74a7
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x14], eax
call fcn.008c7d30
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c7bd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
cmp eax, 0x18
je 0x8c7362
cmp eax, 0x19
jne 0x8c7499
mov eax, dword [0x128529c]
mov ecx, dword [esp + 0xac]
cmp dword [0x1285298], ecx
jne 0x8c748b
mov dword [esp], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403760
movzx eax, byte [esp + 0xc]
test al, al
je 0x8c73c5
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x14], eax
call fcn.008c7d30
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
lea eax, [0x9e00a0]
mov dword [esp], eax
lea eax, [esp + 0x7c]
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 0x8c7340
nop
movzx ebx, byte [0x1285af8]
test bl, bl
je 0x8c7311
mov dword [0x1285afc], ecx
mov ebx, dword [0x12ad060]
test ebx, ebx
jne 0x8c7304
mov dword [0x1285b00], edx
jmp 0x8c7311
lea edi, [0x1285b00]
mov eax, edx
call fcn.0045f9a0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x64]
test eax, eax
je 0x8c7338
nop
movzx ecx, byte [eax + 0xf]
mov ebx, ecx
and ecx, 0x1f
test bl, 0x20
jne 0x8c7346
or ecx, 0x80
jmp 0x8c7346
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x8c7346
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
call fcn.008c7630
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x98
ret
mov eax, dword [esp + 0xb4]
test eax, eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
je 0x8c73ff
mov eax, dword [eax + 4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xac]
test eax, eax
je 0x8c7422
mov eax, dword [eax + 4]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
lea eax, [0xa031fb]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x22
lea eax, [esp + 0x88]
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 + 0xb4]
test eax, eax
jmp 0x8c73ce
mov eax, dword [esp + 0xb4]
test eax, eax
jmp 0x8c73ce
mov eax, dword [esp + 0xb4]
test eax, eax
jmp 0x8c73ce
mov eax, dword [esp + 0xb4]
test eax, eax
jmp 0x8c73ce
mov eax, dword [esp + 0xb4]
test eax, eax
jmp 0x8c73ce
call fcn.0045e560
jmp fcn.008c6780