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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc8]
cmp eax, dword [ecx + 8]
jbe 0x5c2db5
sub esp, 0x148
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov eax, dword [esp + 0x14c]
mov ecx, dword [eax]
mov dword [esp + 0x12c], ecx
mov dword [esp], ecx
call fcn.005c0130
mov eax, dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x130], edx
mov dword [esp + 0xe4], 0x10
lea ebx, [0x6563b4]
mov dword [esp + 0xf4], ebx
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
lea ebp, [esp + 0xe4]
mov dword [esp], ebp
call fcn.00431930
test eax, eax
jne 0x5c2492
mov dword [esp + 0xac], 0x10
lea eax, [0x6563d0]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0xd4], eax
lea ecx, [esp + 0x160]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0xac]
mov dword [esp], ecx
call fcn.00431930
test eax, eax
jne 0x5c2485
mov eax, dword [esp + 0x14c]
mov ebx, dword [eax + 4]
mov ebp, dword [ebx + 0x58]
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x5c2432
je 0x5c2406
lea edi, [0x623fc0]
cmp dword [esi + 4], edi
je 0x5c2432
mov esi, dword [ebx + 0x30]
test esi, esi
xchg edi, ebx
setne bl
xchg edi, ebx
mov ecx, ebx
mov ebx, dword [ebx + 0x2c]
test ebx, ebx
mov edx, eax
setne al
or edi, eax
xchg edi, eax
test al, al
xchg edi, eax
jne 0x5c243a
mov esi, 0xffffffff
mov ebx, 0xffffffff
jmp 0x5c243a
mov ecx, ebx
mov edx, eax
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x134], ebp
test ebp, ebp
setne al
mov byte [esp + 0x2e], al
cmp esi, 0xffffffff
xchg edi, ebx
setne bl
xchg edi, ebx
cmp ebx, 0xffffffff
setne al
or eax, edi
mov byte [esp + 0x2f], al
mov edi, dword [esp + 0x154]
mov byte [esp + 0x78], al
xor eax, eax
mov byte [esp + 0x2d], al
xor eax, eax
mov byte [esp + 0x2c], al
movzx eax, byte [esp + 0x78]
jmp 0x5c24d0
nop
call fcn.00432460
add esp, 0x148
ret
nop
call fcn.00432460
add esp, 0x148
ret
mov edi, dword [esp + 0x154]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x130]
mov eax, ecx
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x14c]
mov ebp, dword [esp + 0x134]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
movzx esi, byte [esp + 0x2d]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5c2779
mov ebp, dword [esp + 0x50]
dec ebp
mov esi, dword [esp + 0x54]
cmp esi, ebp
jb 0x5c2dab
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x150]
mov ecx, dword [eax + 0x10]
mov dword [esp], edi
mov edx, dword [esp + 0x130]
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
movzx ebx, byte [esp + 0x2f]
test bl, bl
je 0x5c25ff
mov ebp, dword [esp + 0x38]
mov esi, ebp
sub ebp, ecx
mov edi, ecx
sar ecx, 0x1f
sub esi, edi
mov esi, dword [esp + 0x3c]
sbb esi, ecx
test ebp, ebp
mov ecx, ebx
sete bl
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x5c25f6
test eax, eax
jne 0x5c25f6
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
cmp eax, edx
ja 0x5c2da4
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebp
mov ecx, dword [esp + 0x150]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [esp + 0x154]
mov dword [esp], ebp
mov esi, dword [esp + 0x54]
sub esi, eax
mov dword [esp + 0x64], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
mov ebp, dword [esp + 0x130]
add esi, ebp
mov dword [esp + 4], esi
sub edx, eax
mov dword [esp + 8], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], edx
call ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov edx, ecx
sub ecx, eax
mov ebx, eax
sar eax, 0x1f
sub edx, ebx
mov esi, dword [esp + 0x60]
sbb esi, eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, ecx
movzx ecx, byte [esp + 0x2f]
test esi, esi
jge 0x5c2609
jmp 0x5c26bc
mov ecx, ebx
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x128], edx
mov dword [esp + 0x4c], eax
mov ebx, dword [0x7ef7ec]
cmp dword [0x7ef7e8], eax
jne 0x5c2673
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00403610
movzx eax, byte [esp + 0xc]
test al, al
je 0x5c265b
movzx ecx, byte [esp + 0x2f]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
xor eax, eax
xor edx, edx
mov ebx, 1
jmp 0x5c2680
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x2f]
mov edx, dword [esp + 0x128]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
test eax, eax
jne 0x5c2726
movzx ebx, byte [esp + 0x2d]
mov byte [esp + 0x2d], bl
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x54]
cmp edi, ebx
ja 0x5c2d9b
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x70]
jmp 0x5c2ac7
test eax, eax
je 0x5c249f
jmp 0x5c2d72
mov eax, dword [0x7efa98]
mov dword [esp + 0x4c], eax
mov ecx, dword [0x7efa9c]
mov dword [esp + 0x128], ecx
mov edx, dword [esp + 0x14c]
mov edx, dword [edx + 0xc]
mov ebx, dword [esp + 0x12c]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.005c88d0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.00432460
add esp, 0x148
ret
mov ecx, dword [esp + 0x14c]
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esp + 0x12c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.005c88d0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.00432460
add esp, 0x148
ret
movzx eax, byte [esp + 0x2c]
test al, al
jne 0x5c2a4f
test ebp, ebp
jne 0x5c2795
xor eax, eax
xor ecx, ecx
xor ebx, ebx
jmp 0x5c282f
mov eax, dword [esp + 0x12c]
test byte [eax], al
lea ecx, [eax + 0x30]
mov dword [esp + 0x144], ecx
mov dword [esp], ecx
call fcn.0046f740
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov ecx, dword [esp + 0x138]
mov dword [esp + 4], ecx
call fcn.005c42b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov dword [esp + 0x11c], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x144]
mov dword [esp], eax
call fcn.0046fae0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x164]
test eax, eax
jne 0x5c29f3
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x12c]
test byte [edx], al
lea ebp, [edx + 0x30]
mov dword [esp + 0x144], ebp
mov dword [esp], ebp
call fcn.0046f740
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0xa0]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x144]
mov dword [esp], edx
call fcn.0046fae0
mov eax, dword [esp + 0x12c]
lea ecx, [eax + 0xd8]
mov dword [esp + 0x144], ecx
mov dword [esp], ecx
call fcn.0046f740
mov dword [esp + 0x80], 4
lea eax, [0x656668]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x80]
mov dword [esp], eax
call fcn.00431930
test eax, eax
jne 0x5c29e6
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x5c2933
mov ecx, dword [esp + 0x14c]
mov ecx, dword [ecx + 0xc]
mov edx, dword [esp + 0x12c]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov byte [esp + 8], 1
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
call fcn.005c2100
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
jmp 0x5c299e
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x74]
mov edx, dword [esp + 0x14c]
mov edx, dword [edx + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.005b7fc0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x12c]
mov eax, dword [eax + 0x6c]
mov dword [esp], eax
call fcn.0058bee0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
je 0x5c29d9
mov eax, dword [esp + 0x160]
test eax, eax
jne 0x5c29d9
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], edx
nop
call fcn.00432460
add esp, 0x148
ret
nop
call fcn.00432460
add esp, 0x148
ret
mov edx, dword [esp + 0x14c]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 0x12c]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.005c88d0
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 1
call fcn.005c4850
nop
call fcn.00432460
add esp, 0x148
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
nop
call fcn.00432460
add esp, 0x148
ret
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x128], eax
mov edx, dword [esp + 0x144]
mov dword [esp], edx
call fcn.0046fae0
mov eax, dword [esp + 0x14c]
movzx ecx, byte [esp + 0x2c]
mov edx, dword [esp + 0x128]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
movzx ecx, byte [esp + 0x2f]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
test edi, edi
jle 0x5c26af
test eax, eax
jne 0x5c26af
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.005c2e50
mov eax, dword [esp + 8]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [0x7efabc]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x128], ebp
mov esi, dword [esp + 0xc]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x140], edi
cmp dword [0x7efab8], ecx
jne 0x5c2b7d
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x124], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00403610
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5c2d49
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x124]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x140]
mov ebx, dword [0x7efac4]
cmp dword [0x7efac0], ecx
jne 0x5c2bbe
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00403610
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5c2ceb
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x128]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x140]
test esi, esi
jne 0x5c2cd0
mov eax, dword [esp + 0x12c]
test byte [eax], al
lea ecx, [eax + 0xd8]
mov dword [esp + 0x144], ecx
mov dword [esp], ecx
call fcn.0046f740
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
cmp edx, ecx
jb 0x5c2d96
mov ebx, dword [esp + 0x40]
cmp ebx, ecx
jb 0x5c2d8d
sub ebx, ecx
mov dword [esp + 0x40], ebx
mov eax, edx
sub edx, ecx
mov dword [esp + 0x44], edx
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, ecx
mov esi, dword [esp + 0x120]
add edx, esi
mov dword [esp + 0x120], edx
movzx edi, byte [esp + 0x2d]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5c2c46
test ebx, ebx
jne 0x5c2c46
movzx edi, byte [esp + 0x2e]
xor edi, 1
xchg edi, eax
mov byte [esp + 0x2c], al
xchg edi, eax
jmp 0x5c2c54
mov dword [esp + 0x68], eax
xor eax, eax
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x12c]
mov ebx, dword [edx + 0x74]
mov ebp, dword [esp + 0x14c]
mov edi, dword [ebp + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], edi
movzx ebx, byte [esp + 0x2c]
mov byte [esp + 8], bl
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.005b7fc0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x5c2a72
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x6c]
mov dword [esp], ecx
call fcn.0058bee0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x5c2a72
mov dword [esp + 0x160], edi
mov dword [esp + 0x164], ebp
nop
call fcn.00432460
add esp, 0x148
ret
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.005c88d0
mov eax, dword [esp + 0x140]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.00432460
add esp, 0x148
ret
mov eax, dword [esp + 0x140]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x164], eax
nop
call fcn.00432460
add esp, 0x148
ret
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
nop
call fcn.00432460
add esp, 0x148
ret
mov eax, ecx
mov ecx, ebx
call fcn.0045e6b0
call fcn.0045e690
mov ecx, edi
mov edx, ebx
call fcn.0045e690
mov ecx, edx
call fcn.0045e6b0
mov ecx, ebp
mov edx, esi
call fcn.0045e690
nop
call fcn.0045d190
jmp fcn.005c22c0