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

Disassembly:
mov ecx, dword [0x8cbf38]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x59c3c9
sub esp, 0xb4
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc8]
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0xc0]
mov ecx, ebp
mov edx, ebx
xor ecx, ecx
mov dword [esp + 0x44], ecx
xor edx, edx
mov dword [esp + 0x90], edx
xor ebx, ebx
mov dword [esp + 0x8c], ebx
mov ecx, ebp
mov edx, dword [esp + 0xc4]
mov ebx, edx
jmp 0x59bb68
mov esi, ebx
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x64]
test ebp, ebp
je 0x59bf7e
mov dword [esp + 0x70], ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x88], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], esi
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x58]
jmp 0x59bff0
cmp esi, ebp
ja 0x59c3bf
lea ecx, [esi + 1]
cmp ebp, ecx
jb 0x59c3b6
sub ebp, esi
lea edx, [ebp - 1]
mov ebp, edx
neg edx
sar edx, 0x1f
and ecx, edx
add ecx, ebx
mov edx, dword [esp + 0xc4]
mov esi, ebp
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x38]
jmp 0x59bbe4
xor esi, esi
xor esi, esi
mov dword [esp + 0x64], esi
xor esi, esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
jmp 0x59c0b9
cmp eax, 0x15
je 0x59bec3
cmp eax, 0x19
je 0x59bc40
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x44]
jmp 0x59bb5a
mov dword [esp], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.004a19d0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x59bd16
mov ebx, eax
and eax, 0x1f
nop
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
nop
cmp eax, 0x13
jne 0x59bc9a
mov ecx, ebx
mov eax, ebp
mov edx, esi
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x6c]
jmp 0x59bdb9
cmp eax, 0x14
je 0x59bcaa
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x59bdb9
mov dword [esp + 0x80], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x7c], ebp
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004a11a0
mov eax, dword [esp + 0x14]
mov ecx, eax
and eax, 0x1f
cmp eax, 0x13
jne 0x59bcf0
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x6c]
jmp 0x59bd05
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov edi, eax
mov eax, ebx
mov ebx, edi
mov edi, edx
mov edx, ebp
mov ebp, edi
jmp 0x59bdb9
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x59bd26
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x59bd5d
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], ecx
call fcn.004a3df0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x59bd9c
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x40]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x10], ebp
call fcn.004a3df0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x59c2a5
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x6c]
mov edi, ecx
mov ecx, edx
mov edx, edi
test ecx, ecx
je 0x59be89
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebp
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.0049d8e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp eax, 1
jne 0x59be0c
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 8]
mov esi, dword [ecx]
jmp 0x59be81
cmp eax, 2
jne 0x59c1d0
mov dword [esp + 0x60], ecx
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 1
call fcn.004a2110
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
lea ebx, [0x63a520]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040d870
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x59c16e
mov ebx, dword [esp + 0x34]
test ebx, ebx
jne 0x59c0de
mov edi, dword [esp + 0x60]
mov ebx, dword [edi + 4]
mov ebp, dword [edi + 8]
mov esi, dword [edi]
mov eax, ebx
mov ebx, ebp
mov ebp, esi
mov esi, eax
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov eax, ebx
mov edi, ebp
mov ebx, esi
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x24]
jmp 0x59bb5a
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040d540
mov eax, dword [esp + 8]
lea ecx, [0x62efe0]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x94]
test edx, edx
je 0x59bf0b
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x59bf11
or ebx, 0x80
jmp 0x59bf11
xor ebx, ebx
xor edx, edx
xor eax, eax
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov ebp, dword [esp + 0x6c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
call fcn.004a2f10
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov ebx, esi
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x24]
jmp 0x59bb5a
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
add esp, 0xb4
ret
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0x38]
cmp esi, ebp
jge 0x59bbda
movzx ecx, byte [ebx + esi]
cmp ecx, 0x80
jge 0x59c00d
lea edx, [esi + 1]
jmp 0x59c03c
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00463480
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x88]
cmp ecx, 0x2e
jne 0x59bfd7
jmp 0x59bb9d
mov dword [esp], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
call fcn.004a11a0
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x30]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x6c], esi
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x88], edi
and eax, 0x1f
cmp eax, 0x14
je 0x59c046
cmp eax, 0x16
je 0x59c046
jmp 0x59bc21
lea eax, [0x68c7fb]
mov dword [esp], eax
mov dword [esp + 4], 0x30
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.004e4a80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xb4
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xb4
ret
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.0040d540
mov eax, dword [esp + 8]
lea ecx, [0x62efe0]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
lea eax, [0x68d4e6]
mov dword [esp], eax
mov dword [esp + 4], 0x37
lea eax, [esp + 0x9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004e4a80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xb4
ret
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.0040d540
mov eax, dword [esp + 8]
lea ecx, [0x62efe0]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], eax
call fcn.0040d540
mov eax, dword [esp + 8]
lea ecx, [0x62efe0]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
lea eax, [0x686e28]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0xa4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004e4a80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xcc], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xd0], ebx
mov ebp, dword [esp + 0x40]
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xb4
ret
mov eax, ecx
mov ecx, ebp
call fcn.0046bf90
mov ecx, esi
mov edx, ebp
call fcn.0046bf50
nop
call fcn.0046aab0
jmp fcn.0059baf0