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

Disassembly:
mov ecx, dword [0x7c3e14]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5aeec1
sub esp, 0x64
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5ae523
nop
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x5ae4f1
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x5ae4eb
or ebx, 0x80
mov ebp, dword [esp + 0x50]
jmp 0x5ae4f7
xor ebx, ebx
xor ebp, ebp
xor edx, edx
mov esi, ebx
and ebx, 0x1f
nop
cmp ebx, 0x16
jne 0x5ae52d
test esi, 0x200
jne 0x5ae52d
test esi, 0x80
je 0x5ae517
mov ebx, dword [ebp]
jmp 0x5ae519
mov ebx, ebp
test ebx, ebx
jne 0x5ae52d
xor eax, eax
xor ecx, ecx
jmp 0x5ae52d
mov ecx, dword [esp + 0x78]
xor esi, esi
xor edx, edx
xor ebp, ebp
test eax, eax
je 0x5aed55
test esi, esi
je 0x5aebfc
mov dword [esp + 0x34], esi
mov ebx, dword [esp + 0x68]
mov edi, dword [ebx]
mov esi, dword [edi]
test esi, esi
je 0x5ae5a6
mov eax, dword [edi + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x1c], edx
call fcn.005adb90
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
test eax, eax
jne 0x5aeb4b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x84]
mov ebp, edx
and edx, 0x1f
lea esi, [edx - 2]
nop
nop
cmp esi, 4
ja 0x5ae5c3
mov edx, 2
jmp 0x5ae5df
lea esi, [edx - 7]
cmp esi, 4
ja 0x5ae5d2
mov edx, 7
jmp 0x5ae5df
lea esi, [edx - 0xd]
cmp esi, 1
ja 0x5ae5df
mov edx, 0xd
mov dword [esp + 0x30], edx
cmp edx, 0x13
ja 0x5ae7d9
cmp edx, 7
ja 0x5ae6e7
cmp edx, 1
je 0x5ae69e
cmp edx, 2
je 0x5ae655
cmp edx, 7
jne 0x5ae8ee
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b07a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005afe20
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b1370
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
cmp edx, 0xd
je 0x5ae790
cmp edx, 0x11
je 0x5ae747
cmp edx, 0x13
jne 0x5ae8ee
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b4ac0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b5c50
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b1bc0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
cmp edx, 0x16
ja 0x5ae8d3
cmp edx, 0x14
je 0x5ae88a
cmp edx, 0x15
jne 0x5ae839
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b2510
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b4560
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ebx, edx
mov edx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005aeed0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
cmp edx, 0x17
je 0x5aea29
cmp edx, 0x18
je 0x5ae9e3
cmp edx, 0x19
je 0x5ae99a
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00409c60
mov eax, dword [esp + 8]
lea ecx, [0x5dda40]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00409b50
mov eax, dword [esp + 4]
lea ecx, [0x5e0ca0]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
lea eax, [0x61216a]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea eax, [esp + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4e90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b67c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005af540
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
jmp 0x5aea6d
mov dword [esp], ebx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x70]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
call fcn.005b4e30
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 1
test dl, dl
je 0x5aeb39
mov edx, dword [esp + 0x68]
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
test edx, edx
je 0x5aeb39
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x5aeb39
mov ebp, dword [edx + 8]
mov esi, dword [edx + 4]
inc esi
mov edi, dword [edx]
cmp ebp, esi
jae 0x5aeb0a
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5dda40]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
mov dword [ebx + 8], eax
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x5aeaf6
call fcn.00468410
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, dword [esp + 0x38]
mov esi, edx
mov edi, ecx
mov ecx, dword [esp + 0x3c]
mov edx, ebx
mov ebx, dword [esp + 0x70]
mov dword [edx + 4], esi
lea edx, [edi + esi*8 - 4]
mov dword [edx], ebx
mov edx, dword [0x7c3fa0]
lea ebx, [edi + esi*8 - 8]
test edx, edx
jne 0x5aeb27
mov edx, dword [esp + 0x6c]
jmp 0x5aeb37
call fcn.00468410
mov edx, dword [esp + 0x6c]
mov dword [edi], edx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
call fcn.00409c60
mov eax, dword [esp + 8]
lea ecx, [0x5dda40]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5aeba8
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], eax
lea eax, [0x61199b]
mov dword [esp], eax
mov dword [esp + 4], 0x17
lea eax, [esp + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4e90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0x84]
test eax, eax
je 0x5aec1a
test eax, 0x200
jne 0x5aec1a
lea ecx, [0x65b040]
mov edx, dword [esp + 0x7c]
jmp 0x5aec41
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048f510
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0048ff00
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0048e460
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x5aed3b
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x5aed3b
mov edx, dword [eax + 8]
mov ebx, dword [eax + 4]
inc ebx
mov ebp, dword [eax]
cmp edx, ebx
jae 0x5aed0c
mov dword [esp + 0x48], eax
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5dda40]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
mov dword [ebx + 8], eax
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x5aed00
call fcn.00468410
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, edx
mov ebp, ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ebx
lea eax, [ebp + ebx*8 - 4]
mov dword [eax], ecx
mov eax, dword [0x7c3fa0]
lea ecx, [ebp + ebx*8 - 8]
test eax, eax
jne 0x5aed29
mov eax, dword [esp + 0x6c]
jmp 0x5aed39
call fcn.00468410
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x64
ret
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
movzx ecx, byte [ecx + 0xa]
test cl, cl
je 0x5aeea7
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x5aed86
test ecx, 0x200
jne 0x5aed86
lea edx, [0x65b040]
mov ebx, dword [esp + 0x7c]
jmp 0x5aedad
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov edx, dword [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0048f510
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, eax
mov ebx, ecx
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0048ff00
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0048e460
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x5aeea7
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x5aeea7
mov edx, dword [eax + 8]
mov ebx, dword [eax + 4]
inc ebx
mov ebp, dword [eax]
cmp edx, ebx
jae 0x5aee78
mov dword [esp + 0x48], eax
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5dda40]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
mov dword [ebx + 8], eax
mov eax, dword [0x7c3fa0]
test eax, eax
je 0x5aee6c
call fcn.00468410
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, ebx
mov ebx, edx
mov ebp, ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ebx
lea eax, [ebp + ebx*8 - 4]
mov dword [eax], ecx
mov eax, dword [0x7c3fa0]
lea ecx, [ebp + ebx*8 - 8]
test eax, eax
jne 0x5aee95
mov eax, dword [esp + 0x6c]
jmp 0x5aeea5
call fcn.00468410
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x64
ret
call fcn.00467000
jmp fcn.005ae4a0