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

Disassembly:
sub esp, 0x4c
push ebx
push esi
push edi
push ebp
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
mov ebp, dword [ebp]
mov ebx, dword [ebx]
shl ebp, 3
mov dword [esp + 0x14], ebx
mov ebx, ebp
mov ecx, dword [ecx]
add ebx, 8
mov dword [esp + 0x20], ecx
sub ecx, 3
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
imul ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov ebx, ecx
test ecx, ecx
jle 0x408d56
lea esi, [0x4a1a30]
cmp ecx, 3
jle 0x408d46
fld qword [0x46e010]
sub ebx, 4
fst qword [esi]
cmp ebx, 3
fst qword [esi + 8]
fst qword [esi + 0x10]
fstp qword [esi + 0x18]
lea esi, [esi + 0x20]
jg 0x408d26
test ebx, ebx
jle 0x408d56
fld qword [0x46e010]
dec ebx
fstp qword [esi]
lea esi, [esi + 8]
test ebx, ebx
jg 0x408d46
xor eax, eax
mov ebx, dword [esp + 0x20]
test ebx, ebx
setle al
test eax, eax
jne 0x408da0
lea esi, [0x49fad0]
cmp ebx, 3
jle 0x408d90
fld qword [0x46e010]
sub ebx, 4
fst qword [esi]
cmp ebx, 3
fst qword [esi + 8]
fst qword [esi + 0x10]
fstp qword [esi + 0x18]
lea esi, [esi + 0x20]
jg 0x408d70
test ebx, ebx
jle 0x408da0
fld qword [0x46e010]
dec ebx
fstp qword [esi]
lea esi, [esi + 8]
test ebx, ebx
jg 0x408d90
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
test eax, eax
mov ebp, dword [esp + 0x18]
jne 0x409143
mov eax, edi
mov esi, dword [esp + 0x60]
sub eax, dword [esp + 0x1c]
sub edi, dword [esp + 0x1c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x18]
add edi, edi
lea ebp, [eax + ebp + 8]
add edi, dword [esp + 0x10]
mov dword [esp + 0x34], ebp
lea edi, [edi + 8]
mov dword [esp + 0x38], edi
fld qword [0x46dfb0]
mov dword [esp + 0x3c], 1
mov ebp, dword [esp + 0x34]
fstp st(1)
fld qword [ebp]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
fstp qword [0x49fab8]
mov eax, dword [esi]
mov esi, dword [esp + 0x6c]
fld qword [edi]
mov edi, dword [esp + 0x14]
fstp qword [0x49fac0]
test edi, edi
jle 0x409108
sub esi, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
lea ecx, [eax*8 + 0x49fac8]
mov ebp, 3
mov ebx, esi
mov esi, dword [esp + 0x2c]
add ebx, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
imul eax, dword [esp + 0x14]
lea esi, [ebx + esi*8]
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
shl eax, 3
add eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
fld st(0)
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
fabs
fcomp qword [0x46e008]
fnstsw ax
sahf
setnp bl
setb ah
and bl, ah
jne 0x409108
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x54], ebp
fld qword [ebx]
fst st(2)
fabs
fcomp qword [0x46e008]
fnstsw ax
sahf
setnp bl
setb ah
and bl, ah
jne 0x4090c3
fld qword [ecx]
mov ebx, ebp
fstp st(3)
fld st(1)
inc ebx
fmul st(1)
cmp ebx, 2
mov ebx, dword [esp + 0x4c]
fstp st(4)
fld st(1)
fmul st(4)
fadd st(3)
fst st(5)
fst qword [ecx]
mov ecx, dword [esp + 0x18]
fdivp st(3)
fld st(4)
fdivp st(4)
fld st(2)
fmulp st(1)
fst st(0)
jl 0x408fde
mov eax, ebp
test ebp, ebp
jle 0x408fde
inc esi
lea ebx, [ebx*8 + 0x4a1a38]
imul esi, dword [esp + 0x18]
add esi, dword [esp + 0x50]
cmp ebp, 3
jle 0x408fb5
fld qword [ebx]
lea ebx, [ebx + 0x20]
fstp st(5)
fld qword [esi]
fstp st(6)
fld st(4)
fmul st(3)
fstp st(7)
fld st(5)
fmul st(4)
fadd st(7)
fstp qword [ebx - 0x20]
fld st(4)
fmul st(2)
fsubr st(6)
fstp qword [esi]
add esi, ecx
fld qword [ebx - 0x18]
fstp st(5)
fld qword [esi]
fstp st(6)
fld st(4)
fmul st(3)
fstp st(7)
fld st(5)
fmul st(4)
fadd st(7)
fstp qword [ebx - 0x18]
fld st(4)
fmul st(2)
fsubr st(6)
fstp qword [esi]
add esi, ecx
fld qword [ebx - 0x10]
fstp st(5)
fld qword [esi]
fstp st(6)
fld st(4)
fmul st(3)
fstp st(7)
fld st(5)
fmul st(4)
fadd st(7)
fstp qword [ebx - 0x10]
fld st(4)
fmul st(2)
fsubr st(6)
fstp qword [esi]
add esi, ecx
fld qword [ebx - 8]
fstp st(5)
fld qword [esi]
fstp st(6)
fld st(4)
fmul st(3)
fstp st(7)
fld st(5)
fmul st(4)
fadd st(7)
fstp qword [ebx - 8]
fld st(4)
fmul st(2)
fsubr st(6)
fstp qword [esi]
add esi, ecx
sub eax, 4
cmp eax, 3
jg 0x408f17
test eax, eax
jle 0x408fde
fld qword [ebx]
lea ebx, [ebx + 8]
fstp st(5)
fld qword [esi]
fstp st(6)
fld st(4)
fmul st(3)
fstp st(7)
fld st(5)
fmul st(4)
fadd st(7)
fstp qword [ebx - 8]
fld st(4)
fmul st(2)
fsubr st(6)
fstp qword [esi]
add esi, ecx
dec eax
test eax, eax
jg 0x408fb5
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x7c]
mov ebp, dword [ebp]
mov ebx, ebp
test ebp, ebp
jle 0x4090c3
sub esi, dword [esp + 0x1c]
lea ecx, [0x49fab8]
mov eax, esi
mov esi, dword [esp + 0x44]
add eax, dword [esp + 0x18]
cmp ebp, 3
lea esi, [eax + esi*8]
mov eax, dword [esp + 0x18]
jle 0x40909e
fld qword [esi]
lea ecx, [ecx + 0x20]
fst st(5)
fmul st(3)
fstp st(6)
fld st(3)
fmul qword [ecx - 0x20]
fadd st(6)
fstp qword [esi]
add esi, eax
fld st(4)
fmul st(2)
fsubr qword [ecx - 0x20]
fstp qword [ecx - 0x20]
fld qword [esi]
fst st(5)
fmul st(3)
fstp st(6)
fld st(3)
fmul qword [ecx - 0x18]
fadd st(6)
fstp qword [esi]
add esi, eax
fld st(4)
fmul st(2)
fsubr qword [ecx - 0x18]
fstp qword [ecx - 0x18]
fld qword [esi]
fst st(5)
fmul st(3)
fstp st(6)
fld st(3)
fmul qword [ecx - 0x10]
fadd st(6)
fstp qword [esi]
add esi, eax
fld st(4)
fmul st(2)
fsubr qword [ecx - 0x10]
fstp qword [ecx - 0x10]
fld qword [esi]
fst st(5)
fmul st(3)
fstp st(6)
fld st(3)
fmul qword [ecx - 8]
fadd st(6)
fstp qword [esi]
add esi, eax
sub ebx, 4
fld st(4)
cmp ebx, 3
fmul st(2)
fsubr qword [ecx - 8]
fstp qword [ecx - 8]
jg 0x409017
test ebx, ebx
jle 0x4090c3
fld qword [esi]
lea ecx, [ecx + 8]
fst st(5)
fmul st(3)
fstp st(6)
fld st(3)
fmul qword [ecx - 8]
fadd st(6)
fstp qword [esi]
add esi, eax
dec ebx
fld st(4)
test ebx, ebx
fmul st(2)
fsubr qword [ecx - 8]
fstp qword [ecx - 8]
jg 0x40909e
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
inc ebp
add esi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ebp
inc eax
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x48]
dec ebx
add esi, dword [esp + 0x4c]
dec edi
lea ebp, [ebp + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebp
mov ebp, ebx
mov dword [esp + 0x4c], esi
test edi, edi
jg 0x408e77
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x28]
inc ecx
lea esi, [esi + 4]
lea eax, [eax + 8]
lea edi, [edi + 8]
dec ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x28], ebp
test ebp, ebp
jg 0x408deb
mov dword [esp + 0x28], 1
mov esi, dword [esp + 0x24]
add esi, 2
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
test esi, esi
mov ebp, dword [esp + 0x20]
jle 0x4092a7
sub edi, 2
mov ecx, dword [esp + 0x20]
shl ebp, 3
mov edx, dword [esp + 0x14]
sub ebp, 8
dec ecx
imul ecx, dword [esp + 0x14]
neg edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x28]
inc esi
cmp dword [esp + 0x28], 4
jge 0x40919f
mov ebx, esi
jmp 0x4091a3
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x30]
sub ecx, dword [esp + 0x1c]
add edi, dword [esp + 0x18]
mov eax, ebx
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x28], ebx
add edi, ecx
dec eax
sub ebp, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
mov esi, 2
mov edx, 1
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x2c]
shl ebp, 3
add ebp, dword [esp + 0x10]
xor eax, eax
cmp dword [esp + 0x34], 3
mov dword [esp + 0x38], ebp
setle al
mov dword [esp + 0x3c], eax
fld qword [edi]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
fstp st(1)
test ecx, ecx
jle 0x409264
imul eax, edx
mov ebx, dword [esp + 0x20]
lea ebx, [ebx*8 + 0x4a1a38]
add eax, dword [esp + 0x38]
cmp dword [esp + 0x3c], 0
lea eax, [eax + 0x10]
jne 0x409251
fld qword [ebx]
sub ecx, 4
lea ebx, [ebx + 0x20]
fmul qword [eax]
lea eax, [eax + 0x20]
cmp ecx, 3
fsubp st(1)
fld qword [ebx - 0x18]
fmul qword [eax - 0x18]
fsubp st(1)
fld qword [ebx - 0x10]
fmul qword [eax - 0x10]
fsubp st(1)
fld qword [ebx - 8]
fmul qword [eax - 8]
fsubp st(1)
fst st(0)
jg 0x40921f
test ecx, ecx
jle 0x409264
fld qword [ebx]
dec ecx
lea ebx, [ebx + 8]
fmul qword [eax]
lea eax, [eax + 8]
test ecx, ecx
fsubp st(1)
fst st(0)
jg 0x409251
fst qword [edi]
mov ebx, dword [esp + 0x18]
inc edx
add edi, ebx
dec esi
test esi, esi
jg 0x4091f3
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
dec eax
mov esi, dword [esp + 0x20]
sub ebp, 8
add esi, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
dec edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edx
test edx, edx
jg 0x40918f
ffree st(6)
ffree st(5)
ffree st(4)
ffree st(3)
ffree st(2)
ffree st(1)
ffree st(0)
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret 0x20