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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4aeb57
sub esp, 0x58
lea eax, [0x4d4c40]
mov dword [esp], eax
call fcn.0040b4e0
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x12
mov dword [esp + 0x10], 0x400
mov dword [esp + 0x14], 0x12
call fcn.00465040
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
test edx, edx
je 0x4ae448
mov ebp, dword [0x5b492c]
cmp dword [0x5b4928], eax
jne 0x4ae40c
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00403370
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ae404
mov edx, dword [0x5b4948]
mov ebx, dword [0x5b494c]
jmp 0x4ae40c
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ebx
add esp, 0x58
ret
mov ebx, dword [esp + 0x54]
cmp word [ebx], 0x4d42
jne 0x4ae978
nop
nop
mov ebp, dword [ebx + 0xa]
mov esi, dword [ebx + 0xe]
cmp esi, 0x28
je 0x4ae4b6
cmp esi, 0x6c
je 0x4ae4b6
cmp esi, 0x7c
je 0x4ae4b6
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
lea ecx, [esi + 0xe]
cmp ecx, 0x400
ja 0x4aeb4c
cmp ecx, 0x12
jb 0x4aeb42
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
lea edx, [ebx + 0x12]
mov dword [esp + 8], edx
lea edx, [esi - 4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0x3ee
mov dword [esp + 0x14], edx
call fcn.00465040
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
test eax, eax
je 0x4ae5a1
mov ebp, dword [0x5b492c]
cmp dword [0x5b4928], ecx
jne 0x4ae565
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00403370
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ae55d
mov eax, dword [0x5b4948]
mov ebx, dword [0x5b494c]
jmp 0x4ae565
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ebx
add esp, 0x58
ret
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x12]
mov edx, dword [eax + 0x16]
test edx, edx
jge 0x4ae5b7
mov ebx, edx
neg edx
jmp 0x4ae5b9
mov ebx, edx
test ecx, ecx
jl 0x4ae5c1
test edx, edx
jge 0x4ae609
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov dword [esp + 0x28], edx
movzx ebp, word [eax + 0x1a]
cmp bp, 1
nop
nop
nop
movzx esi, word [eax + 0x1c]
mov edi, dword [eax + 0x1e]
cmp edi, 3
jne 0x4ae67a
mov edx, dword [esp + 0x44]
cmp edx, 0x28
jbe 0x4ae674
cmp dword [eax + 0x36], 0xff0000
jne 0x4ae66e
cmp dword [eax + 0x3a], 0xff00
jne 0x4ae668
cmp dword [eax + 0x3e], 0xff
jne 0x4ae662
cmp dword [eax + 0x42], 0xff000000
jne 0x4ae65c
cmp bp, 1
mov edi, 0
jmp 0x4ae682
cmp bp, 1
jmp 0x4ae682
cmp bp, 1
jmp 0x4ae682
cmp bp, 1
jmp 0x4ae682
cmp bp, 1
jmp 0x4ae682
cmp bp, 1
jmp 0x4ae682
cmp bp, 1
mov edx, dword [esp + 0x44]
jne 0x4ae688
test edi, edi
je 0x4ae6d0
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
test ebx, ebx
setl bl
cmp si, 8
jne 0x4ae7ee
add edx, 0x40e
mov ebp, dword [esp + 0x3c]
cmp ebp, edx
jne 0x4ae7a6
mov dword [esp + 0x44], ecx
mov byte [esp + 0x27], bl
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x400
mov dword [esp + 0x10], 0x400
mov dword [esp + 0x14], 0x400
call fcn.00465040
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x4ae76a
lea eax, [0x4d9880]
mov dword [esp], eax
mov dword [esp + 4], 0x100
mov dword [esp + 8], 0x100
call fcn.00446de0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x54]
xor edx, edx
jmp 0x4ae9e6
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
add esp, 0x58
ret
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
cmp si, 0x18
jne 0x4ae88f
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
cmp eax, edx
je 0x4ae84c
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov eax, dword [0x5b4828]
mov edx, dword [0x5b482c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x18
mov byte [esp + 0x78], bl
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
add esp, 0x58
ret
cmp si, 0x20
jne 0x4ae930
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
cmp eax, edx
je 0x4ae8ed
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
mov eax, dword [0x5b4828]
mov edx, dword [0x5b482c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x20
mov byte [esp + 0x78], bl
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
add esp, 0x58
ret
mov eax, dword [0x5b47e8]
mov ecx, dword [0x5b47ec]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
add esp, 0x58
ret
lea eax, [0x4d9d60]
mov dword [esp], eax
call fcn.0040b4e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x4eeed7]
mov dword [eax], ecx
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
lea ecx, [0x512050]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
add esp, 0x58
ret
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x54]
mov eax, edx
mov edx, ebx
cmp edx, 0x100
jge 0x4aeab0
mov dword [esp + 0x34], 0
mov ebx, edx
shl edx, 2
lea ebp, [edx + 2]
cmp ebp, 0x400
jae 0x4aeb36
lea ebp, [ecx + ebx*4 + 2]
movzx ebp, byte [ebp]
xchg ebp, eax
mov byte [esp + 0x34], al
xchg ebp, eax
lea ebp, [edx + 1]
cmp ebp, 0x400
jae 0x4aeb2a
lea ebp, [ecx + ebx*4 + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
cmp edx, 0x400
jae 0x4aeb1e
mov dword [esp + 0x38], ebx
lea eax, [ecx + ebx*4]
movzx eax, byte [eax]
mov byte [esp + 0x36], al
mov byte [esp + 0x37], 0xff
lea eax, [0x4e12e0]
mov dword [esp], eax
lea edx, [esp + 0x34]
mov dword [esp + 4], edx
call fcn.00408cd0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x38]
cmp ecx, 0x100
jae 0x4aeb12
mov edx, dword [esp + 0x50]
lea ebx, [edx + ecx*8]
lea ebp, [0x512190]
mov dword [ebx], ebp
mov ebx, dword [0x5e26f0]
lea edi, [edx + ecx*8 + 4]
test ebx, ebx
jne 0x4aeaa6
mov dword [edi], eax
jmp 0x4ae9db
call fcn.0045e3e0
jmp 0x4ae9db
mov dword [esp], eax
mov dword [esp + 4], 0x100
mov dword [esp + 8], 0x100
call fcn.00408f40
mov eax, dword [esp + 0xc]
lea ecx, [0x51217c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 8
movzx eax, byte [esp + 0x27]
mov byte [esp + 0x78], al
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
add esp, 0x58
ret
mov eax, ecx
mov ecx, 0x100
call fcn.0045e460
mov eax, edx
mov ecx, 0x400
call fcn.0045e460
mov eax, ebp
mov ecx, 0x400
call fcn.0045e460
mov eax, ebp
mov ecx, 0x400
call fcn.0045e460
mov eax, 0x12
call fcn.0045e4c0
mov edx, 0x400
call fcn.0045e490
nop
call fcn.0045cfd0
jmp fcn.004ae350