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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x59c4ca
sub esp, 0xb8
mov eax, dword [esp + 0xc0]
movzx ecx, byte [eax]
mov byte [esp + 0x53], cl
mov edx, dword [esp + 0xc4]
lea ebx, [edx - 5]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0xc8]
lea esi, [ebp - 5]
mov dword [esp + 0x58], esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 5
add esi, eax
mov dword [esp + 0x9c], esi
mov edx, dword [esp + 0xbc]
cmp word [edx + 0x10], 0x304
jne 0x59baaf
cmp cl, 0x14
jne 0x59baaf
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], edi
mov byte [esp + 0xd8], 0x14
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xb8
ret
mov dword [esp], edx
call fcn.0059b800
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
test edx, edx
jne 0x59bafc
mov eax, ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x54]
xor ebx, ebx
mov ebp, 0xffffffff
movzx esi, byte [esp + 0x53]
xchg esi, eax
mov byte [esp + 0x51], al
xchg esi, eax
mov esi, ecx
mov edi, edx
jmp 0x59c15c
je 0x59c4b1
mov dword [esp + 0x74], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0xb4], ebx
lea eax, [0x6458a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59bb8e
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
call eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x9c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x54]
jmp 0x59bfc0
lea eax, [0x655f60]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x59bdcd
lea eax, [0x64d180]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59c4b1
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x78], eax
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 4]
mov dword [esp + 0x80], edx
mov ebx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x18]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x59c4ac
lea edx, [eax + 1]
mov ebx, eax
mov eax, edx
cmp ecx, 0xffffffff
je 0x59bc4d
cdq
idiv ecx
jmp 0x59bc4f
xor edx, edx
mov eax, ecx
sub eax, edx
cmp ecx, 0xffffffff
je 0x59bc5d
cdq
idiv ecx
jmp 0x59bc5f
xor edx, edx
add edx, ebx
mov ebx, dword [esp + 0x74]
lea edx, [edx + ebx + 1]
mov eax, dword [esp + 0x54]
mov ebp, edx
cdq
idiv ecx
test edx, edx
jne 0x59bd7b
mov eax, dword [esp + 0x54]
cmp ebp, eax
jg 0x59bd7b
test ebx, ebx
jg 0x59bc9b
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x9c]
jmp 0x59bcf7
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov esi, dword [esp + 0x58]
mov dword [esp + 0xc], esi
call ecx
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x74]
sub eax, ecx
lea esi, [eax - 5]
mov eax, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ecx
mov ebx, dword [esp + 0xc4]
sub ebx, ecx
add ebx, 0xfffffffb
mov ecx, dword [esp + 0x9c]
add esi, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xa0], esi
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 0x14]
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
call ecx
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edx
call fcn.0059b930
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, dword [esp + 0xa0]
mov ebx, eax
mov ebp, ecx
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
jmp 0x59bfc0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x54]
cmp edx, ebx
jg 0x59c10a
test edx, edx
jne 0x59bdf7
mov ebx, dword [esp + 0xbc]
lea esi, [ebx + 0x24]
mov ebp, 8
mov edi, 8
jmp 0x59be0b
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x58]
mov edi, edx
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xc4]
sub ebp, edx
mov dword [esp + 0x8c], ebp
mov ebp, dword [esp + 0xc8]
sub ebp, edx
add ebp, 0xfffffffb
mov dword [esp + 0x60], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
mov ebp, dword [esp + 0x9c]
add edx, ebp
mov dword [esp + 0xa0], edx
cmp word [ebx + 0x10], 0x304
jne 0x59be7f
mov ebp, dword [esp + 0xc8]
mov ebp, 5
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0xc8]
jmp 0x59bf2a
mov dword [esp + 0x68], edi
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x7c], eax
mov edx, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x28]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], ebp
mov edx, dword [esp + 0xc0]
movzx ebp, word [edx]
movzx esi, byte [edx + 2]
mov word [ebx + 0x34], bp
xchg esi, eax
mov byte [ebx + 0x36], al
xchg esi, eax
mov ebp, dword [eax + 0x18]
mov dword [esp], ecx
call ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x8c]
sub ecx, eax
mov eax, dword [esp + 0xbc]
lea ebx, [eax + 0x2c]
add ecx, 0xfffffffb
mov ebp, ecx
sar ecx, 8
mov esi, 0xd
mov byte [esi + ebx - 2], cl
xchg ebp, eax
mov byte [esi + ebx - 1], al
xchg ebp, eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x68]
mov ebp, 0xd
mov ecx, 0xd
mov dword [esp + 0x84], ecx
mov dword [esp + 0xb0], ebx
mov ecx, dword [esp + 0xac]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffb
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebp
call eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
test eax, eax
jne 0x59c0b8
mov eax, dword [esp + 0x60]
mov ebp, 0xffffffff
mov esi, edx
mov edi, ecx
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xa0]
xor ebx, ebx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xbc]
cmp word [eax + 0x10], 0x304
jne 0x59c09c
movzx eax, byte [esp + 0x53]
cmp al, 0x17
jne 0x59c04a
cmp esi, 0x4001
jg 0x59bff8
mov dword [esp + 0x88], ecx
lea eax, [esi - 1]
jmp 0x59c428
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0x16
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0xa
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0x94], eax
movzx eax, byte [esp + 0x53]
mov byte [esp + 0x51], al
mov eax, dword [esp + 0x94]
jmp 0x59c15c
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov dword [esp + 0xa0], edx
xchg ebp, eax
mov byte [esp + 0x52], al
xchg ebp, eax
mov ebp, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
test ebp, ebp
jne 0x59c17c
mov edx, dword [esp + 0x58]
jmp 0x59c357
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ebx
mov eax, dword [ebp + 0x18]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x59c2b2
mov dword [esp + 0x70], eax
mov edx, ecx
sub ecx, eax
mov ebx, dword [esp + 0x64]
sub ecx, ebx
mov ebx, ecx
shr ecx, 0x1f
dec ecx
and ecx, ebx
mov dword [esp + 0x8c], ecx
mov ebx, ecx
sar ecx, 8
mov ebp, dword [esp + 0xc0]
mov byte [ebp + 3], cl
mov byte [ebp + 4], bl
mov ecx, dword [esp + 0xbc]
mov esi, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x20]
mov dword [esp], esi
mov dword [esp + 4], edi
lea esi, [ecx + 0x2c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xd
lea esi, [ecx + 0x24]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 5
mov ebp, dword [esp + 0xc8]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x60]
mov dword [esp + 0x34], esi
lea edi, [ebx + eax]
sub esi, edi
mov dword [esp + 0x88], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
add esi, ebp
mov dword [esp + 0x38], esi
sub edx, edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x40], edx
call fcn.0059a3f0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov edx, eax
sub eax, ecx
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0xa0]
add eax, ebx
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x70]
cmp ebp, edi
je 0x59c2a4
xor eax, eax
jmp 0x59c33b
xor edi, edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x50], al
xchg edi, eax
xor edi, edi
jmp 0x59c32b
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
lea ecx, [edi + 1]
movzx edx, byte [edi + esi]
movzx edi, byte [edi + eax]
xor edx, edi
movzx edi, byte [esp + 0x50]
or edi, edx
mov edx, dword [esp + 0x60]
xchg edi, eax
mov byte [esp + 0x50], al
xchg edi, eax
mov edi, ecx
mov ecx, dword [esp + 0x8c]
cmp edi, ebp
jl 0x59c304
movzx eax, byte [esp + 0x50]
movzx eax, al
dec eax
shr eax, 0x1f
movzx ebp, byte [esp + 0x52]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
and ebp, eax
cmp ebp, 1
jne 0x59c35e
mov eax, dword [esp + 0xbc]
mov esi, ecx
mov edi, ebx
mov ecx, 7
jmp 0x59c3b1
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0x14
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
dec ecx
test ecx, ecx
jl 0x59c408
movzx ebx, byte [eax + ecx + 0x24]
lea ebp, [ebx + 1]
xchg ebp, ebx
mov byte [eax + ecx + 0x24], bl
xchg ebp, ebx
cmp bl, 0xff
je 0x59c3b0
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], edx
movzx eax, byte [esp + 0x51]
mov byte [esp + 0xd8], al
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xb8
ret
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d28c8]
mov dword [esp + 4], eax
call fcn.00433470
dec eax
mov ecx, dword [esp + 0x88]
test eax, eax
jl 0x59c497
movzx ecx, byte [edi + eax]
test cl, cl
jne 0x59c48a
test eax, eax
jne 0x59c420
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
lea eax, [0x6d3364]
mov dword [esp + 0xdc], eax
mov eax, 0xa
lea ecx, [0x819360]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe0], eax
add esp, 0xb8
ret
mov esi, eax
mov eax, ecx
mov ecx, dword [esp + 0x88]
jmp 0x59c49c
mov eax, 0x17
mov byte [esp + 0x51], al
mov eax, dword [esp + 0xbc]
jmp 0x59c15c
call fcn.00432350
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d28d0]
mov dword [esp + 4], eax
call fcn.00433470
nop
call fcn.0045dbb0
jmp fcn.0059ba00