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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
mov ecx, dword [esi + 0x10]
lea edx, [edx + edx*2]
shl edx, 4
add edx, dword [eax + 0x24]
cmp dword [ecx + 0x150], 0
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x154]
mov dword [esp + 0x10], 0
jle 0x646c02
fldz
push ebx
add eax, 0x40
push ebp
mov dword [esp + 0x1c], eax
push edi
cmp dword [eax], 0
mov ebp, dword [eax + 4]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], 0
jle 0x646bdc
movzx eax, word [ebp + 4]
cmp eax, 3
mov edi, dword [ebp + 0xc]
ja case.default.0x646008
jmp dword [eax*4 + 0x646c08]
mov eax, dword [ebp + 0x100]
add eax, 0xf
shr eax, 4
shl eax, 4
test edi, edi
jle case.default.0x646008
fld dword [esi + 0x68]
add edx, 0x30
fmul dword [eax]
add eax, 0x20
sub edi, 1
fld dword [eax - 0x1c]
fmul dword [esi + 0x6c]
faddp st(1)
fld dword [eax - 0x18]
fmul dword [esi + 0x70]
faddp st(1)
fadd dword [esi + 0x74]
fstp dword [edx - 0x30]
fld dword [esi + 0x78]
fmul dword [eax - 0x20]
fld dword [eax - 0x1c]
fmul dword [esi + 0x7c]
faddp st(1)
fld dword [eax - 0x18]
fmul dword [esi + 0x80]
faddp st(1)
fadd dword [esi + 0x84]
fstp dword [edx - 0x2c]
fld dword [esi + 0x88]
fmul dword [eax - 0x20]
fld dword [eax - 0x1c]
fmul dword [esi + 0x8c]
faddp st(1)
fld dword [esi + 0x90]
fmul dword [eax - 0x18]
faddp st(1)
fadd dword [esi + 0x94]
fstp dword [edx - 0x28]
fld dword [eax - 0xc]
fmul dword [esi + 0x6c]
fld dword [esi + 0x68]
fmul dword [eax - 0x10]
faddp st(1)
fld dword [eax - 8]
fmul dword [esi + 0x70]
faddp st(1)
fstp dword [edx - 0x24]
fld dword [esi + 0x78]
fmul dword [eax - 0x10]
fld dword [eax - 0xc]
fmul dword [esi + 0x7c]
faddp st(1)
fld dword [eax - 8]
fmul dword [esi + 0x80]
faddp st(1)
fstp dword [edx - 0x20]
fld dword [eax - 0xc]
fmul dword [esi + 0x8c]
fld dword [esi + 0x88]
fmul dword [eax - 0x10]
faddp st(1)
fld dword [eax - 8]
fmul dword [esi + 0x90]
faddp st(1)
fstp dword [edx - 0x1c]
jne 0x646026
jmp case.default.0x646008
mov ecx, dword [ebp + 0x100]
add ecx, 0xf
shr ecx, 4
shl ecx, 4
test edi, edi
jle case.default.0x646008
mov dword [esp + 0x10], edi
fld dword [ecx]
movzx eax, byte [ecx + 0x2c]
mov eax, dword [ebp + eax*4 + 0x18]
fstp dword [esp + 0xc]
fld1
mov ebx, dword [esi + 0x120]
fld dword [esp + 0xc]
mov edi, dword [ebx + eax*4]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x6461e0
fstp st(0)
fld dword [ecx + 0x14]
fmul dword [edi + 4]
fld dword [edi]
fmul dword [ecx + 0x10]
faddp st(1)
fld dword [ecx + 0x18]
fmul dword [edi + 8]
faddp st(1)
fadd dword [edi + 0xc]
fstp dword [edx]
fld dword [ecx + 0x14]
fmul dword [edi + 0x14]
fld dword [ecx + 0x10]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [edi + 0x18]
fmul dword [ecx + 0x18]
faddp st(1)
fadd dword [edi + 0x1c]
fstp dword [edx + 4]
fld dword [edi + 0x24]
fmul dword [ecx + 0x14]
fld dword [ecx + 0x10]
fmul dword [edi + 0x20]
faddp st(1)
fld dword [edi + 0x28]
fmul dword [ecx + 0x18]
faddp st(1)
fadd dword [edi + 0x2c]
fstp dword [edx + 8]
fld dword [ecx + 0x24]
fmul dword [edi + 4]
fld dword [edi]
fmul dword [ecx + 0x20]
faddp st(1)
fld dword [ecx + 0x28]
fmul dword [edi + 8]
faddp st(1)
fstp dword [edx + 0xc]
fld dword [ecx + 0x24]
fmul dword [edi + 0x14]
fld dword [ecx + 0x20]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [edi + 0x18]
fmul dword [ecx + 0x28]
faddp st(1)
fstp dword [edx + 0x10]
fld dword [edi + 0x24]
fmul dword [ecx + 0x24]
fld dword [ecx + 0x20]
fmul dword [edi + 0x20]
faddp st(1)
fld dword [edi + 0x28]
fmul dword [ecx + 0x28]
faddp st(1)
fstp dword [edx + 0x14]
jmp 0x64655a
fld dword [edi]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [edi + 4]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [edi + 8]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [edi + 0xc]
fmul st(1)
fstp dword [esp + 0x38]
fld dword [edi + 0x10]
fmul st(1)
fstp dword [esp + 0x3c]
fld dword [edi + 0x14]
fmul st(1)
fstp dword [esp + 0x40]
fld dword [edi + 0x18]
fmul st(1)
fstp dword [esp + 0x44]
fld dword [edi + 0x1c]
fmul st(1)
fstp dword [esp + 0x48]
fld dword [edi + 0x20]
fmul st(1)
fstp dword [esp + 0x4c]
fld dword [edi + 0x24]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [edi + 0x28]
fmul st(1)
fstp dword [esp + 0x54]
fmul dword [edi + 0x2c]
fstp dword [esp + 0x58]
fld dword [ecx + 4]
fstp dword [esp + 0xc]
fld st(0)
fld dword [esp + 0xc]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x64630b
movzx eax, byte [ecx + 0x2d]
mov eax, dword [ebp + eax*4 + 0x18]
mov eax, dword [ebx + eax*4]
fld dword [eax]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 4]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [eax + 8]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [eax + 0xc]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [eax + 0x10]
fmul st(1)
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [eax + 0x14]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [eax + 0x18]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [eax + 0x1c]
fmul st(1)
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
fld dword [eax + 0x20]
fmul st(1)
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [eax + 0x24]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [eax + 0x28]
fmul st(1)
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fmul dword [eax + 0x2c]
fadd dword [esp + 0x58]
fstp dword [esp + 0x58]
jmp 0x64630d
fstp st(0)
fld dword [ecx + 8]
fstp dword [esp + 0xc]
fld st(0)
fld dword [esp + 0xc]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x6463cf
movzx eax, byte [ecx + 0x2e]
mov eax, dword [ebp + eax*4 + 0x18]
mov eax, dword [ebx + eax*4]
fld dword [eax]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 4]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [eax + 8]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [eax + 0xc]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [eax + 0x10]
fmul st(1)
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [eax + 0x14]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [eax + 0x18]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [eax + 0x1c]
fmul st(1)
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
fld dword [eax + 0x20]
fmul st(1)
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [eax + 0x24]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [eax + 0x28]
fmul st(1)
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fmul dword [eax + 0x2c]
fadd dword [esp + 0x58]
fstp dword [esp + 0x58]
jmp 0x6463d1
fstp st(0)
fld dword [ecx + 0xc]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x646491
movzx eax, byte [ecx + 0x2f]
mov eax, dword [ebp + eax*4 + 0x18]
mov eax, dword [ebx + eax*4]
fld dword [eax]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 4]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [eax + 8]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [eax + 0xc]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [eax + 0x10]
fmul st(1)
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [eax + 0x14]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [eax + 0x18]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [eax + 0x1c]
fmul st(1)
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
fld dword [eax + 0x20]
fmul st(1)
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [eax + 0x24]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [eax + 0x28]
fmul st(1)
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fmul dword [eax + 0x2c]
fadd dword [esp + 0x58]
fstp dword [esp + 0x58]
jmp 0x646493
fstp st(0)
fld dword [ecx + 0x10]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fld dword [ecx + 0x14]
fld dword [esp + 0x30]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [esp + 0x34]
fld st(0)
fmul dword [ecx + 0x18]
faddp st(2)
fld dword [esp + 0x38]
faddp st(2)
fxch st(1)
fstp dword [edx]
fld dword [ecx + 0x10]
fld dword [esp + 0x3c]
fld st(0)
fmulp st(2)
fld dword [ecx + 0x14]
fld dword [esp + 0x40]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [esp + 0x44]
fmul dword [ecx + 0x18]
faddp st(1)
fadd dword [esp + 0x48]
fstp dword [edx + 4]
fld dword [ecx + 0x10]
fmul dword [esp + 0x4c]
fld dword [ecx + 0x14]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [ecx + 0x18]
faddp st(1)
fadd dword [esp + 0x58]
fstp dword [edx + 8]
fld dword [ecx + 0x20]
fmulp st(4)
fld dword [ecx + 0x24]
fmulp st(5)
fxch st(3)
faddp st(4)
fld dword [ecx + 0x28]
fmulp st(2)
fxch st(3)
faddp st(1)
fstp dword [edx + 0xc]
fmul dword [ecx + 0x20]
fld dword [ecx + 0x24]
fmulp st(2)
faddp st(1)
fld dword [ecx + 0x28]
fmul dword [esp + 0x44]
faddp st(1)
fstp dword [edx + 0x10]
fld dword [ecx + 0x20]
fmul dword [esp + 0x4c]
fld dword [ecx + 0x24]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [ecx + 0x28]
fmul dword [esp + 0x54]
faddp st(1)
fstp dword [edx + 0x14]
fldz
add edx, 0x30
add ecx, 0x30
sub dword [esp + 0x10], 1
jne 0x646111
jmp case.default.0x646008
mov ecx, dword [ebp + 0x100]
add ecx, 0xf
shr ecx, 4
shl ecx, 4
test edi, edi
jle case.default.0x646008
mov dword [esp + 0x10], edi
fld dword [ecx]
movzx eax, byte [ecx + 0x2c]
mov eax, dword [ebp + eax*4 + 0x18]
fstp dword [esp + 0xc]
fld1
mov ebx, dword [esi + 0x120]
fld dword [esp + 0xc]
mov edi, dword [ebx + eax*4]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x64665a
fstp st(0)
fld dword [edi]
fmul dword [ecx + 0x30]
fld dword [edi + 4]
fmul dword [ecx + 0x34]
faddp st(1)
fld dword [ecx + 0x38]
fmul dword [edi + 8]
faddp st(1)
fadd dword [edi + 0xc]
fstp dword [edx]
fld dword [edi + 0x10]
fmul dword [ecx + 0x30]
fld dword [ecx + 0x34]
fmul dword [edi + 0x14]
faddp st(1)
fld dword [edi + 0x18]
fmul dword [ecx + 0x38]
faddp st(1)
fadd dword [edi + 0x1c]
fstp dword [edx + 4]
fld dword [edi + 0x24]
fmul dword [ecx + 0x34]
fld dword [ecx + 0x30]
fmul dword [edi + 0x20]
faddp st(1)
fld dword [ecx + 0x38]
fmul dword [edi + 0x28]
faddp st(1)
fadd dword [edi + 0x2c]
fstp dword [edx + 8]
fld dword [edi]
fmul dword [ecx + 0x20]
fld dword [edi + 4]
fmul dword [ecx + 0x24]
faddp st(1)
fld dword [ecx + 0x28]
fmul dword [edi + 8]
faddp st(1)
fstp dword [edx + 0xc]
fld dword [ecx + 0x24]
fmul dword [edi + 0x14]
fld dword [ecx + 0x20]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [edi + 0x18]
fmul dword [ecx + 0x28]
faddp st(1)
fstp dword [edx + 0x10]
fld dword [ecx + 0x20]
fmul dword [edi + 0x20]
fld dword [edi + 0x24]
fmul dword [ecx + 0x24]
faddp st(1)
fld dword [edi + 0x28]
fmul dword [ecx + 0x28]
faddp st(1)
fstp dword [edx + 0x14]
jmp 0x646869
fld dword [edi]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [edi + 4]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [edi + 8]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [edi + 0xc]
fmul st(1)
fstp dword [esp + 0x38]
fld dword [edi + 0x10]
fmul st(1)
fstp dword [esp + 0x3c]
fld dword [edi + 0x14]
fmul st(1)
fstp dword [esp + 0x40]
fld dword [edi + 0x18]
fmul st(1)
fstp dword [esp + 0x44]
fld dword [edi + 0x1c]
fmul st(1)
fstp dword [esp + 0x48]
fld dword [edi + 0x20]
fmul st(1)
fstp dword [esp + 0x4c]
fld dword [edi + 0x24]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [edi + 0x28]
fmul st(1)
fstp dword [esp + 0x54]
fmul dword [edi + 0x2c]
mov edi, 1
fstp dword [esp + 0x58]
fld dword [ecx + edi*4]
fstp dword [esp + 0xc]
fld st(0)
fld dword [esp + 0xc]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x646798
cmp edi, 4
jge 0x6466ef
mov al, byte [ecx + edi + 0x2c]
jmp 0x6466f3
mov al, byte [ecx + edi + 0x38]
movzx eax, al
mov eax, dword [ebp + eax*4 + 0x18]
mov eax, dword [ebx + eax*4]
fld dword [eax]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 4]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [eax + 8]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [eax + 0xc]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [eax + 0x10]
fmul st(1)
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [eax + 0x14]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [eax + 0x18]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [eax + 0x1c]
fmul st(1)
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
fld dword [eax + 0x20]
fmul st(1)
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [eax + 0x24]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [eax + 0x28]
fmul st(1)
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fmul dword [eax + 0x2c]
fadd dword [esp + 0x58]
fstp dword [esp + 0x58]
jmp 0x64679a
fstp st(0)
add edi, 1
cmp edi, 8
jl 0x6466c8
fstp st(0)
fld dword [esp + 0x30]
fld st(0)
fmul dword [ecx + 0x34]
fld dword [esp + 0x2c]
fld st(0)
fmul dword [ecx + 0x30]
faddp st(2)
fld dword [ecx + 0x38]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fadd dword [esp + 0x38]
fstp dword [edx]
fld dword [esp + 0x40]
fld st(0)
fmul dword [ecx + 0x34]
fld dword [esp + 0x3c]
fld st(0)
fmul dword [ecx + 0x30]
faddp st(2)
fld dword [ecx + 0x38]
fmul dword [esp + 0x44]
faddp st(2)
fld dword [esp + 0x48]
faddp st(2)
fxch st(1)
fstp dword [edx + 4]
fld dword [esp + 0x50]
fmul dword [ecx + 0x34]
fld dword [esp + 0x4c]
fmul dword [ecx + 0x30]
faddp st(1)
fld dword [ecx + 0x38]
fmul dword [esp + 0x54]
faddp st(1)
fadd dword [esp + 0x58]
fstp dword [edx + 8]
fld dword [ecx + 0x20]
fmulp st(3)
fld dword [ecx + 0x24]
fmulp st(5)
fxch st(2)
faddp st(4)
fld dword [ecx + 0x28]
fmulp st(3)
fxch st(3)
faddp st(2)
fxch st(1)
fstp dword [edx + 0xc]
fmul dword [ecx + 0x20]
fld dword [ecx + 0x24]
fmulp st(2)
faddp st(1)
fld dword [esp + 0x44]
fmul dword [ecx + 0x28]
faddp st(1)
fstp dword [edx + 0x10]
fld dword [ecx + 0x20]
fmul dword [esp + 0x4c]
fld dword [ecx + 0x24]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [ecx + 0x28]
faddp st(1)
fstp dword [edx + 0x14]
fldz
add edx, 0x30
add ecx, 0x40
sub dword [esp + 0x10], 1
jne 0x64658b
jmp case.default.0x646008
mov ecx, dword [ebp + 0x100]
movzx eax, word [ebp + 6]
add ecx, 0xf
shr ecx, 4
shl ecx, 4
test edi, edi
mov dword [esp + 0x28], eax
jle case.default.0x646008
mov dword [esp + 0x10], edi
fld1
lea edi, [ecx + 0x28]
fcomp dword [edi - 4]
fnstsw ax
test ah, 0x44
jp 0x64695f
mov eax, dword [edi - 8]
mov edi, dword [esi + 0x120]
mov eax, dword [edi + eax*4]
fld dword [eax]
fmul dword [ecx]
fld dword [ecx + 4]
fmul dword [eax + 4]
faddp st(1)
fld dword [ecx + 8]
fmul dword [eax + 8]
faddp st(1)
fadd dword [eax + 0xc]
fstp dword [edx]
fld dword [ecx + 4]
fmul dword [eax + 0x14]
fld dword [eax + 0x10]
fmul dword [ecx]
faddp st(1)
fld dword [ecx + 8]
fmul dword [eax + 0x18]
faddp st(1)
fadd dword [eax + 0x1c]
fstp dword [edx + 4]
fld dword [eax + 0x24]
fmul dword [ecx + 4]
fld dword [eax + 0x20]
fmul dword [ecx]
faddp st(1)
fld dword [ecx + 8]
fmul dword [eax + 0x28]
faddp st(1)
fadd dword [eax + 0x2c]
fstp dword [edx + 8]
fld dword [ecx + 0x14]
fmul dword [eax + 4]
fld dword [eax]
fmul dword [ecx + 0x10]
faddp st(1)
fld dword [ecx + 0x18]
fmul dword [eax + 8]
faddp st(1)
fstp dword [edx + 0xc]
fld dword [ecx + 0x14]
fmul dword [eax + 0x14]
fld dword [ecx + 0x10]
fmul dword [eax + 0x10]
faddp st(1)
fld dword [eax + 0x18]
fmul dword [ecx + 0x18]
faddp st(1)
fstp dword [edx + 0x10]
fld dword [eax + 0x24]
fmul dword [ecx + 0x14]
fld dword [ecx + 0x10]
fmul dword [eax + 0x20]
faddp st(1)
fld dword [eax + 0x28]
fmul dword [ecx + 0x18]
faddp st(1)
fstp dword [edx + 0x14]
jmp 0x646b9f
mov ebx, dword [edi - 8]
fld dword [edi - 4]
fstp dword [esp + 0xc]
mov eax, dword [esi + 0x120]
mov eax, dword [eax + ebx*4]
fld dword [eax]
mov ebp, dword [ebp + 0x10]
fld dword [esp + 0xc]
mov ebx, 1
cmp ebp, ebx
fld st(0)
fmulp st(2)
mov dword [esp + 0x24], ebp
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [eax + 4]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [eax + 8]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [eax + 0xc]
fmul st(1)
fstp dword [esp + 0x38]
fld dword [eax + 0x10]
fmul st(1)
fstp dword [esp + 0x3c]
fld dword [eax + 0x14]
fmul st(1)
fstp dword [esp + 0x40]
fld dword [eax + 0x18]
fmul st(1)
fstp dword [esp + 0x44]
fld dword [eax + 0x1c]
fmul st(1)
fstp dword [esp + 0x48]
fld dword [eax + 0x20]
fmul st(1)
fstp dword [esp + 0x4c]
fld dword [eax + 0x24]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [eax + 0x28]
fmul st(1)
fstp dword [esp + 0x54]
fmul dword [eax + 0x2c]
fstp dword [esp + 0x58]
jle 0x646ad7
cmp dword [edi], 0xffffffff
je 0x646ad7
fld dword [edi + 4]
fstp dword [esp + 0xc]
fld st(0)
fld dword [esp + 0xc]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x646ac7
mov ebp, dword [esi + 0x120]
mov eax, dword [edi]
mov eax, dword [ebp + eax*4]
fld dword [eax]
mov ebp, dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [eax + 4]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [eax + 8]
fmul st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fld dword [eax + 0xc]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [eax + 0x10]
fmul st(1)
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [eax + 0x14]
fmul st(1)
fadd dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [eax + 0x18]
fmul st(1)
fadd dword [esp + 0x44]
fstp dword [esp + 0x44]
fld dword [eax + 0x1c]
fmul st(1)
fadd dword [esp + 0x48]
fstp dword [esp + 0x48]
fld dword [eax + 0x20]
fmul st(1)
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [eax + 0x24]
fmul st(1)
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [eax + 0x28]
fmul st(1)
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fmul dword [eax + 0x2c]
fadd dword [esp + 0x58]
fstp dword [esp + 0x58]
jmp 0x646ac9
fstp st(0)
add ebx, 1
add edi, 8
cmp ebx, ebp
jl 0x6469f7
fstp st(0)
mov ebp, dword [esp + 0x18]
fld dword [ecx + 4]
fld dword [esp + 0x30]
fld st(0)
fmulp st(2)
fld dword [esp + 0x2c]
fld st(0)
fmul dword [ecx]
faddp st(3)
fld dword [ecx + 8]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fxch st(4)
faddp st(1)
fadd dword [esp + 0x38]
fstp dword [edx]
fld dword [ecx + 4]
fld dword [esp + 0x40]
fld st(0)
fmulp st(2)
fld dword [esp + 0x3c]
fld st(0)
fmul dword [ecx]
faddp st(3)
fld dword [ecx + 8]
fmul dword [esp + 0x44]
faddp st(3)
fld dword [esp + 0x48]
faddp st(3)
fxch st(2)
fstp dword [edx + 4]
fld dword [ecx + 4]
fmul dword [esp + 0x50]
fld dword [esp + 0x4c]
fmul dword [ecx]
faddp st(1)
fld dword [ecx + 8]
fmul dword [esp + 0x54]
faddp st(1)
fadd dword [esp + 0x58]
fstp dword [edx + 8]
fld dword [ecx + 0x10]
fmulp st(3)
fld dword [ecx + 0x14]
fmulp st(4)
fxch st(2)
faddp st(3)
fld dword [ecx + 0x18]
fmulp st(4)
fxch st(2)
faddp st(3)
fxch st(2)
fstp dword [edx + 0xc]
fmul dword [ecx + 0x10]
fld dword [ecx + 0x14]
fmulp st(2)
faddp st(1)
fld dword [ecx + 0x18]
fmul dword [esp + 0x44]
faddp st(1)
fstp dword [edx + 0x10]
fld dword [ecx + 0x10]
fmul dword [esp + 0x4c]
fld dword [ecx + 0x14]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [ecx + 0x18]
fmul dword [esp + 0x54]
faddp st(1)
fstp dword [edx + 0x14]
fldz
add ecx, dword [esp + 0x28]
add edx, 0x30
sub dword [esp + 0x10], 1
jne 0x6468a2
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x60]
add dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
add ecx, 1
add ebp, 0x128
cmp ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
jl 0x645ff8
mov ecx, dword [esp + 0x1c]
mov edi, dword [esi + 0x10]
add ecx, 1
add eax, 0x7c
cmp ecx, dword [edi + 0x150]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jl 0x645fe0
pop edi
fstp st(0)
pop ebp
pop ebx
xor eax, eax
add esp, 0x50
ret