Function at 0x40aae4
Capabilities:
Resolve function by parsing pe exports
Terminate process

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x54
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
lea ebp, [eax + eax]
cmp ebp, 1
mov dword [esp + 0x24], ebp
push 4
jae 0x40ab0e
mov ebp, 1
push ebp
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x40b031
push 4
push ebp
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
mov esi, eax
test esi, esi
je 0x40b00f
push 4
push ebp
call dword [sym.imp.MSVCRT.dll_calloc]
add esp, 8
mov ebp, eax
test ebp, ebp
je 0x40afed
mov ecx, dword [esp + 0x78]
lea edx, [ecx - 1]
mov eax, edx
test ecx, ecx
je 0x40ab72
mov edi, dword [esp + 0x2c]
mov ecx, dword [edi + eax*4]
test ecx, ecx
jne 0x40ac80
add eax, 0xffffffff
cmp eax, 0xffffffff
jne 0x40ab5f
mov eax, dword [esp + 0x78]
cmp eax, 1
jbe 0x40aba5
cmp edx, 0x320
jle 0x40ac60
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x78]
lea edi, [eax + 4]
lea ecx, [edx*4 - 4]
push ecx
push 0
push edi
call fcn.0041d778
add esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [eax], 1
test ebx, ebx
je 0x40abe6
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40abd0
mov eax, dword [esp + 0x78]
lea eax, [ebx + eax*8]
mov dword [eax - 4], 0
add eax, 0xfffffffc
cmp ebx, eax
jne 0x40abc2
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
test ebx, ebx
je 0x40abe6
push ebx
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
test esi, esi
je 0x40ac1d
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40ac07
mov eax, dword [esp + 0x78]
lea eax, [esi + eax*8]
mov dword [eax - 4], 0
add eax, 0xfffffffc
cmp esi, eax
jne 0x40abf9
mov eax, dword [esi]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
test esi, esi
je 0x40ac1d
push esi
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
test ebp, ebp
je 0x40ac56
mov eax, dword [esp + 0x78]
test eax, eax
je 0x40ac3f
mov eax, dword [esp + 0x78]
lea eax, [ebp + eax*4]
mov dword [eax - 4], 0
add eax, 0xfffffffc
cmp ebp, eax
jne 0x40ac31
mov eax, dword [ebp]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
test ebp, ebp
je 0x40ac56
push ebp
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
xor eax, eax
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
lea edx, [eax + 4]
lea eax, [eax + ecx*4]
mov dword [edx], 0
add edx, 4
cmp edx, eax
jb 0x40ac6e
jmp 0x40aba5
mov ecx, eax
add ecx, 1
mov dword [esp + 0x28], ecx
je 0x40ab72
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, 0x80000000
mov dword [esp + 0x34], edx
mov edx, dword [ecx + edi*4 - 4]
mov ecx, dword [esp + 0x34]
test ecx, edx
jne 0x40acb2
shr ecx, 1
test ecx, ecx
jne 0x40aca8
mov dword [esp + 0x34], ecx
mov edx, ecx
cmp edx, 1
jne 0x40accc
mov dword [esp + 0x28], eax
mov eax, 0x80000000
mov dword [esp + 0x34], eax
jmp 0x40acd4
mov eax, edx
shr eax, 1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
test eax, eax
jbe 0x40ad37
mov eax, dword [esp + 0x78]
cmp eax, 0x320
jbe 0x40aeda
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], esi
shl ecx, 2
mov esi, ebp
sub esi, edi
sub edi, ebp
xor eax, eax
mov dword [esp + 0x48], eax
cmp esi, ecx
setg al
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
mov edx, eax
xor eax, eax
mov dword [esp + 0x44], eax
cmp edi, ecx
setg al
or edx, eax
je 0x40aeda
push ecx
mov eax, dword [esp + 0x50]
push eax
push ebp
call fcn.0041d7d0
add esp, 0xc
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40af64
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x78]
shl eax, 2
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x40]
mov eax, ebx
mov ecx, esi
call fcn.004096e0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov ecx, ebx
call fcn.00409a90
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
test dword [eax + edx*4 - 4], ebp
je 0x40af3d
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40adc3
cmp eax, 0x320
je 0x40aef7
mov eax, dword [esp + 0x3c]
push eax
push 0
push ebx
call fcn.0041d778
add esp, 0xc
test esi, esi
jbe 0x40af1e
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
test edx, edx
je 0x40ade6
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebx
xor ecx, ecx
lea edx, [ebx + esi*4]
xor eax, eax
jmp 0x40ae1f
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebx
xor ecx, ecx
lea edx, [ebx + esi*4]
xor eax, eax
mov dword [eax + edx], 0
add ecx, 1
cmp ecx, esi
jae 0x40af12
mov ebx, dword [esp + 0x40]
mov eax, ecx
shl eax, 2
mov ebp, dword [ebx + eax]
test ebp, ebp
je 0x40adf5
test esi, esi
jbe 0x40af0e
mov edi, dword [esp + 0x38]
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], edx
xor ebx, ebx
mov dword [esp + 0x1c], ecx
lea edi, [edi + eax]
mov ecx, ebx
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp + edx]
movzx edi, ax
mov dword [esp + 0x50], ecx
movzx ecx, si
shr esi, 0x10
shr eax, 0x10
mov ebp, ecx
imul ebp, edi
imul ecx, eax
imul edi, esi
imul eax, esi
add ecx, edi
cmp ecx, edi
mov edi, 0
adc edi, 0
mov edx, ecx
shr edx, 0x10
shl edi, 0x10
add edx, edi
shl ecx, 0x10
add ebp, ecx
cmp ebp, ecx
adc edx, 0
mov ecx, dword [esp + 0x50]
add ebp, ebx
lea edi, [edx + eax]
cmp ebp, ebx
jae 0x40ae9c
lea edi, [edx + eax + 1]
mov eax, dword [esp + 0x48]
mov edx, dword [eax + ecx*4]
add ebp, edx
cmp ebp, edx
jae 0x40aeac
add edi, 1
mov ebx, eax
mov eax, dword [esp + 0x78]
mov dword [ebx + ecx*4], ebp
mov ebx, edi
add ecx, 1
cmp ecx, eax
jb 0x40ae3a
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x78]
mov dword [eax + edx], ebx
jmp 0x40adfc
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x4c]
xor eax, eax
mov edx, dword [ecx + eax*4]
mov dword [ebp + eax*4], edx
add eax, 1
cmp eax, edi
jb 0x40aee4
jmp 0x40ad37
mov edx, ebx
lea eax, [ebx + esi*8]
mov dword [edx], 0
add edx, 4
cmp edx, eax
jb 0x40aefc
jmp 0x40adc3
xor ebx, ebx
jmp 0x40aed2
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov ecx, ebx
call fcn.00409a90
cmp ebp, 1
jne 0x40af4e
add dword [esp + 0x28], 0xffffffff
mov ebp, 0x80000000
jmp 0x40af50
shr ebp, 1
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x40ad62
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
test eax, eax
jbe 0x40abaf
mov eax, dword [esp + 0x78]
cmp eax, 0x320
jbe 0x40afd0
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], ebp
shl edi, 2
mov edx, ecx
mov dword [esp + 0x4c], edi
sub edx, ebp
sub ebp, ecx
xor eax, eax
cmp edx, edi
mov dword [esp + 0x50], eax
mov edx, eax
setg dl
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov eax, ecx
mov dword [esp + 0x50], edx
cmp ebp, edi
setg al
mov ebp, dword [esp + 0x40]
or edx, eax
je 0x40afd0
mov eax, edi
push eax
push ebp
mov edx, dword [esp + 0x28]
push edx
call fcn.0041d7d0
add esp, 0xc
jmp 0x40abaf
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
xor eax, eax
mov edx, dword [ebp + eax*4]
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, edi
jb 0x40afda
jmp 0x40abaf
push 0x10
push 0x4e3a0c
push 0x4e3a1c
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
pop ecx
jmp 0x40ab4e
push 0x10
push 0x4e3a0c
push 0x4e3a1c
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
pop ecx
jmp 0x40ab38
push 0x10
push 0x4e3a0c
push 0x4e3a1c
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
pop ecx
jmp 0x40ab22