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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x30]
cmp eax, dword [ecx + 8]
jbe 0x599d6a
sub esp, 0xb0
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 0x64]
mov edx, dword [eax + 0x68]
movzx ebx, byte [0x7a0668]
test bl, bl
jne 0x599cef
mov ecx, dword [esp + 0xc4]
cmp dword [esp + 0xc8], 5
jne 0x599ce8
cmp dword [ecx], 0x70747468
jne 0x599ce8
cmp byte [ecx + 4], 0x73
jne 0x599ce8
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
lea eax, [0x60f71a]
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.0056f3a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xc
je 0x599cc8
xor eax, eax
mov byte [esp + 0x27], al
test al, al
jne 0x599c85
mov eax, dword [esp + 0xdc]
lea ecx, [0x605100]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x60f70e]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 6
call fcn.0040f4e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [eax + 8]
cmp ecx, 1
jg 0x599b79
mov eax, dword [esp + 0xdc]
lea ecx, [0x605100]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x60faf6]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 7
call fcn.0040f4e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
xor edx, edx
xor ebx, ebx
jmp 0x599439
dec ebp
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add esi, ebp
mov ebp, edi
test ebp, ebp
jle 0x5992ac
movzx edi, byte [esi]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
je 0x599276
xchg edi, eax
cmp al, 9
xchg edi, eax
je 0x599276
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x599276
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x599276
mov dword [esp + 0x44], ebx
mov dword [esp + 0x94], edx
jmp 0x5992ba
dec ebp
test ebp, ebp
jle 0x5992df
movzx edi, byte [ebp + esi - 1]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
je 0x5992b9
xchg edi, eax
cmp al, 9
xchg edi, eax
je 0x5992b9
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x5992b9
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x5992b9
nop
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00570840
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
cmp ecx, 7
jne 0x5993bb
cmp dword [eax], 0x69617254
jne 0x59934f
cmp word [eax + 4], 0x656c
jne 0x59934f
cmp byte [eax + 6], 0x72
jne 0x59934f
mov eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x44]
lea ebx, [ebp + 1]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x98]
mov edx, eax
mov eax, ebp
cmp ecx, ebx
jle 0x599425
lea ebp, [eax + ebx*8]
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
nop
jmp 0x599289
mov edx, dword [esp + 0x94]
test edx, edx
je 0x5993a9
mov dword [esp + 0x64], edx
lea ebx, [0x605100]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0040fbb0
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov eax, dword [0x7a0970]
test eax, eax
jne 0x5993a0
mov dword [edi], 0
mov eax, dword [esp + 0x64]
jmp 0x599322
xor eax, eax
call fcn.0045de10
jmp 0x59939a
call fcn.0040c3b0
mov edx, dword [esp]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
jmp 0x59935a
cmp ecx, 0xe
je 0x5993f5
cmp ecx, 0x11
jne 0x59934f
mov dword [esp], eax
lea edx, [0x612a64]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004028b0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x59931b
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
jmp 0x59934f
mov dword [esp], eax
lea edx, [0x61190b]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004028b0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x59931b
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
jmp 0x59934f
mov ebp, dword [esp + 0x48]
inc ebp
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x9c]
mov ebx, edx
mov edx, ebp
mov dword [esp + 0x64], ebx
cmp edx, eax
jge 0x599499
mov dword [esp + 0x48], edx
lea eax, [ecx + edx*8]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ebx
mov dword [esp + 4], eax
lea eax, [0x60ef5a]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004c2f50
mov eax, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x64]
xor ebx, ebx
jmp 0x599338
mov eax, dword [esp + 0xdc]
lea ecx, [0x605100]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x60faf6]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 7
call fcn.0040ff50
mov eax, dword [esp + 0xbc]
cmp dword [esp + 0xc0], 7
jne 0x5994ef
cmp dword [eax], 0x4e4e4f43
jne 0x5994ef
cmp word [eax + 4], 0x4345
jne 0x5994ef
cmp byte [eax + 6], 0x54
je 0x599b26
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00522b70
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x599aa8
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x6c], ecx
lea ebx, [0x5fbb00]
mov dword [esp], ebx
call fcn.0040b8d0
mov eax, dword [esp + 4]
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x599a82
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xb8]
mov dword [eax], edx
mov dword [esp + 0x7c], eax
movzx ecx, byte [esp + 0x27]
mov byte [eax + 0x10], cl
lea ecx, [0x606400]
mov dword [esp], ecx
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov dword [edi + 4], ecx
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x599a64
mov dword [edi], eax
mov ecx, dword [esp + 0x58]
mov dword [edi + 8], ecx
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx + 0x54]
mov edx, dword [ecx + 0x58]
mov dword [edi + 0x60], edx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x599a51
mov dword [edi + 0x5c], eax
mov edx, dword [0x7a0970]
mov eax, dword [esp + 0xdc]
test edx, edx
jne 0x599a3e
mov dword [edi + 0x1c], eax
mov edx, dword [esp + 0x34]
mov dword [edi + 0x68], edx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x599a25
mov edx, dword [esp + 0x6c]
mov dword [edi + 0x64], edx
mov dword [edi + 0x10], 8
lea edx, [0x60fd8a]
mov dword [edi + 0xc], edx
mov dword [edi + 0x14], 2
mov dword [edi + 0x18], 0
mov edx, dword [0x7a0970]
test edx, edx
jne 0x599a0c
mov edx, dword [esp + 0x68]
mov dword [edi + 0x6c], edx
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov dword [edi + 0x48], edx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x5999f9
mov dword [edi + 0x44], eax
lea edx, [0x65fe38]
mov dword [edi + 0x20], edx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x5999d0
mov eax, dword [esp + 0x7c]
mov dword [edi + 0x24], eax
mov edx, dword [esp + 0x64]
mov dword [edi + 0x58], edx
mov edx, dword [esp + 0xb8]
mov ebx, dword [edx + 0x10]
mov ebp, dword [edx + 0x14]
test ebx, ebx
je 0x599d39
mov dword [esp + 0x74], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x70], edi
lea eax, [0x606400]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov dword [esp + 0x90], edi
mov eax, dword [0x7a0970]
test eax, eax
jne 0x5999b1
mov esi, dword [esp + 0x70]
call fcn.0045e480
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x90]
mov dword [edx + 0x78], ecx
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x5999a0
mov ecx, dword [esp + 0x74]
mov dword [edx + 0x7c], ecx
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x5998cc
xor eax, eax
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x5998bf
mov dword [edx + 8], eax
lea eax, [0x77df50]
mov dword [esp], eax
call fcn.00470ed0
mov edi, dword [esp + 8]
mov eax, dword [esp + 4]
lea ecx, [0x5fb240]
cmp ecx, eax
jne 0x599d23
mov dword [esp + 0x8c], edi
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x78], ecx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x59987b
xor eax, eax
call fcn.0045e09d
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x8c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 0x10], ecx
nop
mov dword [ecx], 0
mov edx, dword [0x7a0970]
test edx, edx
jne 0x599868
mov dword [ecx + 4], 0
mov dword [ecx + 0x14], 0
lea edx, [0x65ee4c]
mov dword [ecx + 0x18], edx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x59982c
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp + 0xb8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [eax + 8], edx
lea eax, [0x5e4c40]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [0x7a0970]
test eax, eax
jne 0x59981e
mov eax, dword [esp + 0x8c]
mov dword [edi], eax
mov dword [esp + 0xe0], edi
mov eax, dword [esp + 0x90]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
add esp, 0xb0
ret
mov eax, dword [esp + 0x8c]
call fcn.0045de10
jmp 0x5997ec
lea edi, [ecx + 0x1c]
call fcn.0045de10
mov edi, eax
mov eax, dword [esp + 0xb8]
call fcn.0045de10
lea ecx, [edi + 4]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x90]
call fcn.0045de10
lea edi, [edx + 8]
mov eax, dword [esp + 0x7c]
call fcn.0045de10
jmp 0x5997c7
lea edi, [ecx + 4]
mov edx, eax
xor eax, eax
call fcn.0045de10
mov eax, edx
jmp 0x59978c
lea eax, [0x604c80]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004108a0
mov eax, dword [esp + 0x8c]
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.0045de10
lea edi, [ecx + 0x10]
mov eax, dword [esp + 0x78]
call fcn.0045de10
mov ecx, eax
mov eax, dword [esp + 0x8c]
jmp 0x599770
lea edi, [edx + 8]
call fcn.0045de10
jmp 0x599711
mov dword [esp + 0x60], ecx
lea eax, [0x5ffee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov dword [esp + 0x5c], edi
mov eax, dword [0x7a0970]
test eax, eax
jne 0x599981
mov esi, dword [esp + 0x60]
call fcn.0045e50c
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x599918
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x5c]
jmp 0x599700
lea eax, [0x5f1540]
mov dword [esp], eax
call fcn.0040b8d0
mov eax, dword [0x7a0970]
mov edi, dword [esp + 4]
test eax, eax
jne 0x59996d
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 0x10], edi
mov edx, dword [esp + 0x60]
mov esi, dword [edx + 0x10]
test byte [esi], al
mov edx, dword [0x7a0970]
test edx, edx
jne 0x599955
call fcn.0045e58e
jmp 0x599908
lea eax, [0x5f1540]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call fcn.004106a0
jmp 0x599908
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + 0x10]
mov eax, edi
mov edi, edx
call fcn.0045de10
mov edi, eax
jmp 0x59993b
lea eax, [0x5ffee0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.004106a0
jmp 0x5998fd
lea edi, [edx + 0x7c]
mov eax, dword [esp + 0x74]
call fcn.0045de10
jmp 0x5996ef
lea eax, [0x606400]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.004106a0
jmp 0x5996cc
lea edx, [edi + 0x24]
mov eax, edi
mov edi, edx
mov ebx, eax
mov eax, dword [esp + 0x7c]
call fcn.0045de10
lea edi, [ebx + 0x58]
mov edx, eax
mov eax, dword [esp + 0x64]
call fcn.0045de10
mov eax, edx
mov edi, ebx
jmp 0x59967b
lea edx, [edi + 0x44]
mov ebx, edi
mov edi, edx
call fcn.0045de10
mov edi, ebx
jmp 0x599656
lea edx, [edi + 0x6c]
mov eax, edi
mov edi, edx
mov ebx, eax
mov eax, dword [esp + 0x68]
call fcn.0045de10
mov edi, ebx
jmp 0x599634
lea edx, [edi + 0x64]
mov eax, edi
mov edi, edx
mov ebx, eax
mov eax, dword [esp + 0x6c]
call fcn.0045de10
mov edi, ebx
jmp 0x599601
lea edx, [edi + 0x1c]
mov ebx, edi
mov edi, edx
call fcn.0045de10
mov edi, ebx
jmp 0x5995e5
lea edx, [edi + 0x5c]
mov ebx, edi
mov edi, edx
call fcn.0045de10
mov edi, ebx
jmp 0x5995cd
call fcn.0045de10
lea ecx, [edi + 8]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x58]
call fcn.0045de10
mov edi, edx
jmp 0x5995ac
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.0045de10
mov edi, ecx
mov eax, dword [esp + 0xb8]
call fcn.0045de10
mov eax, edi
jmp 0x599566
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
lea eax, [0x65ee38]
mov dword [esp], eax
lea eax, [esp + 0xa0]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], ecx
add esp, 0xb0
ret
lea eax, [0x5ffee0]
mov dword [esp], eax
call fcn.0040b8d0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov dword [eax + 0x18], edx
mov edx, dword [0x7a0970]
test edx, edx
jne 0x599b69
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
jmp 0x599527
lea edi, [eax + 0x14]
mov edx, eax
mov eax, ecx
call fcn.0045de10
mov eax, edx
jmp 0x599b56
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [0x60efa4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004c3180
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x88], eax
nop
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], edx
lea ebx, [0x60f70e]
mov dword [esp], ebx
mov dword [esp + 4], 6
call fcn.00570840
mov eax, dword [esp + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x4c], ecx
lea edx, [0x5d6780]
mov dword [esp], edx
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov dword [esp + 0x80], edi
mov eax, dword [esp + 0x30]
mov dword [edi + 4], eax
mov eax, dword [0x7a0970]
test eax, eax
jne 0x599c7a
mov eax, dword [esp + 0x54]
mov dword [edi], eax
lea eax, [0x5fc640]
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call fcn.0040fbb0
mov edi, dword [esp + 0x10]
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov eax, dword [0x7a0970]
test eax, eax
jne 0x599c69
mov eax, dword [esp + 0x80]
mov dword [edi], eax
jmp 0x59922e
mov eax, dword [esp + 0x80]
call fcn.0045de10
jmp 0x59922e
mov eax, dword [esp + 0x54]
call fcn.0045de10
jmp 0x599c13
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x88], eax
nop
lea ecx, [0x60f71a]
mov dword [esp], ecx
mov dword [esp + 4], 6
call fcn.00570840
lea eax, [0x5fc640]
mov dword [esp], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
call fcn.0040ff50
jmp 0x5991ee
mov dword [esp], eax
lea eax, [0x610ec0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004028b0
movzx eax, byte [esp + 0xc]
jmp 0x5991e2
xor ecx, ecx
jmp 0x5991aa
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
call fcn.0058f530
mov eax, dword [esp + 0x3c]
cmp dword [esp + 4], eax
setne al
mov ecx, dword [esp + 0x38]
cmp dword [esp], ecx
setne cl
or eax, ecx
test al, al
jne 0x599d51
mov eax, dword [esp + 0xb4]
jmp 0x59917c
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x5daa80]
mov dword [esp + 8], eax
call fcn.00408de0
lea eax, [0x5db180]
mov dword [esp], eax
lea eax, [0x65beb8]
mov dword [esp + 4], eax
call fcn.00431a30
lea eax, [0x5db180]
mov dword [esp], eax
lea eax, [0x65be50]
mov dword [esp + 4], eax
call fcn.00431a30
nop
call fcn.0045c8b0
jmp fcn.00599140