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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x4af544
sub esp, 0xd0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0xd4]
cmp dword [eax + 0xc], 1
jle 0x4ae92e
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x4af550]
mov dword [esp + 0x74], eax
lea eax, [esp + 0xdc]
mov dword [esp + 0x78], eax
lea eax, [esp + 0xe4]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x74]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x34]
mov dword [esp], eax
call fcn.004311d0
test eax, eax
jne 0x4aef09
mov eax, dword [esp + 0xd4]
movzx ecx, byte [eax + 1]
test cl, cl
jne 0x4ae948
mov ecx, dword [esp + 0xd8]
test ecx, ecx
je 0x4ae975
movzx ecx, byte [ecx]
test cl, cl
je 0x4ae975
mov ecx, dword [eax + 4]
cmp dword [eax + 8], 7
jne 0x4ae96e
cmp dword [ecx], 0x646e6977
jne 0x4ae96e
cmp word [ecx + 4], 0x776f
jne 0x4ae96e
cmp byte [ecx + 6], 0x73
jne 0x4ae96e
mov ecx, 4
jmp 0x4ae977
mov ecx, 1
jmp 0x4ae977
xor ecx, ecx
movzx edx, byte [eax]
test dl, dl
jne 0x4ae9db
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
cmp ebx, 7
jne 0x4ae9c4
cmp dword [edx], 0x72646e61
jne 0x4ae9a9
cmp word [edx + 4], 0x696f
jne 0x4ae9a4
cmp byte [edx + 6], 0x64
je 0x4ae9db
cmp ebx, 7
jmp 0x4ae9ac
cmp ebx, 7
jmp 0x4ae9ac
cmp ebx, 7
jne 0x4ae9c4
cmp dword [edx], 0x646e6977
jne 0x4ae9c4
cmp word [edx + 4], 0x776f
jne 0x4ae9c4
cmp byte [edx + 6], 0x73
je 0x4ae9db
mov dword [esp + 0x24], ecx
cmp ebx, 5
jne 0x4ae9f9
cmp dword [edx], 0x6e616c70
jne 0x4ae9f9
cmp byte [edx + 4], 0x39
jne 0x4ae9f9
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], 0
call fcn.00431760
add esp, 0xd0
ret
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x5c
call fcn.004026b0
cmp dword [esp + 0xc], 0xffffffff
jne 0x4aea45
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x25
call fcn.004026b0
cmp dword [esp + 0xc], 0xffffffff
je 0x4aea67
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], 0
call fcn.00431760
add esp, 0xd0
ret
call fcn.004b58d0
mov eax, dword [esp]
mov dword [esp + 0x68], eax
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
test ecx, ecx
jne 0x4aea81
xor ecx, ecx
jmp 0x4aeaaf
mov eax, dword [0x606060]
mov ebx, dword [0x606064]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
call fcn.00496b90
movzx eax, byte [esp + 0x10]
xor eax, 1
mov ecx, eax
mov eax, dword [esp + 0x68]
test cl, cl
je 0x4aeaea
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
mov ebx, dword [0x606068]
mov ebp, dword [0x60606c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call fcn.00496b90
movzx eax, byte [esp + 0x10]
test al, al
je 0x4aeee7
mov eax, dword [esp + 0x68]
movzx ecx, byte [eax + 0x29]
test cl, cl
jne 0x4aeec9
mov ecx, dword [esp + 0xd4]
mov edx, dword [ecx + 4]
cmp dword [ecx + 8], 7
jne 0x4aecf2
cmp dword [edx], 0x6e65706f
jne 0x4aecf2
cmp word [edx + 4], 0x7362
jne 0x4aecf2
cmp byte [edx + 6], 0x64
jne 0x4aecf2
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
mov ebx, dword [0x606060]
mov ebp, dword [0x606064]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call fcn.00496b90
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4aecd0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x30]
test edx, edx
je 0x4aecb2
cmp edx, 2
jg 0x4aec94
mov ebx, dword [ecx]
cmp dword [ecx + 4], 4
jne 0x4aec76
cmp dword [ebx], 0x646e6962
jne 0x4aebfe
cmp edx, 2
jne 0x4aebe0
mov edx, dword [ecx + 8]
cmp dword [ecx + 0xc], 4
jne 0x4aebc2
cmp dword [edx], 0x656c6966
jne 0x4aebc2
mov dword [esp + 0xe4], 2
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov dword [esp + 0xe4], 4
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
cmp dword [ebx], 0x656c6966
jne 0x4aec76
cmp edx, 2
jne 0x4aec58
mov edx, dword [ecx + 8]
cmp dword [ecx + 0xc], 4
jne 0x4aec3a
cmp dword [edx], 0x646e6962
jne 0x4aec3a
mov dword [esp + 0xe4], 1
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov dword [esp + 0xe4], 3
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov dword [esp + 0xe4], 2
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov dword [esp + 0xe4], 3
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xdc]
cmp edx, 1
jl 0x4aed33
lea eax, [edx + ebx - 1]
mov dword [esp], eax
lea eax, [0x537750]
mov dword [esp + 4], eax
mov dword [esp + 8], 1
call fcn.00402670
movzx eax, byte [esp + 0xc]
test al, al
je 0x4aed33
dec dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x504e6a]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 6
call fcn.004c4b20
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4aeea7
call fcn.004c2ff0
mov eax, dword [esp]
mov dword [esp + 0x5c], eax
mov ecx, dword [eax + 0x1c]
lea edx, [0x4eec40]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x504d49]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 5
call fcn.0040e080
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x5c]
mov ebx, dword [edx + 0x14]
mov ebp, dword [edx + 0x18]
mov esi, dword [0x606060]
mov edi, dword [0x606064]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call fcn.00496b90
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4aee3d
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4aedf4
mov ecx, dword [esp + 0x18]
jmp 0x4aedfe
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4aee3d
test eax, eax
jne 0x4aee1b
mov eax, dword [esp + 0x58]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor edx, edx
mov dword [esp + 0x60], edx
xor edx, edx
jmp 0x4aef3b
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 4]
cmp dword [eax + 8], 7
jne 0x4aee85
cmp dword [ecx], 0x616c6f73
jne 0x4aee85
cmp word [ecx + 4], 0x6972
jne 0x4aee85
cmp byte [ecx + 6], 0x73
jne 0x4aee85
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov dword [esp + 0xe4], 1
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
call fcn.00431760
add esp, 0xd0
ret
mov esi, dword [esp + 0x70]
add esi, 0x14
mov edi, dword [esp + 0x30]
inc edi
mov dword [esp + 0x60], ebp
mov ebp, ecx
mov ecx, dword [esp + 0x18]
mov ecx, edx
mov edx, edi
mov edi, ebx
mov ebx, eax
mov eax, esi
mov esi, ecx
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jge 0x4af127
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], edx
xchg ebp, eax
mov byte [esp + 0x17], al
xchg ebp, eax
xchg esi, eax
mov byte [esp + 0x16], al
xchg esi, eax
mov byte [esp + 0x15], bl
mov dword [esp + 0x70], eax
lea edi, [esp + 0x80]
mov esi, eax
call fcn.0045d9ee
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x84], 0xa
jne 0x4aefb7
mov dword [esp], ecx
lea eax, [0x505c32]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
call fcn.00402670
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4af064
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x30]
movzx ebx, byte [esp + 0x15]
movzx ebp, byte [esp + 0x17]
mov ecx, dword [esp + 0x80]
mov esi, edx
mov edx, dword [esp + 0x84]
cmp edx, 5
jne 0x4aefda
cmp dword [ecx], 0x656c6966
jne 0x4aefda
cmp byte [ecx + 4], 0x73
je 0x4aefec
cmp edx, 3
jne 0x4af018
cmp word [ecx], 0x6e64
jne 0x4af018
cmp byte [ecx + 2], 0x73
jne 0x4af018
lea edi, [esp + 0x94]
lea esi, [esp + 0x80]
call fcn.0045d9ee
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x2c], edx
xor esi, esi
jmp 0x4af340
cmp edx, 4
jl 0x4af105
mov dword [esp], ecx
lea eax, [0x504be4]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.00402670
movzx eax, byte [esp + 0xc]
test al, al
je 0x4af105
mov eax, 1
movzx ecx, byte [esp + 0x17]
movzx edx, byte [esp + 0x16]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x60]
jmp 0x4aef15
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004af820
movzx eax, byte [esp + 8]
test al, al
jne 0x4af239
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
nop
cmp eax, 8
jne 0x4af0a6
xor edx, edx
jmp 0x4af25c
nop
cmp eax, 9
jne 0x4af0b3
xor edx, edx
jmp 0x4af2ed
mov edx, dword [0x601760]
mov eax, dword [edx]
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov ebx, dword [esp]
test eax, eax
jne 0x4af294
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
cmp ecx, eax
jne 0x4af0e9
xor ecx, ecx
jmp 0x4af2bb
movzx eax, byte [esp + 0x15]
movzx ecx, byte [esp + 0x17]
movzx edx, byte [esp + 0x16]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x60]
jmp 0x4aef15
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
test bl, bl
je 0x4af15c
mov eax, dword [esp + 0xd4]
movzx eax, byte [eax + 3]
test al, al
je 0x4af15c
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
xchg esi, eax
test al, al
xchg esi, eax
je 0x4af1ef
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4af1c7
cmp edi, 5
jne 0x4af1a5
mov eax, dword [esp + 0x60]
cmp dword [eax], 0x656c6966
jne 0x4af1a5
cmp byte [eax + 4], 0x73
jne 0x4af1a5
mov dword [esp + 0xe4], 1
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov dword [esp + 0xe4], 2
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
xchg esi, eax
test al, al
xchg esi, eax
je 0x4af1ef
mov dword [esp + 0xe4], 3
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4af217
mov dword [esp + 0xe4], 4
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
inc edx
cmp edx, eax
jge 0x4af239
movzx ebx, byte [edx + ecx]
lea ebp, [ebx - 0x41]
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
ja 0x4af271
add ebx, 0x20
lea ebp, [0x5054c7]
movzx esi, byte [ebp + edx]
lea edi, [esi - 0x41]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x4af289
add esi, 0x20
xchg esi, eax
cmp bl, al
xchg esi, eax
je 0x4af25b
jmp 0x4af0a6
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
inc ecx
mov edx, esi
mov ebx, edi
cmp ecx, eax
jge 0x4af294
movzx ebp, byte [ecx + edx]
mov esi, edx
lea edx, [ebp - 0x41]
cmp dl, 0x19
ja 0x4af2d0
add ebp, 0x20
movzx edx, byte [ecx + ebx]
mov edi, ebx
lea ebx, [edx - 0x41]
cmp bl, 0x19
ja 0x4af2e1
add edx, 0x20
xchg ebp, eax
cmp al, dl
xchg ebp, eax
je 0x4af2b6
jmp 0x4af0e9
inc edx
cmp edx, eax
jge 0x4af239
movzx ebx, byte [edx + ecx]
lea ebp, [ebx - 0x41]
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
ja 0x4af306
add ebx, 0x20
lea ebp, [0x5057eb]
movzx esi, byte [ebp + edx]
lea edi, [esi - 0x41]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x4af31e
add esi, 0x20
xchg esi, eax
cmp bl, al
xchg esi, eax
je 0x4af2ec
jmp 0x4af0b3
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x14]
lea eax, [ebp + 1]
mov ebx, edi
movzx ebp, byte [esp + 0x17]
mov esi, eax
mov eax, dword [esp + 0x70]
cmp esi, edx
jge 0x4af4df
mov dword [esp + 0x1c], esi
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0xa8]
mov esi, ecx
call fcn.0045d9ee
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x28], ecx
lea edi, [esp + 0xbc]
lea esi, [esp + 0xa8]
call fcn.0045d9ee
movzx ecx, byte [esp + 0xbc]
test cl, cl
je 0x4af397
mov ebp, dword [esp + 0x1c]
mov esi, eax
mov edi, ebx
xor eax, eax
jmp 0x4af4b5
mov ecx, dword [esp + 0xc0]
mov esi, eax
mov eax, dword [esp + 0xc4]
cmp eax, 7
jne 0x4af3f2
cmp dword [ecx], 0x63637573
jne 0x4af3cf
cmp word [ecx + 4], 0x7365
jne 0x4af3cf
cmp byte [ecx + 6], 0x73
jne 0x4af3cf
mov eax, 6
lea ecx, [0x504fd2]
jmp 0x4af430
cmp dword [ecx], 0x76616e75
jne 0x4af4ad
cmp word [ecx + 4], 0x6961
jne 0x4af4ad
cmp byte [ecx + 6], 0x6c
je 0x4af425
jmp 0x4af4ad
cmp eax, 8
jne 0x4af4ad
cmp dword [ecx], 0x66746f6e
jne 0x4af40c
cmp dword [ecx + 4], 0x646e756f
je 0x4af425
cmp dword [ecx], 0x61797274
jne 0x4af4ad
cmp dword [ecx + 4], 0x6e696167
jne 0x4af4ad
mov eax, 8
lea ecx, [0x5054df]
mov edi, ebx
mov ebx, dword [esp + 0x28]
dec ebx
mov ebp, dword [esp + 0x1c]
cmp ebp, ebx
jne 0x4af467
mov ebx, dword [esp + 0xc8]
cmp dword [esp + 0xcc], 6
jne 0x4af467
cmp dword [ebx], 0x75746572
jne 0x4af467
cmp word [ebx + 4], 0x6e72
jne 0x4af467
mov eax, 1
jmp 0x4af4b5
mov dword [esp + 0x64], ecx
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
cmp eax, ebx
je 0x4af481
xor eax, eax
jmp 0x4af4b5
mov dword [esp], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00402670
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x70]
movzx edi, byte [esp + 0x15]
jmp 0x4af4b5
mov ebp, dword [esp + 0x1c]
mov edi, ebx
xor eax, eax
test al, al
jne 0x4af329
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe8], eax
call fcn.00431760
add esp, 0xd0
ret
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
cmp edx, 5
jne 0x4af507
cmp dword [ecx], 0x656c6966
jne 0x4af507
cmp byte [ecx + 4], 0x73
jne 0x4af507
mov esi, 1
jmp 0x4af523
cmp edx, 3
jne 0x4af51e
cmp word [ecx], 0x6e64
jne 0x4af51e
cmp byte [ecx + 2], 0x73
jne 0x4af51e
mov ebp, 1
movzx esi, byte [esp + 0x16]
mov edi, eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4af533
mov edx, eax
mov ecx, dword [esp + 0x60]
mov eax, ebx
mov ebx, edx
mov edx, esi
mov esi, ecx
mov ecx, ebp
mov ebp, esi
jmp 0x4aef15
call fcn.0045c000
jmp fcn.004ae890