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

Disassembly:
sub esp, 0x9c
mov eax, dword [esp + 0xa0]
cmp dword [eax], 0
mov ecx, dword [eax + 0x10]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xb0]
mov edx, dword [esi + 4]
push edi
mov edi, dword [esi]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edx
je 0x1000c74a
fldz
mov ebx, dword [esp + 0xbc]
fldz
mov ebp, dword [esp + 0xb8]
add ecx, 0xfffffffe
cmp ecx, 8
ja case.0x1000b81f.3
jmp dword [ecx*4 + 0x1000c89c]
lea ecx, [ebx + ebx*2]
fstp st(1)
lea ecx, [ebp + ecx*8]
fstp st(0)
mov dword [esp + 0x4c], ecx
lea ecx, [ebx*8]
sub ecx, ebx
lea ecx, [ebp + ecx*4]
mov dword [esp + 0x50], ecx
lea ecx, [ebx*8]
lea ecx, [ebp + ecx*4]
mov dword [esp + 0x54], ecx
lea ecx, [ebx + ebx*8]
lea ecx, [ebp + ecx*4]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0x114]
xor eax, eax
cmp ebx, 4
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edx
mov dword [ecx + 0x3fc], eax
jl 0x1000b94d
mov ecx, edi
lea eax, [ecx + 0xc]
sub ecx, edx
mov dword [esp + 0x30], ecx
mov ecx, 4
sub ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, 8
sub ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, 0xfffffffc
sub ecx, edx
mov dword [esp + 0x18], eax
lea eax, [edx + 4]
lea edx, [ebx - 4]
shr edx, 2
add edx, 1
mov dword [esp + 0x14], edx
add edx, edx
add edx, edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], edx
jmp 0x1000b8d4
mov ecx, dword [esp + 0x34]
mov edx, dword [esi]
add ecx, eax
fld dword [ecx + edx]
mov edx, dword [esp + 0x18]
fstp dword [edx - 0xc]
mov edx, dword [esi + 4]
fld dword [ecx + edx]
fstp dword [eax - 4]
mov edx, dword [esi]
fld dword [ecx + edx + 4]
mov edx, dword [esp + 0x30]
fstp dword [edx + eax]
mov edx, dword [esi + 4]
fld dword [ecx + edx + 4]
mov ecx, dword [esp + 0x3c]
fstp dword [eax]
mov edx, dword [esi]
add ecx, eax
fld dword [ecx + edx]
mov edx, dword [esp + 0x18]
fstp dword [edx - 4]
mov edx, dword [esi + 4]
fld dword [ecx + edx]
mov ecx, dword [esp + 0x40]
fstp dword [eax + 4]
mov edx, dword [esi]
add ecx, eax
fld dword [ecx + edx]
mov edx, dword [esp + 0x18]
add dword [esp + 0x18], 0x10
fstp dword [edx]
mov edx, dword [esi + 4]
fld dword [ecx + edx]
add eax, 0x10
sub dword [esp + 0x14], 1
fstp dword [eax - 8]
jne 0x1000b8d0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jge 0x1000b982
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x1000b964
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi]
fld dword [ecx + eax*4]
mov ecx, dword [esp + 0x30]
lea edx, [edx + eax*4]
fstp dword [ecx + edx]
mov ecx, dword [esi + 4]
fld dword [ecx + eax*4]
add eax, 1
cmp eax, ebx
fstp dword [edx]
jl 0x1000b960
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb0]
push ebx
push ebp
push edx
mov eax, edi
push eax
add ecx, 0xe0
push ecx
call fcn.10005dc0
add esp, 0x14
xor ecx, ecx
cmp ebx, 4
jl 0x1000bc8b
mov esi, edi
sub esi, edi
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x1c]
sub esi, edi
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x48]
sub esi, edi
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x4c]
sub esi, edi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x50]
sub esi, edi
lea eax, [ebx + ebx*4]
lea eax, [ebp + eax*4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x54]
sub esi, edi
mov eax, ebx
shl eax, 4
add eax, ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x58]
sub esi, edi
lea eax, [ebx + ebx*2]
lea eax, [ebp + eax*4]
mov dword [esp + 0x28], eax
lea eax, [ebp + ebx*8]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
lea eax, [edi + 4]
sub edi, esi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x48]
sub edi, esi
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x4c]
sub edi, esi
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0x50]
sub edi, esi
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x54]
sub edi, esi
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x58]
sub edi, esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x20]
sub edi, esi
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x4c]
sub edi, esi
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x50]
sub edi, esi
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x54]
sub edi, esi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x58]
sub edi, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x20]
sub edi, esi
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x50]
sub edi, esi
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x54]
add edx, 0xc
add ecx, 8
sub edi, esi
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x58]
sub edi, esi
lea esi, [ebx - 4]
shr esi, 2
add esi, 1
mov dword [esp + 0x34], esi
add esi, esi
add esi, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x7c], edi
jmp 0x1000bb10
mov edi, dword [esp + 0x98]
fld dword [edi + esi]
mov edi, dword [esp + 0x38]
fstp dword [eax - 4]
fld dword [ecx - 8]
fstp dword [edx - 0xc]
fld dword [edi]
mov edi, dword [esp + 0x28]
fstp dword [esi]
fld dword [edi]
mov edi, dword [esp + 0xa0]
fstp dword [edi + esi]
mov edi, dword [esp + 0x24]
fld dword [edi]
mov edi, dword [esp + 0xa8]
fstp dword [edi + esi]
mov edi, dword [esp + 0x18]
fld dword [edi]
mov edi, dword [esp + 0x7c]
fstp dword [edi + esi]
mov edi, dword [esp + 0x6c]
fld dword [edi + eax]
mov edi, dword [esp + 0x70]
fstp dword [eax]
fld dword [edi + eax]
mov edi, dword [esp + 0x64]
fstp dword [edi + eax]
mov edi, dword [esp + 0x38]
fld dword [edi + 4]
mov edi, dword [esp + 0x40]
fstp dword [edi + eax]
mov edi, dword [esp + 0x28]
fld dword [edi + 4]
mov edi, dword [esp + 0x3c]
fstp dword [edi + eax]
mov edi, dword [esp + 0x24]
fld dword [edi + 4]
mov edi, dword [esp + 0x14]
fstp dword [edi + eax]
mov edi, dword [esp + 0x18]
fld dword [edi + 4]
mov edi, dword [esp + 0x94]
fstp dword [edi + eax]
mov edi, dword [esp + 0x30]
fld dword [edi + ecx]
mov edi, dword [esp + 0x84]
fstp dword [eax + 4]
fld dword [ecx]
fstp dword [edi + ecx]
mov edi, dword [esp + 0x38]
fld dword [edi + 8]
mov edi, dword [esp + 0xa4]
fstp dword [edi + ecx]
mov edi, dword [esp + 0x28]
fld dword [edi + 8]
mov edi, dword [esp + 0x8c]
fstp dword [ecx + edi]
mov edi, dword [esp + 0x24]
fld dword [edi + 8]
mov edi, dword [esp + 0x9c]
fstp dword [ecx + edi]
mov edi, dword [esp + 0x18]
fld dword [edi + 8]
mov edi, dword [esp + 0x78]
fstp dword [ecx + edi]
mov edi, dword [esp + 0x80]
fld dword [edx + edi]
mov edi, dword [esp + 0x38]
fstp dword [eax + 8]
fld dword [ecx + 4]
fstp dword [edx]
fld dword [edi + 0xc]
mov edi, dword [esp + 0x88]
fstp dword [edx + edi]
mov edi, dword [esp + 0x28]
fld dword [edi + 0xc]
mov edi, dword [esp + 0x90]
fstp dword [edi + edx]
mov edi, dword [esp + 0x24]
fld dword [edi + 0xc]
mov edi, dword [esp + 0x68]
add dword [esp + 0x38], 0x10
fstp dword [edi + edx]
mov edi, dword [esp + 0x18]
fld dword [edi + 0xc]
mov edi, dword [esp + 0x10]
add dword [esp + 0x28], 0x10
fstp dword [edi + edx]
add dword [esp + 0x24], 0x10
add dword [esp + 0x18], 0x10
add eax, 0x10
add esi, 0x10
add ecx, 0x10
add edx, 0x10
sub dword [esp + 0x34], 1
jne 0x1000bb10
mov esi, dword [esp + 0xb4]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
cmp ecx, ebx
jge 0x1000becf
lea edx, [ecx + ebx*4]
add edx, ebx
lea edx, [ebp + edx*4]
mov dword [esp + 0x38], edx
lea edx, [ecx + ebx*4]
lea edx, [ebp + edx*4]
mov dword [esp + 0x28], edx
lea edx, [ecx + ebx*2]
add edx, ebx
lea edx, [ebp + edx*4]
mov dword [esp + 0x24], edx
lea edx, [ecx + ebx*2]
lea edx, [ebp + edx*4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
sub edx, edi
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x1c]
sub edx, edi
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x48]
sub edx, edi
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x4c]
sub edx, edi
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x50]
sub edx, edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x54]
sub edx, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x58]
lea eax, [edi + ecx*4]
sub edx, edi
mov edi, ebx
sub edi, ecx
lea esp, [esp]
mov ecx, dword [esp + 0x6c]
fld dword [eax + ecx]
mov ecx, dword [esp + 0x70]
fstp dword [eax]
add eax, 4
fld dword [eax + ecx - 4]
mov ecx, dword [esp + 0x64]
fstp dword [eax + ecx - 4]
mov ecx, dword [esp + 0x18]
fld dword [ecx]
mov ecx, dword [esp + 0x40]
add dword [esp + 0x18], 4
fstp dword [eax + ecx - 4]
mov ecx, dword [esp + 0x24]
fld dword [ecx]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x24], 4
fstp dword [eax + ecx - 4]
mov ecx, dword [esp + 0x28]
fld dword [ecx]
mov ecx, dword [esp + 0x14]
add dword [esp + 0x28], 4
fstp dword [eax + ecx - 4]
mov ecx, dword [esp + 0x38]
fld dword [ecx]
add dword [esp + 0x38], 4
sub edi, 1
fstp dword [eax + edx - 4]
jne 0x1000bd10
jmp 0x1000becf
mov ecx, dword [esi + 4]
mov edx, edi
mov dword [esp + 0x44], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x50], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0x114]
mov dword [esp + 0x58], ecx
mov dword [edx + 0x3fc], 0
jmp case.0x1000b81f.3
mov ecx, edi
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x114]
mov dword [esp + 0x5c], ecx
mov dword [edx + 0x3fc], 1
jmp case.0x1000b81f.3
mov eax, dword [eax + 0x114]
mov ecx, edi
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov dword [eax + 0x3fc], 2
jmp case.0x1000b81f.3
test ebx, ebx
mov ecx, edi
mov edi, dword [esi + 0x10]
mov dword [esp + 0x54], edi
mov edi, dword [esi + 0x14]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 8]
mov dword [esp + 0x58], edi
mov edi, dword [esi + 0x18]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], edi
jle 0x1000bebb
sub edx, ecx
mov dword [esp + 0x34], edx
mov edx, edi
sub edx, ecx
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x34]
fld dword [edi + ecx]
add ecx, 4
sub dword [esp + 0x14], 1
fmul dword [edx + ecx - 4]
fadd st(2)
fstp dword [edi + ecx - 4]
fld dword [ecx - 4]
fmul dword [edx + ecx - 4]
fadd st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fchs
fstp dword [ecx - 4]
fst dword [edx + ecx - 4]
jne 0x1000be86
mov eax, dword [eax + 0x114]
mov dword [eax + 0x3fc], 1
fstp st(1)
fstp st(0)
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + 0x10]
cmp eax, 2
je 0x1000bf1b
cmp eax, 6
je 0x1000bf1b
cmp eax, 7
je 0x1000bf1b
cmp eax, 8
je 0x1000bf1b
cmp eax, 0xa
je 0x1000bf1b
cmp eax, 9
jne 0x1000c841
mov eax, dword [esi]
mov esi, dword [esi + 4]
push ebx
push ebp
push esi
push eax
add ecx, 0x14
push ecx
call fcn.10011220
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
cmp dword [ecx + 0x3c], 0
lea eax, [ecx + 0x3c]
mov dword [esp + 0x10], eax
je 0x1000c028
xor esi, esi
cmp ebx, 4
jl 0x1000bf74
mov edi, dword [esp + 0x54]
lea edx, [ebx - 4]
lea ecx, [edi + 0xc]
shr edx, 2
sub edi, ebp
add edx, 1
lea eax, [ebp + 4]
lea esi, [edx*4]
nop
fld dword [ecx - 0xc]
add eax, 0x10
fstp dword [eax - 0x14]
add ecx, 0x10
sub edx, 1
fld dword [edi + eax - 0x10]
fstp dword [eax - 0x10]
fld dword [ecx - 0x14]
fstp dword [eax - 0xc]
fld dword [ecx - 0x10]
fstp dword [eax - 8]
jne 0x1000bf50
cmp esi, ebx
jge 0x1000bf94
mov edx, dword [esp + 0x54]
mov ecx, ebx
sub edx, ebp
lea eax, [ebp + esi*4]
sub ecx, esi
fld dword [eax + edx]
add eax, 4
sub ecx, 1
fstp dword [eax - 4]
jne 0x1000bf86
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
push ebx
push edi
push edx
call fcn.10005750
add esp, 0xc
xor esi, esi
cmp ebx, 4
jl 0x1000c008
lea edx, [ebx - 4]
mov esi, ebp
sub esi, edi
shr edx, 2
add edx, 1
lea eax, [edi + 4]
lea edi, [edx*4]
lea ecx, [ebp + 0xc]
mov dword [esp + 0x2c], edi
lea esp, [esp]
fld dword [ecx - 0xc]
add eax, 0x10
fadd dword [eax - 0x14]
add ecx, 0x10
sub edx, 1
fstp dword [eax - 0x14]
fld dword [esi + eax - 0x10]
fadd dword [eax - 0x10]
fstp dword [eax - 0x10]
fld dword [ecx - 0x14]
fadd dword [eax - 0xc]
fstp dword [eax - 0xc]
fld dword [ecx - 0x10]
fadd dword [eax - 8]
fstp dword [eax - 8]
jne 0x1000bfd0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
cmp esi, ebx
jge 0x1000c028
mov edx, ebp
mov ecx, ebx
sub edx, edi
lea eax, [edi + esi*4]
sub ecx, esi
fld dword [edx + eax]
add eax, 4
sub ecx, 1
fadd dword [eax - 4]
fstp dword [eax - 4]
jne 0x1000c017
mov eax, dword [esp + 0xb0]
push ebx
push ebp
sub esp, 0x20
add eax, 0xe0
mov edi, esp
mov ecx, 8
lea esi, [esp + 0x6c]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.10006200
mov eax, dword [esp + 0xdc]
mov esi, dword [esp + 0xe0]
add eax, 0xac
add esp, 0x2c
cmp dword [eax], 0
mov dword [esp + 0x68], eax
je 0x1000c25f
mov edi, dword [esi]
xor edx, edx
cmp ebx, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], edx
jl 0x1000c120
mov edx, dword [esp + 0x20]
sub edx, edi
mov dword [esp + 0x14], edx
mov edx, ebp
sub edx, edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x20]
sub edx, ebp
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
lea ecx, [ebp + 8]
lea eax, [edi + 4]
lea ebx, [ebx]
mov edi, dword [esp + 0x20]
fld dword [edi + edx*4]
mov edi, dword [esp + 0x14]
fstp dword [esp + 0x10]
add edx, 4
fld dword [esp + 0x10]
add eax, 0x10
fst dword [eax - 0x14]
add ecx, 0x10
fstp dword [ecx - 0x18]
fld dword [edi + eax - 0x10]
mov edi, dword [esp + 0x30]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [eax - 0x10]
fstp dword [edi + eax - 0x10]
mov edi, dword [esp + 0x24]
fld dword [edi + ecx - 0x10]
mov edi, dword [esp + 0x20]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [eax - 0xc]
fstp dword [ecx - 0x10]
fld dword [edi + edx*4 - 4]
lea edi, [ebx - 3]
cmp edx, edi
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [eax - 8]
fstp dword [ecx - 0xc]
jl 0x1000c0b0
mov edi, dword [esp + 0x18]
cmp edx, ebx
jge 0x1000c162
mov ecx, dword [esp + 0x20]
sub ecx, edi
mov dword [esp + 0x14], ecx
mov ecx, ebp
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
lea eax, [edi + edx*4]
sub ecx, edx
lea ecx, [ecx]
mov edx, dword [esp + 0x14]
fld dword [eax + edx]
mov edx, dword [esp + 0x30]
fstp dword [esp + 0x10]
add eax, 4
sub ecx, 1
fld dword [esp + 0x10]
fst dword [eax - 4]
fstp dword [eax + edx - 4]
jne 0x1000c140
mov eax, dword [esp + 0x68]
push ebx
push edi
push eax
call fcn.10005410
add esp, 0xc
xor eax, eax
cmp ebx, 4
jl 0x1000c238
mov edx, 4
sub edx, ebp
mov dword [esp + 0x40], edx
mov edx, 8
sub edx, ebp
mov dword [esp + 0x64], edx
lea ecx, [edi + 0xc]
sub edi, ebp
lea edx, [ebx - 4]
shr edx, 2
add edx, 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], edx
mov edi, 0xfffffffc
sub edi, ebp
add edx, edx
add edx, edx
lea eax, [ebp + 4]
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], edx
jmp 0x1000c1c4
mov edi, dword [esp + 0x14]
fld dword [eax - 4]
lea edx, [edi + eax]
fadd dword [ecx - 0xc]
mov edi, dword [esi]
add eax, 0x10
add ecx, 0x10
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + edi]
mov edi, dword [esp + 0x3c]
fld dword [edi + eax - 0x10]
mov edi, dword [esi]
fadd dword [eax - 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + edi + 4]
mov edx, dword [esi]
fld dword [eax - 0xc]
add edx, dword [esp + 0x40]
fadd dword [ecx - 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + eax - 0x10]
mov edx, dword [esi]
fld dword [eax - 8]
add edx, dword [esp + 0x64]
sub dword [esp + 0x34], 1
fadd dword [ecx - 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + eax - 0x10]
jne 0x1000c1c0
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
cmp eax, ebx
jge 0x1000c25f
lea ecx, [ebp + eax*4]
sub edi, ebp
fld dword [ecx + edi]
mov edx, dword [esi]
fadd dword [ecx]
add eax, 1
add ecx, 4
cmp eax, ebx
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + eax*4 - 4]
jl 0x1000c242
mov eax, dword [esp + 0xb0]
add eax, 0xc4
cmp dword [eax], 0
je 0x1000c474
mov edi, dword [esi + 4]
xor edx, edx
cmp ebx, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], edx
jl 0x1000c320
mov edx, dword [esp + 0x1c]
sub edx, edi
mov dword [esp + 0x14], edx
mov edx, ebp
sub edx, edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x1c]
sub edx, ebp
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
lea ecx, [ebp + 8]
lea eax, [edi + 4]
mov edi, dword [esp + 0x1c]
fld dword [edi + edx*4]
mov edi, dword [esp + 0x14]
fstp dword [esp + 0x10]
add edx, 4
fld dword [esp + 0x10]
add eax, 0x10
fst dword [eax - 0x14]
add ecx, 0x10
fstp dword [ecx - 0x18]
fld dword [edi + eax - 0x10]
mov edi, dword [esp + 0x30]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [eax - 0x10]
fstp dword [eax + edi - 0x10]
mov edi, dword [esp + 0x28]
fld dword [ecx + edi - 0x10]
mov edi, dword [esp + 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [eax - 0xc]
fstp dword [ecx - 0x10]
fld dword [edi + edx*4 - 4]
lea edi, [ebx - 3]
cmp edx, edi
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [eax - 8]
fstp dword [ecx - 0xc]
jl 0x1000c2b0
mov edi, dword [esp + 0x18]
cmp edx, ebx
jge 0x1000c362
mov ecx, dword [esp + 0x1c]
sub ecx, edi
mov dword [esp + 0x14], ecx
mov ecx, ebp
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
lea eax, [edi + edx*4]
sub ecx, edx
lea ecx, [ecx]
mov edx, dword [esp + 0x14]
fld dword [edx + eax]
mov edx, dword [esp + 0x30]
fstp dword [esp + 0x10]
add eax, 4
sub ecx, 1
fld dword [esp + 0x10]
fst dword [eax - 4]
fstp dword [edx + eax - 4]
jne 0x1000c340
mov eax, dword [esp + 0xb0]
push ebx
add eax, 0xc4
push edi
push eax
call fcn.10005410
add esp, 0xc
xor eax, eax
cmp ebx, 4
jl 0x1000c44c
mov edx, 4
sub edx, ebp
mov dword [esp + 0x40], edx
mov edx, 8
sub edx, ebp
mov dword [esp + 0x64], edx
lea ecx, [edi + 0xc]
sub edi, ebp
lea edx, [ebx - 4]
shr edx, 2
add edx, 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], edx
mov edi, 0xfffffffc
sub edi, ebp
add edx, edx
add edx, edx
lea eax, [ebp + 4]
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], edx
jmp 0x1000c3d4
mov edi, dword [esp + 0x14]
fld dword [eax - 4]
lea edx, [eax + edi]
fadd dword [ecx - 0xc]
mov edi, dword [esi + 4]
add ecx, 0x10
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + edi]
mov edi, dword [esp + 0x3c]
fld dword [eax + edi]
mov edi, dword [esi + 4]
fadd dword [eax]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + edi + 4]
mov edx, dword [esi + 4]
fld dword [eax + 4]
mov edi, dword [esp + 0x40]
fadd dword [ecx - 0x14]
add edx, eax
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + edi]
mov edx, dword [esi + 4]
fld dword [eax + 8]
mov edi, dword [esp + 0x64]
fadd dword [ecx - 0x10]
add edx, eax
add eax, 0x10
sub dword [esp + 0x34], 1
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + edi]
jne 0x1000c3d0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jge 0x1000c474
lea ecx, [ebp + eax*4]
sub edi, ebp
fld dword [ecx + edi]
mov edx, dword [esi + 4]
fadd dword [ecx]
add eax, 1
add ecx, 4
cmp eax, ebx
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edx + eax*4 - 4]
jl 0x1000c456
mov eax, dword [esp + 0xb0]
fldz
mov ecx, dword [eax + 0x38]
fstp dword [ecx + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push ebx
push ebp
push edx
push ecx
add eax, 0x20
push eax
call fcn.10010930
add esp, 0x14
xor ecx, ecx
cmp ebx, 4
jl 0x1000c53a
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
sub edi, ebp
mov dword [esp + 0x24], edi
mov edi, esi
sub edi, ebp
lea edx, [esi + 8]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x10], edx
sub edi, esi
mov esi, dword [esp + 0x10]
lea edx, [ebp + ebx*4]
lea eax, [ebp + 4]
mov dword [esp + 0x30], edi
jmp 0x1000c4e0
mov edi, dword [esp + 0x20]
fld dword [edi + ecx*4]
mov edi, dword [esp + 0x24]
fstp dword [eax - 4]
add ecx, 4
fld dword [esi - 8]
add eax, 0x10
fstp dword [edx]
add edx, 0x10
fld dword [edi + eax - 0x10]
mov edi, dword [esp + 0x28]
fstp dword [eax - 0x10]
add esi, 0x10
fld dword [eax + edi - 0x10]
mov edi, dword [esp + 0x30]
fstp dword [edx - 0xc]
fld dword [edi + esi - 0x10]
mov edi, dword [esp + 0x20]
fstp dword [eax - 0xc]
fld dword [esi - 0x10]
fstp dword [edx - 8]
fld dword [edi + ecx*4 - 4]
lea edi, [ebx - 3]
cmp ecx, edi
fstp dword [eax - 8]
fld dword [esi - 0xc]
fstp dword [edx - 4]
jl 0x1000c4e0
cmp ecx, ebx
mov edi, dword [esp + 0x20]
jge 0x1000c582
lea edx, [ecx + ebx]
lea esi, [ebp + edx*4]
mov edx, edi
sub edx, ebp
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
sub edx, ebp
mov dword [esp + 0x28], edx
mov edx, ebx
lea eax, [ebp + ecx*4]
sub edx, ecx
mov ecx, dword [esp + 0x24]
fld dword [eax + ecx]
mov ecx, dword [esp + 0x28]
fstp dword [eax]
add eax, 4
fld dword [eax + ecx - 4]
add esi, 4
sub edx, 1
fstp dword [esi - 4]
jne 0x1000c563
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xb0]
push ebx
push edx
add esi, 0xf4
push edi
push esi
call fcn.1000d150
push esi
call fcn.100055d0
fstp dword [esp + 0x24]
add esp, 0x14
cmp dword [esi], 0
je 0x1000c725
fld dword [esp + 0x10]
xor esi, esi
cmp ebx, 4
fld1
mov dword [esp + 0x2c], esi
jl 0x1000c6c4
mov ecx, dword [esp + 0x1c]
fld st(1)
mov esi, ebp
fsubr st(1)
fldz
sub esi, edi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1c]
sub esi, edi
mov dword [esp + 0x10], esi
mov esi, ebp
add ecx, 8
sub esi, dword [esp + 0x1c]
lea edx, [ebp + ebx*4]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x2c]
lea eax, [edi + 4]
fld dword [ebp + esi*4]
mov edi, dword [esp + 0x14]
fmul st(2)
add esi, 4
add eax, 0x10
add edx, 0x10
fadd st(1)
add ecx, 0x10
fld st(4)
fmul dword [eax - 0x14]
fadd st(2)
faddp st(1)
fstp dword [eax - 0x14]
fld dword [ecx - 0x18]
fmul st(4)
fadd st(1)
fld dword [edx - 0x10]
fmul st(3)
fadd st(2)
faddp st(1)
fstp dword [ecx - 0x18]
fld dword [edi + eax - 0x10]
mov edi, dword [esp + 0x10]
fmul st(2)
fadd st(1)
fld st(4)
fmul dword [eax - 0x10]
fadd st(2)
faddp st(1)
fstp dword [eax - 0x10]
fld dword [edx - 0xc]
fmul st(2)
fadd st(1)
fld dword [edi + eax - 0x10]
fmul st(5)
fadd st(2)
faddp st(1)
fstp dword [edi + eax - 0x10]
mov edi, dword [esp + 0x68]
fld dword [edi + ecx - 0x10]
lea edi, [ebx - 3]
cmp esi, edi
fmul st(2)
fadd st(1)
fld dword [eax - 0xc]
fmul st(5)
fadd st(2)
faddp st(1)
fstp dword [eax - 0xc]
fld dword [edx - 8]
fmul st(2)
fadd st(1)
fld st(4)
fmul dword [ecx - 0x10]
fadd st(2)
faddp st(1)
fstp dword [ecx - 0x10]
fld dword [ebp + esi*4 - 4]
fmul st(2)
fadd st(1)
fld dword [eax - 8]
fmul st(5)
fadd st(2)
faddp st(1)
fstp dword [eax - 8]
fld dword [edx - 4]
fmul st(2)
fadd st(1)
fld dword [ecx - 0xc]
fmul st(5)
fadd st(2)
faddp st(1)
fstp dword [ecx - 0xc]
jl 0x1000c5fb
mov edi, dword [esp + 0x20]
fstp st(1)
jmp 0x1000c6c6
fldz
cmp esi, ebx
jge 0x1000c71f
lea ecx, [esi + ebx]
fld st(2)
lea edx, [ebp + ecx*4]
fsubp st(2)
mov ecx, dword [esp + 0x1c]
sub ebp, edi
mov dword [esp + 0x14], ebp
mov ebp, ebx
sub ecx, edi
lea eax, [edi + esi*4]
sub ebp, esi
mov esi, dword [esp + 0x14]
fld dword [esi + eax]
add eax, 4
fmul st(2)
add edx, 4
sub ebp, 1
fadd st(1)
fld st(3)
fmul dword [eax - 4]
fadd st(2)
faddp st(1)
fstp dword [eax - 4]
fld dword [ecx + eax - 4]
fmul st(3)
fadd st(1)
fld dword [edx - 4]
fmul st(3)
fadd st(2)
faddp st(1)
fstp dword [ecx + eax - 4]
jne 0x1000c6e8
fstp st(0)
fstp st(1)
fstp st(0)
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xb0]
push ebx
push edx
add eax, 0x6c
push edi
push eax
call fcn.1000ae70
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
cmp ecx, 6
je 0x1000c84c
cmp ecx, 7
je 0x1000c84c
cmp ecx, 8
je 0x1000c84c
cmp ecx, 0xa
je 0x1000c84c
mov ebx, dword [esp + 0xbc]
fldz
xor ecx, ecx
cmp ebx, 4
jl 0x1000c815
lea edi, [ebx - 3]
mov edx, dword [esi]
fld dword [eax + 0xc]
fmul dword [edx + ecx*4]
lea edx, [edx + ecx*4]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi + 4]
fld dword [eax + 0xc]
lea edx, [edx + ecx*4]
fmul dword [edx]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi]
fld dword [edx + ecx*4 + 4]
lea edx, [edx + ecx*4 + 4]
fmul dword [eax + 0xc]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi + 4]
fld dword [eax + 0xc]
lea edx, [edx + ecx*4 + 4]
fmul dword [edx]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi]
fld dword [edx + ecx*4 + 8]
lea edx, [edx + ecx*4 + 8]
fmul dword [eax + 0xc]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi + 4]
fld dword [edx + ecx*4 + 8]
lea edx, [edx + ecx*4 + 8]
fmul dword [eax + 0xc]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi]
fld dword [edx + ecx*4 + 0xc]
lea edx, [edx + ecx*4 + 0xc]
fmul dword [eax + 0xc]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi + 4]
fld dword [edx + ecx*4 + 0xc]
lea edx, [edx + ecx*4 + 0xc]
fmul dword [eax + 0xc]
add ecx, 4
cmp ecx, edi
fadd st(1)
fstp dword [edx]
jl 0x1000c785
cmp ecx, ebx
jge 0x1000c83f
mov edx, dword [esi]
fld dword [eax + 0xc]
fmul dword [edx + ecx*4]
lea edx, [edx + ecx*4]
fadd st(1)
fstp dword [edx]
mov edx, dword [esi + 4]
fld dword [edx + ecx*4]
lea edx, [edx + ecx*4]
fmul dword [eax + 0xc]
add ecx, 1
cmp ecx, ebx
fadd st(1)
fstp dword [edx]
jl 0x1000c819
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret
mov eax, dword [eax + 0xf0]
mov ecx, dword [eax + 0x22c]
test ecx, ecx
jle 0x1000c862
lea edi, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb0]
push ecx
sub esp, 0x20
add edx, 0xe0
mov edi, esp
mov ecx, 8
lea esi, [esp + 0x68]
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.10005af0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret