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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc8]
cmp eax, dword [ecx + 8]
jbe 0x5ae531
sub esp, 0x148
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov eax, dword [esp + 0x14c]
mov ecx, dword [eax]
mov dword [esp + 0x138], ecx
mov dword [esp], ecx
call fcn.005aba20
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x12c], edx
mov dword [esp + 0xec], 0x10
lea ebx, [0x69277c]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x138]
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], eax
lea ebp, [esp + 0xec]
mov dword [esp], ebp
call fcn.00430b70
test eax, eax
jne 0x5ae4fc
mov dword [esp + 0xb4], 0x10
lea eax, [0x692798]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0xdc], eax
lea ecx, [esp + 0x160]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0xe8], ecx
lea ecx, [esp + 0xb4]
mov dword [esp], ecx
call fcn.00430b70
test eax, eax
jne 0x5ae4ef
mov eax, dword [esp + 0x14c]
mov ebx, dword [eax + 4]
mov ebp, dword [ebx + 0x58]
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x5adb3e
je 0x5ae4af
lea edi, [0x65dec0]
cmp dword [esi + 4], edi
jne 0x5ae4af
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x140], ebp
test ebp, ebp
xchg esi, ebx
setne bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x31], al
xchg esi, eax
cmp edx, 0xffffffff
xchg edi, ebx
setne bl
xchg edi, ebx
cmp ecx, 0xffffffff
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, edi
xchg esi, eax
mov byte [esp + 0x32], al
xchg esi, eax
mov edi, dword [esp + 0x154]
mov dword [esp + 0x80], eax
xor eax, eax
mov byte [esp + 0x30], al
xor eax, eax
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x80]
jmp 0x5adecb
mov dword [esp + 0x130], ecx
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x13c]
mov dword [esp], edx
call fcn.00462b80
mov eax, dword [esp + 0x14c]
movzx ecx, byte [esp + 0x33]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x144]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x44]
movzx ecx, byte [esp + 0x32]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], edx
movzx edx, byte [esp + 0x33]
mov byte [esp + 0x2f], dl
mov edx, dword [esp + 0x68]
test edi, edi
jle 0x5ade87
test eax, eax
jne 0x5ade87
mov dword [esp + 0x50], ebx
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.005ae540
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x130], edx
cmp dword [0x7cd018], eax
je 0x5ade2e
cmp dword [0x7cd020], eax
je 0x5adda0
test eax, eax
jne 0x5add85
mov eax, dword [esp + 0x138]
test byte [eax], al
lea ecx, [eax + 0xd8]
mov dword [esp + 0x13c], ecx
mov dword [esp], ecx
call fcn.004627c0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
cmp edx, ecx
jb 0x5ae512
mov ebx, dword [esp + 0x44]
cmp ebx, ecx
jb 0x5ae509
sub ebx, ecx
mov dword [esp + 0x44], ebx
mov eax, edx
sub edx, ecx
mov dword [esp + 0x58], edx
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, ecx
mov esi, dword [esp + 0x134]
add edx, esi
mov dword [esp + 0x144], edx
movzx edi, byte [esp + 0x30]
xchg edi, eax
test al, al
xchg edi, eax
je 0x5add7e
test ebx, ebx
jne 0x5add7e
movzx edi, byte [esp + 0x31]
xor edi, 1
xchg edi, eax
mov byte [esp + 0x33], al
xchg edi, eax
mov edx, dword [esp + 0x138]
mov ebx, dword [edx + 0x74]
mov ebp, dword [esp + 0x14c]
mov ebp, dword [ebp + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], ebp
xchg edi, eax
mov byte [esp + 8], al
xchg edi, eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.005a3e40
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x5adba1
mov eax, dword [esp + 0x138]
mov ecx, dword [eax + 0x6c]
mov dword [esp], ecx
call fcn.0057c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
jmp 0x5adba1
xor edi, edi
jmp 0x5adcff
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
nop
call fcn.004312b0
add esp, 0x148
ret
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [0x7cd024]
mov dword [esp + 8], ecx
call fcn.00404120
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5addd3
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x130]
jmp 0x5adc77
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.005b2f70
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x164], eax
nop
call fcn.004312b0
add esp, 0x148
ret
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [0x7cd01c]
mov dword [esp + 8], ecx
call fcn.00404120
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5ade61
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x130]
jmp 0x5adc6b
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x164], eax
nop
call fcn.004312b0
add esp, 0x148
ret
test eax, eax
jne 0x5adfe1
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x12c]
mov eax, dword [esp + 0x14c]
mov ebx, dword [esp + 0x128]
mov ebp, dword [esp + 0x140]
mov esi, ecx
mov edi, dword [esp + 0x154]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
movzx ebx, byte [esp + 0x30]
test bl, bl
jne 0x5ae1aa
mov ebp, dword [esp + 0x54]
dec ebp
mov eax, dword [esp + 0x48]
cmp ebp, eax
ja 0x5ae527
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x150]
mov edx, dword [ecx + 0x10]
mov dword [esp], edi
mov ebx, dword [esp + 0x12c]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
call edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
movzx ebx, byte [esp + 0x32]
test bl, bl
je 0x5ae19b
mov ebp, dword [esp + 0x3c]
mov esi, ebp
sub ebp, ecx
mov edi, ecx
sar ecx, 0x1f
sub esi, edi
mov esi, dword [esp + 0x40]
sbb esi, ecx
test ebp, ebp
mov ecx, ebx
sete bl
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x5adf65
test eax, eax
je 0x5ae110
mov dword [esp + 0x4c], eax
test ebp, ebp
setb bl
test esi, esi
xchg edi, ebx
sete bl
xchg edi, ebx
setl al
and ebx, edi
or eax, ebx
test al, al
jne 0x5ae0a6
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x130], edx
mov dword [esp + 0x4c], eax
cmp dword [0x7ccd90], eax
je 0x5ae04f
test eax, eax
jne 0x5adffc
movzx ebx, byte [esp + 0x30]
mov byte [esp + 0x30], bl
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
cmp edi, ebx
ja 0x5ae517
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x78]
jmp 0x5adc19
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
nop
call fcn.004312b0
add esp, 0x148
ret
mov ecx, dword [esp + 0x14c]
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esp + 0x138]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.005b2f70
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x164], eax
nop
call fcn.004312b0
add esp, 0x148
ret
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [0x7ccd94]
mov dword [esp + 8], ecx
call fcn.00404120
movzx eax, byte [esp + 0xc]
test al, al
je 0x5ae089
movzx ecx, byte [esp + 0x32]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
xor eax, eax
xor edx, edx
mov ebx, 1
jmp 0x5adfb2
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x32]
mov edx, dword [esp + 0x130]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
jmp 0x5adfa9
mov eax, dword [0x7ccff8]
mov dword [esp + 0x4c], eax
mov ecx, dword [0x7ccffc]
mov dword [esp + 0x130], ecx
mov edx, dword [esp + 0x14c]
mov edx, dword [edx + 0xc]
mov ebx, dword [esp + 0x138]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.005b2f70
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x164], eax
nop
call fcn.004312b0
add esp, 0x148
ret
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
cmp eax, edx
ja 0x5ae520
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebp
mov ecx, dword [esp + 0x150]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [esp + 0x154]
mov dword [esp], ebp
mov esi, dword [esp + 0x48]
sub esi, eax
mov dword [esp + 0x58], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
mov ebp, dword [esp + 0x12c]
add esi, ebp
mov dword [esp + 4], esi
sub edx, eax
mov dword [esp + 8], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
call ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
mov edx, ecx
sub ecx, eax
mov ebx, eax
sar eax, 0x1f
sub edx, ebx
mov esi, dword [esp + 0x64]
sbb esi, eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, ecx
movzx ecx, byte [esp + 0x32]
jmp 0x5adf65
mov ecx, ebx
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
jmp 0x5adf8a
movzx ecx, byte [esp + 0x2f]
test cl, cl
jne 0x5ae48c
test ebp, ebp
jne 0x5ae38e
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x124], ebx
mov eax, dword [esp + 0x138]
test byte [eax], al
lea ebp, [eax + 0x30]
mov dword [esp + 0x13c], ebp
mov dword [esp], ebp
call fcn.004627c0
mov eax, dword [esp + 0x138]
mov ecx, dword [eax + 0xa0]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x13c]
mov dword [esp], edx
call fcn.00462b80
mov eax, dword [esp + 0x138]
lea ecx, [eax + 0xd8]
mov dword [esp + 0x13c], ecx
mov dword [esp], ecx
call fcn.004627c0
mov dword [esp + 0x88], 4
lea eax, [0x692a60]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x88]
mov dword [esp], eax
call fcn.00430b70
test eax, eax
jne 0x5ae381
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x5ae311
mov ecx, dword [esp + 0x14c]
mov ecx, dword [ecx + 0xc]
mov edx, dword [esp + 0x138]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov byte [esp + 8], 1
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
call fcn.005ad7d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x138]
mov eax, dword [eax + 0x6c]
mov dword [esp], eax
call fcn.0057c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test eax, eax
je 0x5ae2f4
mov edx, dword [esp + 0x160]
test edx, edx
je 0x5ae301
nop
call fcn.004312b0
add esp, 0x148
ret
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
jmp 0x5ae2f4
mov eax, dword [esp + 0x138]
mov ecx, dword [eax + 0x74]
mov edx, dword [esp + 0x14c]
mov edx, dword [edx + 0xc]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov byte [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.005a3e40
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
jmp 0x5ae2cb
nop
call fcn.004312b0
add esp, 0x148
ret
mov eax, dword [esp + 0x138]
test byte [eax], al
lea ecx, [eax + 0x30]
mov dword [esp + 0x13c], ecx
mov dword [esp], ecx
call fcn.004627c0
mov eax, dword [esp + 0x138]
mov dword [esp], eax
mov ecx, dword [esp + 0x128]
mov dword [esp + 4], ecx
call fcn.005af0b0
mov eax, dword [esp + 8]
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebp
mov ebx, dword [esp + 0x13c]
mov dword [esp], ebx
call fcn.00462b80
mov eax, dword [esp + 0x160]
test eax, eax
jne 0x5ae422
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x124]
jmp 0x5ae1c5
mov eax, dword [esp + 0x14c]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x138]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
mov ecx, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.005b2f70
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 1
call fcn.005af650
nop
call fcn.004312b0
add esp, 0x148
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
nop
call fcn.004312b0
add esp, 0x148
ret
mov esi, dword [ebx + 0x30]
test esi, esi
xchg edi, ebx
setne bl
xchg edi, ebx
mov ecx, ebx
mov ebx, dword [ebx + 0x2c]
test ebx, ebx
mov edx, eax
setne al
or edi, eax
xchg edi, eax
test al, al
xchg edi, eax
je 0x5ae4dc
mov eax, edx
mov edx, ebx
mov ebx, ecx
mov ecx, esi
jmp 0x5adb42
mov eax, edx
mov ebx, ecx
mov ecx, 0xffffffff
mov edx, 0xffffffff
jmp 0x5adb42
nop
call fcn.004312b0
add esp, 0x148
ret
nop
call fcn.004312b0
add esp, 0x148
ret
mov eax, ecx
mov ecx, ebx
call fcn.0045ca00
call fcn.0045c9e0
mov ecx, edi
mov edx, ebx
call fcn.0045c9e0
mov ecx, edx
call fcn.0045ca00
mov ecx, ebp
mov edx, eax
call fcn.0045c9e0
nop
call fcn.0045b380
jmp fcn.005ad9f0