Function at 0x40ace0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x443038]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x18]
push edi
mov edi, ecx
mov dword [ebp - 0x8c], eax
cmp dword [edi], 0x20100916
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x84], eax
je 0x40ad5c
push str.IMAGE::putimage_alphablend
push edi
lea eax, [ebp - 0x7c]
push str.Fatal_error:_read_write_at_0x_p._At_function__s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x7c]
push 0x10
push str.EGE_ERROR_message
push eax
mov eax, dword [0x448fd8]
push dword [eax + 0x5c]
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp esi, 0x20
jae 0x40ad81
mov eax, dword [0x448fd8]
test esi, esi
je 0x40ad73
and esi, 0xf
mov esi, dword [eax + esi*4 + 0x24]
jmp 0x40ad81
dec dword [eax + 0x1a8]
mov eax, dword [0x448fd8]
mov esi, dword [eax + 0x4c]
test esi, esi
je 0x40af1d
push ebx
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x80]
push eax
push edi
push esi
call fcn.00409a60
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0x84]
mov dword [ebp - 0x90], ecx
imul ecx, dword [ebp - 0x88]
add ecx, dword [ebp - 0x80]
mov edx, dword [ebp + 0x20]
add esp, 0x20
lea ebx, [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, eax
imul ecx, esi
add ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x80], eax
mov eax, dword [edi + 0x14]
sub dword [ebp - 0x80], edx
lea edi, [eax + ecx*4]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x84], edi
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
imul ecx, esi
add ecx, dword [ebp - 0x8c]
mov esi, dword [ebp + 0x24]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x90]
sub eax, edx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x90], esi
test esi, esi
jle 0x40af1c
shl eax, 2
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x80]
shl eax, 2
mov dword [ebp - 0x80], eax
lea ecx, [ecx]
test edx, edx
jle 0x40aef9
mov dword [ebp - 0x8c], edx
mov edi, edi
mov eax, dword [ebp - 0x84]
mov esi, dword [ecx]
mov edi, dword [ebx]
mov eax, dword [eax]
test esi, esi
je 0x40aec5
and esi, 0xff
mov ecx, 0xff
sub ecx, esi
lea edx, [esi + 1]
mov esi, edi
and esi, 0xff00ff
imul esi, ecx
and edi, 0xff00
imul edi, ecx
mov ecx, eax
and ecx, 0xff00ff
imul ecx, edx
and eax, 0xff00
imul eax, edx
mov edx, dword [ebp - 0x8c]
and esi, 0xff00ff00
and ecx, 0xff00ff00
and edi, 0xffff0000
and eax, 0xffff0000
or ecx, eax
or esi, edi
add esi, ecx
mov ecx, dword [ebp - 0x88]
shr esi, 8
mov dword [ebx], esi
mov edi, dword [ebp - 0x84]
add edi, 4
add ecx, 4
add ebx, 4
dec edx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x8c], edx
jne 0x40ae50
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp - 0x90]
add ebx, dword [ebp - 0x94]
add edi, eax
add ecx, eax
dec esi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x90], esi
jne 0x40ae40
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.004015f2
mov esp, ebp
pop ebp
ret 0x20