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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x13c]
cmp eax, dword [ecx + 8]
jbe 0x5f5f05
sub esp, 0x1bc
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov edx, dword [0x8158d4]
mov eax, dword [edx]
call eax
lea eax, [0x63c560]
mov dword [esp], eax
call fcn.0040b4f0
mov eax, dword [esp + 4]
lea ecx, [0x6000c0]
mov dword [eax], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x5f5e54
mov ecx, dword [esp + 0x1c0]
mov dword [eax + 4], ecx
mov edx, dword [ecx + 8]
mov ebx, dword [esp + 0x1c4]
mov ebp, dword [ebx + 0xc]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.005ef060
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f5e0c
mov eax, dword [esp + 0x1c0]
lea ecx, [eax + 0x7c]
mov dword [esp + 0xe8], ecx
mov dword [esp], ecx
call fcn.0046e320
mov eax, dword [esp + 0x1c0]
inc dword [eax + 0x84]
mov ecx, dword [eax + 0x9c]
mov dword [esp + 0xbc], ecx
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call fcn.0046e6e0
mov edx, dword [esp + 0xbc]
test edx, edx
je 0x5f5263
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x5f5dcf
mov ecx, dword [eax + 4]
mov dword [esp], ecx
mov ecx, dword [edx]
call ecx
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 8]
movzx ecx, byte [ecx + 0x69]
test cl, cl
je 0x5f5d58
xor ecx, ecx
test cl, cl
je 0x5f5d4f
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
mov ebx, dword [edx]
cmp dword [edx + 4], 4
je 0x5f5d3c
nop
mov edx, dword [ecx + 4]
test edx, edx
je 0x5f5d04
nop
mov eax, dword [ecx + 4]
mov dword [esp + 0xe4], eax
nop
lea edx, [0x672286]
mov dword [esp], edx
mov dword [esp + 4], 0xf
call fcn.005aa8c0
mov eax, dword [esp + 8]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
lea edx, [0x62e640]
mov dword [esp], edx
call fcn.0040b4f0
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov dword [eax + 4], 4
lea ecx, [0x66ecc8]
mov dword [eax], ecx
lea ecx, [0x659f80]
mov dword [esp], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], edx
call fcn.0040ff70
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov eax, dword [0x8326a0]
test eax, eax
jne 0x5f5cf3
mov eax, dword [esp + 0xdc]
mov dword [edi], eax
mov eax, 1
mov byte [esp + 0x23], al
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
mov ebx, dword [edx + 0x14]
cmp ebx, 1
jle 0x5f5cde
mov ebx, dword [edx + 0x20]
test ebx, ebx
jne 0x5f5c91
xor edx, edx
mov dword [esp + 0xcc], edx
mov ebx, dword [esp + 0x1c0]
mov ebp, dword [ebx + 8]
movzx ebp, byte [ebp + 0x68]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5f5c60
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5f546a
nop
mov ebp, dword [ecx + 4]
test ebp, ebp
je 0x5f5c28
nop
mov eax, dword [ecx + 4]
mov dword [esp + 0xe4], eax
nop
lea edx, [0x6700e7]
mov dword [esp], edx
mov dword [esp + 4], 0xa
call fcn.005aa8c0
mov eax, dword [esp + 8]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
lea edx, [0x62e640]
mov dword [esp], edx
call fcn.0040b4f0
mov eax, dword [esp + 4]
mov dword [esp + 0xd8], eax
mov dword [eax + 4], 5
lea ecx, [0x66eeec]
mov dword [eax], ecx
lea ecx, [0x659f80]
mov dword [esp], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
call fcn.0040ff70
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov eax, dword [0x8326a0]
test eax, eax
jne 0x5f5c17
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
lea eax, [0x62c340]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00404780
mov eax, dword [esp + 8]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x4c], 4
lea ecx, [0x68974c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x4c]
mov dword [esp], ecx
call fcn.0042f5f0
test eax, eax
jne 0x5f5c0a
mov dword [esp + 0x78], 0xc
lea eax, [0x689618]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x1cc]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 0xa8], ecx
lea edx, [esp + 0x78]
mov dword [esp], edx
call fcn.0042f5f0
test eax, eax
jne 0x5f5bfd
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 0x40]
mov dword [esp + 0x28], edx
lea ebx, [0x62c080]
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.00404780
mov eax, dword [esp + 8]
mov dword [esp + 0xac], eax
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov ecx, dword [esp + 0x1c4]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], eax
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x110], edx
mov ebx, dword [esp + 0x1c0]
mov ebp, dword [ebx + 0x48]
mov dword [esp], ebp
lea ebp, [esp + 0x108]
mov dword [esp + 4], ebp
call fcn.00404960
lea eax, [0x62c2c0]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00404780
mov eax, dword [esp + 8]
mov dword [esp + 0xb8], eax
lea edi, [esp + 0x114]
xor eax, eax
call fcn.0045af8a
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx]
mov dword [esp + 0x114], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x11c], edx
movzx ebx, byte [esp + 0x23]
mov byte [esp + 0x120], bl
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x124], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x1c0]
mov ebp, dword [ebx + 0x44]
mov dword [esp], ebp
lea ebp, [esp + 0x114]
mov dword [esp + 4], ebp
call fcn.00404960
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x70]
mov dword [esp + 0xd0], edx
mov ebx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
test ebx, ebx
je 0x5f5beb
mov eax, dword [ebx + 0x14]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
xor ecx, ecx
mov edx, dword [esp + 0xd0]
jmp 0x5f5675
mov eax, ebx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd0], edx
mov dword [esp + 0xb4], ecx
mov ebx, dword [0x8158e8]
mov ebp, dword [ebx]
mov edx, ebx
call ebp
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 0x4c]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
lea edi, [esp + 0x12c]
xor eax, eax
call fcn.0045af6c
lea edi, [esp + 0x34]
call fcn.0045af8a
mov word [esp + 0x134], 1
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x12c], ecx
lea ebx, [esp + 0xf4]
mov dword [esp + 0x130], ebx
mov word [esp + 0x14c], 1
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x144], ebx
mov word [esp + 0x164], 1
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x15c], ebx
mov word [esp + 0x17c], 1
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x174], ebp
lea esi, [esp + 0xfc]
mov dword [esp + 0x178], esi
mov word [esp + 0x194], 1
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x18c], esi
mov word [esp + 0x1ac], 1
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x1a4], edi
lea ebp, [esp + 0x12c]
mov dword [esp], ebp
lea ebp, [esp + 0x34]
mov dword [esp + 4], ebp
mov dword [esp + 8], 6
call fcn.0043f740
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5f597f
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
test eax, eax
jne 0x5f5885
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + 0x80]
test ebx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov ecx, dword [ecx + 0x84]
test ecx, ecx
xchg esi, ebx
setg bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebp
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5f5835
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xc8]
jmp 0x5f5673
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0049b5e0
mov eax, dword [esp + 8]
mov dword [esp + 0xb0], eax
mov dword [esp], 8
lea ecx, [0x68990c]
mov dword [esp + 4], ecx
call fcn.0042f4c0
test eax, eax
jne 0x5f5878
mov ebx, dword [esp + 0xb0]
mov ecx, dword [ebx]
mov eax, dword [esp + 0x1c0]
jmp 0x5f5822
nop
call fcn.0042fd30
add esp, 0x1bc
ret
mov dword [esp + 0x2c], eax
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
je 0x5f5978
mov edx, dword [eax + 4]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ecx
lea eax, [0x672925]
mov dword [esp], eax
mov dword [esp + 4], 0xf
lea eax, [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a95f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005f5f60
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
call fcn.005f3280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
nop
call fcn.0042fd30
add esp, 0x1bc
ret
mov edx, eax
jmp 0x5f58a8
cmp eax, 1
je 0x5f5b7f
cmp eax, 2
je 0x5f5b2a
cmp eax, 3
je 0x5f5a69
cmp eax, 4
je 0x5f5a19
cmp eax, 5
jne 0x5f5e73
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
test edx, edx
je 0x5f5a0a
mov eax, dword [edx + 0x18]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x1c4]
mov ebx, dword [edx + 0xc]
mov ebp, dword [esp + 4]
mov esi, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call fcn.005ed5e0
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0xb4]
xor edx, edx
xor ebx, ebx
jmp 0x5f5673
nop
mov ecx, dword [0x81a7fc]
lea edx, [0x6cab60]
jmp 0x5f59bb
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x1c4]
mov ebx, dword [edx + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [0x81bd00]
mov ebx, dword [0x81bd04]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.005ed5e0
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0xb4]
xor edx, edx
mov ebx, dword [esp + 0xc8]
jmp 0x5f5673
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
test eax, eax
setne bl
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
xor ebx, 1
xor ebp, 1
xchg ebp, eax
cmp bl, al
xchg ebp, eax
je 0x5f5e73
test ecx, ecx
je 0x5f5b00
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.005f3280
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
nop
call fcn.0042fd30
add esp, 0x1bc
ret
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
nop
call fcn.0042fd30
add esp, 0x1bc
ret
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov eax, dword [0x815d38]
mov ecx, dword [0x815d3c]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005f5f60
mov eax, dword [0x815d38]
mov ecx, dword [0x815d3c]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
nop
call fcn.0042fd30
add esp, 0x1bc
ret
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 0x88]
mov edx, dword [eax + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.005f3280
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], eax
nop
call fcn.0042fd30
add esp, 0x1bc
ret
nop
mov ecx, dword [0x81a7fc]
lea ebx, [0x6cab60]
jmp 0x5f565c
nop
call fcn.0042fd30
add esp, 0x1bc
ret
nop
call fcn.0042fd30
add esp, 0x1bc
ret
mov eax, dword [esp + 0xd8]
call fcn.0045ace0
jmp 0x5f546a
call fcn.0040bf90
mov eax, dword [0x8326a0]
mov ecx, dword [esp]
test eax, eax
jne 0x5f5c4b
mov eax, dword [esp + 0x1c4]
mov dword [eax + 4], ecx
mov ecx, eax
jmp 0x5f53b8
mov edx, dword [esp + 0x1c4]
lea edi, [edx + 4]
mov eax, ecx
call fcn.0045ace0
mov eax, edx
jmp 0x5f5c44
mov eax, dword [ecx]
mov dword [esp], eax
call fcn.005e38d0
movzx ebp, byte [esp + 4]
xor ebp, 1
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x1c0]
jmp 0x5f53a2
mov dword [esp], edx
call fcn.005e3840
movzx eax, byte [esp + 4]
test al, al
jne 0x5f5cb3
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x1c4]
jmp 0x5f537f
lea eax, [0x62c340]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00404780
mov edx, dword [esp + 8]
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x1c4]
jmp 0x5f5381
jne 0x5f537f
cmp dword [edx + 0x18], 1
jge 0x5f5374
jmp 0x5f537f
mov eax, dword [esp + 0xdc]
call fcn.0045ace0
jmp 0x5f5356
call fcn.0040bf90
mov eax, dword [0x8326a0]
mov ecx, dword [esp]
test eax, eax
jne 0x5f5d27
mov eax, dword [esp + 0x1c4]
mov dword [eax + 4], ecx
mov ecx, eax
jmp 0x5f52a4
mov edx, dword [esp + 0x1c4]
lea edi, [edx + 4]
mov eax, ecx
call fcn.0045ace0
mov eax, edx
jmp 0x5f5d20
cmp dword [ebx], 0x44414548
jne 0x5f5298
xor eax, eax
jmp 0x5f535b
mov ecx, dword [esp + 0x1c4]
jmp 0x5f5d48
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], ecx
lea ecx, [0x672286]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xf
call fcn.005a9500
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5f5d94
mov eax, dword [esp + 0x1c0]
xor ecx, ecx
jmp 0x5f527b
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x1c]
mov dword [esp], ecx
lea ecx, [0x66eeab]
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call fcn.005a9500
mov eax, dword [esp + 0x10]
test eax, eax
sete cl
mov eax, dword [esp + 0x1c0]
jmp 0x5f527b
call fcn.0040bf90
mov eax, dword [0x8326a0]
mov ecx, dword [esp]
test eax, eax
jne 0x5f5df7
mov eax, dword [esp + 0x1c4]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xbc]
jmp 0x5f5259
mov ebx, dword [esp + 0x1c4]
lea edi, [ebx + 4]
mov eax, ecx
call fcn.0045ace0
mov eax, ebx
jmp 0x5f5deb
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005ed980
mov eax, dword [0x81bd00]
mov ecx, dword [0x81bd04]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
nop
call fcn.0042fd30
add esp, 0x1bc
ret
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x1c0]
call fcn.0045ace0
mov eax, ecx
mov ecx, dword [esp + 0x1c0]
jmp 0x5f51d0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea eax, [0x632580]
mov dword [esp + 0xec], eax
movzx eax, bl
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xf0], eax
lea eax, [0x6823e7]
mov dword [esp], eax
mov dword [esp + 4], 0x3f
lea eax, [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004ac250
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408c10
mov eax, dword [esp + 8]
lea ecx, [0x633ac0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00430630
nop
call fcn.00459790
jmp fcn.005f5150