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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x8c]
cmp eax, dword [ecx + 8]
jbe 0x59d15d
sub esp, 0x10c
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x59c5f2
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x118]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x11c]
cmp ebx, edx
jb 0x59c53a
mov ebp, dword [esp + 0x114]
jmp 0x59c57d
mov ecx, dword [esp + 0x114]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea ecx, [0x63efa0]
mov dword [esp + 0x10], ecx
call fcn.00447550
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, eax
mov ebx, ecx
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x118]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x108], ebp
add ecx, ebp
mov dword [esp], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0045f7b0
mov eax, dword [esp + 0x108]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
add esp, 0x10c
ret
mov dword [esp], eax
call fcn.0059b800
mov eax, dword [esp + 4]
test eax, eax
jg 0x59c622
mov esi, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov ebx, dword [esp + 0x11c]
xor eax, eax
xor ebp, ebp
xor edx, edx
jmp 0x59c7af
mov dword [esp + 0x94], eax
nop
mov ecx, dword [esp + 0x118]
lea edx, [ecx + eax]
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x11c]
cmp ebx, edx
jl 0x59c64c
mov ebp, dword [esp + 0x114]
jmp 0x59c677
lea eax, [0x63efa0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
call fcn.00447340
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov dword [esp + 0xec], ebp
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
lea esi, [0x64d180]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x118]
mov ebx, ecx
sub ecx, edx
mov dword [esp + 0x9c], ecx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0xec]
add edx, ecx
mov dword [esp + 0xf0], edx
test eax, eax
jne 0x59c743
mov eax, dword [esp + 0x94]
cmp eax, 0x10
jge 0x59c74a
cmp eax, 8
jle 0x59c6fa
mov esi, 8
jmp 0x59c6fc
mov esi, eax
mov edi, dword [esp + 0x110]
add edi, 0x24
cmp edi, edx
je 0x59c7ab
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call fcn.0045f7b0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x9c]
jmp 0x59c7ab
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x12c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x130]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
call fcn.00467bb0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x59cfea
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x9c]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xf0], edx
mov edi, dword [esp + 0x110]
mov edx, dword [edi + 0x14]
mov ebp, dword [edi + 0x18]
test edx, edx
je 0x59d144
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xa4], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x84], ebx
lea eax, [0x6458a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59ca44
mov dword [esp + 0x104], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [eax + 0x2c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xd
lea ecx, [eax + 0x24]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], 8
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 5
mov edx, dword [esp + 0x84]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x120]
mov dword [esp + 0x2c], ebx
mov ebp, dword [esp + 0x124]
mov dword [esp + 0x30], ebp
mov esi, dword [esp + 0x128]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call fcn.0059a3f0
mov eax, dword [esp + 0x44]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x124]
lea ebp, [ebx + edx]
mov esi, dword [esp + 0x80]
add ebp, esi
mov dword [esp + 0x58], ebp
mov edi, dword [esp + 0x84]
cmp edi, ebp
jl 0x59c922
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe8], eax
jmp 0x59c960
lea eax, [0x63efa0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc], eax
call fcn.00447340
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x124]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x58]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x8c], edi
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x104]
mov dword [esp], edx
sub edi, esi
mov dword [esp + 0xa0], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
mov edi, dword [esp + 0xe8]
add esi, edi
mov dword [esp + 0xf4], esi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0xc], ebp
mov edi, dword [esp + 0x120]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x128]
mov dword [esp + 0x18], edi
call ecx
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x104]
mov dword [esp], ecx
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x124]
sub ecx, edx
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0xf4]
add ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
call eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x59d0ba
lea eax, [0x655f60]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 8], ecx
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59cd61
mov edx, dword [esp + 0x98]
test edx, edx
jne 0x59ca99
mov ebx, dword [esp + 0x110]
lea edx, [ebx + 0x24]
mov ebp, 8
mov esi, 8
jmp 0x59cab0
mov ebx, dword [esp + 0x110]
mov ebp, dword [esp + 0x9c]
mov esi, edx
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
cmp word [ebx + 0x10], 0x304
jne 0x59ccc0
mov dword [esp + 0x100], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x124]
lea ebp, [ebx + edi]
mov esi, dword [esp + 0x84]
cmp esi, ebp
jb 0x59cb0c
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x108], eax
jmp 0x59cb54
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
lea eax, [0x63efa0]
mov dword [esp + 0x10], eax
call fcn.00447550
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x108], ecx
mov esi, ebx
mov ebx, dword [esp + 0x124]
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x108]
lea ecx, [eax + edi]
mov dword [esp], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.0045f7b0
mov eax, dword [esp + 0xb4]
inc eax
mov ecx, dword [esp + 0x108]
movzx edx, byte [ecx]
mov ebx, dword [esp + 0xb8]
cmp ebx, eax
jae 0x59cbdf
mov byte [esp + 0x53], dl
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x63efa0]
mov dword [esp + 0x10], eax
call fcn.00447550
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0x53]
mov ebx, esi
mov ebp, ecx
mov ecx, eax
mov eax, ebp
mov dword [esp + 0x108], ecx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], ebx
mov byte [eax + ecx - 1], dl
mov byte [ecx], 0x17
mov edx, dword [esp + 0xac]
mov ebp, dword [edx + 0x18]
mov esi, dword [esp + 0x100]
mov dword [esp], esi
call ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x124]
lea eax, [eax + ecx + 1]
mov ecx, eax
sar eax, 8
mov edx, dword [esp + 0x108]
mov byte [edx + 3], al
mov byte [edx + 4], cl
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0x100]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 5
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x18], ebx
lea ebx, [ecx - 5]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 5
add ebx, edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xb8]
add ebx, 0xfffffffb
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 5
mov dword [esp + 0x30], ecx
call eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x59d0ba
mov edi, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x28]
mov dword [ebx + 0x2c], edi
mov dword [ebx + 0x30], ebp
mov ebp, dword [esp + 0xe0]
mov edi, dword [ebp]
movzx esi, byte [ebp + 4]
mov dword [ebx + 0x34], edi
xchg esi, eax
mov byte [ebx + 0x38], al
xchg esi, eax
mov eax, dword [eax + 0x1c]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0x80]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x24], ecx
lea ecx, [ebx + 0x2c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 0xd
mov dword [esp + 0x30], 0xd
call eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x59d0ba
lea eax, [0x64d180]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 8], eax
call fcn.00408ca0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59d144
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [eax + 0x2c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xd
lea ecx, [eax + 0x24]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], 8
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 5
mov edx, dword [esp + 0x84]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x120]
mov dword [esp + 0x2c], ebx
mov ebp, dword [esp + 0x124]
mov dword [esp + 0x30], ebp
mov esi, dword [esp + 0x128]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call fcn.0059a3f0
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xd8], ebx
mov ebp, dword [esp + 0xfc]
mov dword [esp], ebp
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x124]
lea ebx, [edx + ecx]
test eax, eax
je 0x59d13f
mov dword [esp + 0x60], ebx
mov ebp, eax
mov eax, ebx
mov esi, edx
cmp ebp, 0xffffffff
je 0x59ce98
cdq
idiv ebp
jmp 0x59ce9a
xor edx, edx
sub ebp, edx
mov dword [esp + 0x64], ebp
lea edx, [ebx + ebp]
mov dword [esp + 0x70], edx
mov edi, dword [esp + 0x80]
mov eax, ebp
lea ebp, [edx + edi]
mov dword [esp + 0x54], ebp
mov ebx, dword [esp + 0x84]
cmp ebx, ebp
jl 0x59cee0
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xbc]
jmp 0x59cf2c
lea eax, [0x63efa0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc], eax
call fcn.00447340
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0x80]
mov ebx, ebp
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x88], ebx
sub ebx, edi
mov dword [esp + 0xa0], ebx
neg ebx
sar ebx, 0x1f
and ebx, edi
mov edi, dword [esp + 0xe4]
add ebx, edi
cmp esi, edx
jl 0x59cf52
mov esi, edx
mov dword [esp + 0xf4], ebx
mov ebp, dword [esp + 0x120]
cmp ebp, ebx
je 0x59cf8e
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.0045f7b0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xf4]
mov edi, dword [esp + 0xe4]
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0x124]
sub ebp, esi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
add ebp, ebx
sub edx, esi
cmp ecx, edx
jl 0x59cfb3
mov ecx, edx
mov edx, dword [esp + 0xd8]
cmp edx, ebp
je 0x59cfe0
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0045f7b0
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0xf4]
mov edi, dword [esp + 0xe4]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
jmp 0x59d029
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], edx
add esp, 0x10c
ret
lea ebp, [eax - 1]
xchg ebp, eax
mov byte [ebx + edx], al
xchg ebp, eax
inc edx
cmp edx, ecx
jl 0x59d020
mov eax, dword [esp + 0x98]
test eax, eax
je 0x59d073
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 0x18]
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
call edx
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0xf4]
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0xfc]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
call eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x88]
lea ebx, [ecx - 5]
mov ebp, ebx
sar ebx, 8
mov byte [eax + 3], bl
xchg ebp, ebx
mov byte [eax + 4], bl
xchg ebp, ebx
nop
mov ebx, dword [esp + 0x110]
mov ebp, 7
jmp 0x59d0dc
dec ebp
test ebp, ebp
jl 0x59d127
movzx esi, byte [ebx + ebp + 0x24]
lea edi, [esi + 1]
xchg edi, eax
mov byte [ebx + ebp + 0x24], al
xchg edi, eax
xchg esi, eax
cmp al, 0xff
xchg esi, eax
je 0x59d0db
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
add esp, 0x10c
ret
lea eax, [0x63eda0]
mov dword [esp], eax
lea eax, [0x6d28c8]
mov dword [esp + 4], eax
call fcn.00433470
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.0059c4e0