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

Disassembly:
sub esp, 0xa4
mov eax, dword [0x44a5a8]
xor eax, esp
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xac]
push ebx
xor ebx, ebx
mov dword [esp + 0x18], eax
cmp edx, 0x10
push ebp
mov ebp, dword [esp + 0xbc]
sete bl
push esi
mov esi, dword [esp + 0xb4]
inc ebx
imul ebx, ebp
cmp dword [esp + 0xcc], 0
mov dword [esp + 0x30], esi
mov ecx, dword [esi]
jne 0x407f5a
push dword [esp + 0xc8]
push edx
push dword [ecx + 4]
push dword [ecx]
push ebp
push dword [esp + 0xd0]
push eax
push esi
call fcn.00408240
add esp, 0x20
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.00418b49
add esp, 0xa4
ret
push edi
mov edi, dword [ecx + 4]
mov ecx, dword [ecx]
test ecx, ecx
js 0x408205
test edi, edi
js 0x408205
je 0x407f82
mov eax, 0x7fffffff
cdq
idiv edi
cmp ecx, eax
jg 0x408205
imul ecx, edi
test ecx, ecx
js 0x408205
test ebx, ebx
js 0x408205
je 0x407fa7
mov eax, 0x7fffffff
cdq
idiv ebx
cmp ecx, eax
jg 0x408205
imul ecx, ebx
push ecx
call fcn.0041d0fe
mov ebp, eax
add esp, 4
mov dword [esp + 0x2c], ebp
test ebp, ebp
je 0x408205
mov ecx, dword [esp + 0xc0]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ecx
movaps xmm0, xmmword [0x43b400]
xor edx, edx
mov edi, dword [esi]
movups xmmword [esp + 0x40], xmm0
mov dword [esp + 0x6c], 2
movaps xmm0, xmmword [0x43b3f0]
movups xmmword [esp + 0x94], xmm0
mov dword [esp + 0x70], 2
movaps xmm0, xmmword [0x43b440]
movups xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x74], 1
mov ebp, dword [esp + eax + 0x5c]
mov ecx, ebp
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], 0
sub ecx, dword [esp + eax + 0x40]
mov eax, dword [edi]
dec ecx
add eax, ecx
movaps xmm0, xmmword [0x43b450]
div ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x88], 4
mov dword [esp + 0x8c], 2
mov dword [esp + 0x90], 2
mov dword [esp + 0xa4], 2
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 1
mov dword [esp + 0x14], eax
movups xmmword [esp + 0x78], xmm0
mov edx, dword [esp + ecx + 0x78]
mov dword [esp + 0x18], edx
test eax, eax
je 0x4081d5
mov ebp, dword [esp + ecx + 0x94]
lea eax, [edx - 1]
mov ecx, dword [edi + 4]
xor edx, edx
sub ecx, ebp
mov dword [esp + 0x1c], ebp
add eax, ecx
div dword [esp + 0x18]
mov dword [esp + 0x20], eax
test eax, eax
je 0x4081d5
mov edi, dword [edi + 8]
mov ecx, dword [esp + 0x14]
push dword [esp + 0xcc]
mov edx, dword [esp + 0xcc]
imul edi, ecx
push edx
push eax
push ecx
push dword [esp + 0xd4]
imul edi, edx
push dword [esp + 0x3c]
push dword [esp + 0x3c]
add edi, 7
sar edi, 3
inc edi
imul edi, eax
push esi
mov dword [esp + 0x5c], edi
call fcn.00408240
add esp, 0x20
test eax, eax
je 0x4081f7
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x4081c2
mov edx, dword [esp + 0x14]
xor eax, eax
mov edi, dword [esp + 0x18]
mov esi, edx
imul esi, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], esi
nop word [eax + eax]
test edx, edx
jle 0x4081a5
xor edi, edi
mov esi, eax
mov ebp, edx
nop word [eax + eax]
mov ecx, dword [esp + 0x34]
push ebx
mov eax, dword [ecx + 0xc]
add eax, esi
push eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
imul eax, dword [esp + 0x24]
add eax, dword [esp + ecx + 0x48]
add eax, edi
imul eax, ebx
add eax, dword [esp + 0x34]
push eax
call fcn.00419e50
mov eax, dword [esp + 0x1c]
add esp, 0xc
add esi, ebx
add edi, dword [esp + eax + 0x5c]
sub ebp, 1
jne 0x408150
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
add ebp, edi
add eax, esi
sub ecx, 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
jne 0x408140
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
push dword [esi + 0xc]
call fcn.0041d0e3
add dword [esp + 0x28], edi
add esp, 4
sub dword [esp + 0x28], edi
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
cmp eax, 0x1c
jl 0x407fd2
mov eax, dword [esp + 0x2c]
mov dword [esi + 0xc], eax
mov eax, 1
jmp 0x408220
push dword [esp + 0x2c]
call fcn.0041d0e3
add esp, 4
jmp 0x40821e
mov ecx, dword [0x44b8a8]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.outofmem
xor eax, eax
mov ecx, dword [esp + 0xb0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00418b49
add esp, 0xa4
ret