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

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0xc
push ebx
mov ebx, edx
push ebp
mov ebp, ecx
push esi
push edi
cmp eax, 0xc
ja 0x40fa15
cmp eax, 8
jbe 0x40f625
mov dword [esp + 0x10], 0
cmp eax, 0xa
jbe 0x40f4a7
cmp eax, 0xc
jne 0x40f3e4
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffd4
mov dword [esp + 0x14], ecx
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x20]
lea esi, [ecx + 4]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x24]
imul edx, dword [eax + 4]
mov eax, dword [ecx + 0x20]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx + 0x1c]
imul eax, dword [edi + 0xc]
add edx, eax
mov eax, dword [ecx + 0x18]
imul eax, dword [edi + 0x10]
add edx, eax
mov eax, dword [ecx + 0x14]
imul eax, dword [edi + 0x14]
add edx, eax
mov eax, dword [ecx + 0x10]
imul eax, dword [edi + 0x18]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [edi + 0x1c]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [edi + 0x20]
add edx, eax
mov eax, dword [ecx + 0x28]
imul eax, dword [edi]
add edx, eax
mov eax, dword [ecx - 4]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx + 0x2c]
add edx, eax
mov eax, dword [ecx + 0x24]
imul eax, edi
add edx, eax
mov eax, dword [ecx + 0x28]
imul eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], esi
mov dword [eax + 0x2c], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f334
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffd8
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
nop dword [eax]
mov edi, dword [esp + 0x20]
lea esi, [ecx + 4]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x24]
imul edx, dword [eax]
mov eax, dword [ecx + 0x20]
imul eax, dword [edi + 4]
add edx, eax
mov eax, dword [ecx + 0x1c]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx + 0x18]
imul eax, dword [edi + 0xc]
add edx, eax
mov eax, dword [ecx + 0x14]
imul eax, dword [edi + 0x10]
add edx, eax
mov eax, dword [ecx + 0x10]
imul eax, dword [edi + 0x14]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [edi + 0x18]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [edi + 0x1c]
add edx, eax
mov eax, dword [ecx - 4]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx + 0x28]
add edx, eax
mov eax, dword [ecx + 0x24]
imul eax, dword [esp + 0x14]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x28]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x28], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f400
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
jne 0x40f56e
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffdc
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
nop word [eax + eax]
mov edi, dword [esp + 0x20]
lea esi, [ecx + 4]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x1c]
imul edx, dword [eax + 4]
mov eax, dword [ecx + 0x18]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx + 0x14]
imul eax, dword [edi + 0xc]
add edx, eax
mov eax, dword [ecx + 0x10]
imul eax, dword [edi + 0x10]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [edi + 0x14]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [edi + 0x18]
add edx, eax
mov eax, dword [ecx - 4]
imul eax, dword [edi + 0x24]
add edx, eax
mov eax, dword [ecx + 0x20]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx]
add edx, eax
mov eax, dword [ecx + 0x1c]
imul eax, edi
add edx, eax
mov eax, dword [ecx + 0x20]
imul eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f4d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffe0
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
nop word [eax + eax]
mov edi, dword [esp + 0x20]
lea esi, [ecx + 4]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x1c]
imul edx, dword [eax]
mov eax, dword [ecx + 0x18]
imul eax, dword [edi + 4]
add edx, eax
mov eax, dword [ecx + 0x14]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx + 0x10]
imul eax, dword [edi + 0xc]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [edi + 0x10]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [edi + 0x14]
add edx, eax
mov eax, dword [ecx - 4]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx + 0x20]
add edx, eax
mov eax, dword [ecx + 0x18]
imul eax, edi
add edx, eax
mov eax, dword [ecx + 0x1c]
imul eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x20], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f590
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
cmp eax, 4
jbe 0x40f89d
mov dword [esp + 0x10], 0
cmp eax, 6
jbe 0x40f781
cmp eax, 8
jne 0x40f6e9
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffe4
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x20]
lea esi, [ecx + 4]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x14]
imul edx, dword [eax + 4]
mov eax, dword [ecx + 0x10]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [edi + 0xc]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [edi + 0x10]
add edx, eax
mov eax, dword [ecx - 4]
imul eax, dword [edi + 0x1c]
add edx, eax
mov eax, dword [ecx + 0x18]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx]
add edx, eax
mov eax, dword [ecx + 0x14]
imul eax, edi
add edx, eax
mov eax, dword [ecx + 0x18]
imul eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f661
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffe8
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
lea esi, [ecx + 4]
mov edi, dword [esp + 0x20]
mov edx, dword [ecx + 0x14]
imul edx, dword [eax]
mov eax, dword [ecx + 0x10]
imul eax, dword [edi + 4]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [edi + 0xc]
add edx, eax
mov eax, dword [ecx - 4]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx + 0x18]
add edx, eax
mov eax, dword [ecx + 0x10]
imul eax, edi
add edx, eax
mov eax, dword [ecx + 0x14]
imul eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f702
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
jne 0x40f816
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xffffffec
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
lea esi, [ecx + 4]
mov edx, dword [ecx + 0xc]
mov edi, dword [esp + 0x20]
imul edx, dword [eax + 4]
mov eax, dword [ecx + 8]
imul eax, dword [edi + 8]
add edx, eax
mov eax, dword [ecx - 4]
imul eax, dword [edi + 0x14]
add edx, eax
mov eax, dword [ecx + 0x10]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, edi
add edx, eax
mov eax, dword [ecx + 0x10]
imul eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f7a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test ebx, ebx
jle 0x40fb93
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff0
mov dword [esp + 0x18], ecx
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
nop
mov eax, dword [esp + 0x20]
lea esi, [ecx + 4]
mov edx, dword [ecx + 0xc]
mov edi, dword [esp + 0x20]
imul edx, dword [eax]
mov eax, dword [ecx + 8]
imul eax, dword [edi + 4]
add edx, eax
mov eax, dword [ecx - 4]
mov ecx, edi
mov edi, dword [esi]
imul eax, dword [ecx + 0x10]
add edx, eax
mov eax, dword [ecx + 0xc]
imul eax, dword [esp + 0x14]
mov dword [esp + 0x14], edi
add edx, eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x28]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, esi
add edx, dword [ebp + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [eax + 0x10], edx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebx
jl 0x40f830
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
cmp eax, 2
jbe 0x40f994
mov dword [esp + 0x18], 0
cmp eax, 4
jne 0x40f92a
test ebx, ebx
jle 0x40fb93
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff4
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
nop dword [eax]
mov edx, dword [eax - 4]
lea esi, [eax + 4]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov edi, dword [esi]
imul eax, dword [ecx]
imul edx, dword [ecx + 0xc]
add edx, eax
mov eax, dword [ecx + 8]
imul eax, dword [esp + 0x10]
mov dword [esp + 0x10], edi
add edx, eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x28]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x14]
sar edx, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], esi
add edx, dword [ebp + ecx*4]
inc ecx
mov dword [eax + 0xc], edx
mov eax, esi
mov dword [esp + 0x18], ecx
cmp ecx, ebx
jl 0x40f8d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test ebx, ebx
jle 0x40fb93
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff8
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
lea esi, [eax + 4]
mov edx, dword [eax - 4]
mov edi, dword [esi]
imul edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
imul eax, dword [esp + 0x10]
mov dword [esp + 0x10], edi
add edx, eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x28]
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x14]
sar edx, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], esi
add edx, dword [ebp + ecx*4]
inc ecx
mov dword [eax + 8], edx
mov eax, esi
mov dword [esp + 0x18], ecx
cmp ecx, ebx
jl 0x40f943
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
jne 0x40f9e0
xor edi, edi
test ebx, ebx
jle 0x40fb93
mov esi, dword [esp + 0x2c]
add esi, 0xfffffffc
mov ecx, dword [esi]
nop dword [eax]
mov eax, dword [esp + 0x20]
lea esi, [esi + 4]
mov edx, dword [esi - 8]
imul edx, dword [eax + 4]
mov eax, dword [eax]
imul eax, ecx
mov ecx, dword [esp + 0x28]
add edx, eax
sar edx, cl
mov ecx, dword [ebp + edi*4]
inc edi
add ecx, edx
mov dword [esi], ecx
cmp edi, ebx
jl 0x40f9b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test ebx, ebx
jle 0x40fb93
mov edx, dword [esp + 0x2c]
sub ebp, edx
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov eax, dword [edx - 4]
lea edx, [edx + 4]
imul eax, dword [esi]
sar eax, cl
add eax, dword [edx + ebp - 4]
mov dword [edx - 4], eax
sub ebx, 1
jne 0x40f9f6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov dword [esp + 0x18], 0
test ebx, ebx
jle 0x40fb93
mov esi, dword [esp + 0x2c]
lea ecx, [eax - 0xd]
mov edi, dword [esp + 0x20]
add esi, 0xffffff84
mov dword [esp + 0x14], ecx
nop word [eax + eax]
xor eax, eax
cmp ecx, 0x13
ja case.default.0x40fa4b
jmp dword [ecx*4 + 0x40fb9c]
mov eax, dword [esi - 4]
imul eax, dword [edi + 0x7c]
mov ecx, dword [edi + 0x78]
imul ecx, dword [esi]
add eax, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [edi + 0x74]
add eax, ecx
mov ecx, dword [esi + 8]
imul ecx, dword [edi + 0x70]
add eax, ecx
mov ecx, dword [esi + 0xc]
imul ecx, dword [edi + 0x6c]
add eax, ecx
mov ecx, dword [esi + 0x10]
imul ecx, dword [edi + 0x68]
add eax, ecx
mov ecx, dword [esi + 0x14]
imul ecx, dword [edi + 0x64]
add eax, ecx
mov ecx, dword [esi + 0x18]
imul ecx, dword [edi + 0x60]
add eax, ecx
mov ecx, dword [esi + 0x1c]
imul ecx, dword [edi + 0x5c]
add eax, ecx
mov ecx, dword [esi + 0x20]
imul ecx, dword [edi + 0x58]
add eax, ecx
mov ecx, dword [esi + 0x24]
imul ecx, dword [edi + 0x54]
add eax, ecx
mov ecx, dword [esi + 0x28]
imul ecx, dword [edi + 0x50]
add eax, ecx
mov ecx, dword [esi + 0x2c]
imul ecx, dword [edi + 0x4c]
add eax, ecx
mov ecx, dword [esi + 0x30]
imul ecx, dword [edi + 0x48]
add eax, ecx
mov ecx, dword [esi + 0x34]
imul ecx, dword [edi + 0x44]
add eax, ecx
mov ecx, dword [esi + 0x38]
imul ecx, dword [edi + 0x40]
add eax, ecx
mov ecx, dword [esi + 0x3c]
imul ecx, dword [edi + 0x3c]
add eax, ecx
mov ecx, dword [esi + 0x40]
imul ecx, dword [edi + 0x38]
add eax, ecx
mov ecx, dword [esi + 0x44]
imul ecx, dword [edi + 0x34]
add eax, ecx
mov edx, dword [esi + 0x48]
imul edx, dword [edi + 0x30]
mov ecx, dword [esi + 0x4c]
imul ecx, dword [edi + 0x2c]
add edx, ecx
mov ecx, dword [esi + 0x50]
imul ecx, dword [edi + 0x28]
add edx, ecx
mov ecx, dword [esi + 0x54]
imul ecx, dword [edi + 0x24]
add edx, ecx
mov ecx, dword [esi + 0x58]
imul ecx, dword [edi + 0x20]
add edx, ecx
mov ecx, dword [esi + 0x5c]
imul ecx, dword [edi + 0x1c]
add edx, ecx
mov ecx, dword [esi + 0x60]
imul ecx, dword [edi + 0x18]
add edx, ecx
mov ecx, dword [esi + 0x64]
imul ecx, dword [edi + 0x14]
add edx, ecx
mov ecx, dword [esi + 0x68]
imul ecx, dword [edi + 0x10]
add edx, ecx
mov ecx, dword [esi + 0x6c]
imul ecx, dword [edi + 0xc]
add edx, ecx
mov ecx, dword [esi + 0x70]
imul ecx, dword [edi + 8]
add edx, ecx
mov ecx, dword [esi + 0x74]
imul ecx, dword [edi + 4]
add edx, ecx
mov ecx, dword [esi + 0x78]
imul ecx, dword [edi]
add eax, ecx
add eax, edx
mov ecx, dword [esp + 0x28]
sar eax, cl
mov ecx, dword [esp + 0x18]
add eax, dword [ebp + ecx*4]
inc ecx
mov dword [esi + 0x7c], eax
add esi, 4
mov dword [esp + 0x18], ecx
cmp ecx, ebx
mov ecx, dword [esp + 0x14]
jl 0x40fa40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret