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

Disassembly:
sub esp, 0x58
fild dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push ebx
push ebp
fdivr dword [0x10044d80]
push esi
push edi
mov edi, dword [esp + 0x70]
lea esi, [edi + 1]
sar esi, 1
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x78]
lea esi, [edx - 1]
sar esi, 1
mov dword [esp + 0x4c], esi
mov esi, edx
fld st(0)
imul esi, dword [esp + 0x74]
fcos
mov dword [esp + 0x1c], esi
mov esi, edx
fstp dword [esp + 0x64]
imul esi, edi
fsin
mov dword [esp + 0x24], esi
fstp dword [esp + 0x5c]
cmp edx, 1
je 0x10002955
xor ebp, ebp
cmp ebx, 4
jl 0x10002111
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
lea edi, [ebp + 0xc]
sub ebp, dword [esp + 0x84]
add esi, 4
mov dword [esp + 0x6c], ebp
lea ebp, [ebx - 4]
shr ebp, 2
inc ebp
mov dword [esp + 0x44], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x48], ebp
fld dword [edi - 0xc]
mov ebp, dword [esp + 0x6c]
fstp dword [esi - 4]
add esi, 0x10
fld dword [esi + ebp - 0x10]
add edi, 0x10
sub dword [esp + 0x44], 1
fstp dword [esi - 0x10]
fld dword [edi - 0x14]
fstp dword [esi - 0xc]
fld dword [edi - 0x10]
fstp dword [esi - 8]
jne 0x100020e3
mov ebp, dword [esp + 0x48]
cmp ebp, ebx
jge 0x1000214e
mov edi, dword [esp + 0x80]
sub edi, dword [esp + 0x84]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x6c], edi
mov edi, ebx
lea esi, [esi + ebp*4]
sub edi, ebp
mov ebp, dword [esp + 0x6c]
lea esp, [esp]
fld dword [esi + ebp]
add esi, 4
sub edi, 1
fstp dword [esi - 4]
jne 0x10002140
xor esi, esi
cmp dword [esp + 0x70], 1
jle 0x10002206
mov edi, dword [esp + 0x70]
dec edi
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x74]
jmp 0x10002174
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x1c]
cmp edi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x6c], 0
jl 0x100021c9
lea ebp, [edi - 4]
shr ebp, 2
inc ebp
lea edi, [ebp*4]
mov dword [esp + 0x6c], edi
jmp 0x100021a0
fld dword [ecx + esi*4]
fstp dword [eax + esi*4]
add esi, edx
fld dword [ecx + esi*4]
fstp dword [eax + esi*4]
add esi, edx
fld dword [ecx + esi*4]
fstp dword [eax + esi*4]
add esi, edx
fld dword [ecx + esi*4]
fstp dword [eax + esi*4]
add esi, edx
sub ebp, 1
jne 0x100021a0
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x6c], edi
jge 0x100021fb
mov ebp, ecx
sub ebp, eax
sub edi, dword [esp + 0x6c]
lea esi, [eax + esi*4]
mov dword [esp + 0x28], ebp
jmp 0x100021e4
mov ebp, dword [esp + 0x28]
fld dword [esi + ebp]
lea ebp, [edx*4]
fstp dword [esi]
add esi, ebp
sub edi, 1
jne 0x100021e0
mov edi, dword [esp + 0x74]
sub dword [esp + 0x48], 1
jne 0x10002170
mov esi, dword [esp + 0x74]
mov ebp, edx
neg ebp
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x10], 0
jle 0x10002351
cmp dword [esp + 0x70], 1
jle 0x1000258c
mov edi, dword [esp + 0x88]
lea edi, [edi + ebp*4 - 4]
lea esi, [edx*4]
mov dword [esp + 0x48], edi
mov edi, eax
mov ebp, ecx
sub ebp, esi
sub edi, esi
mov esi, dword [esp + 0x70]
sub ebp, 4
dec esi
mov dword [esp + 0x2c], esi
jmp 0x10002264
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
add esi, esi
add esi, esi
add edi, esi
add ebp, esi
lea esi, [edx*4]
add dword [esp + 0x48], esi
cmp dword [esp + 0x74], 0
mov dword [esp + 0x38], edi
mov dword [esp + 0x60], ebp
jle 0x10002341
mov esi, edi
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x30], esi
lea esi, [edx*4]
add dword [esp + 0x6c], esi
add dword [esp + 0x44], esi
cmp edx, 2
jle 0x10002336
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x48]
mov ebp, eax
sub ebp, ecx
mov dword [esp + 0x3c], ebp
lea ebp, [edx - 3]
shr ebp, 1
inc ebp
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x34], ebp
lea ebx, [ebx]
movss xmm0, dword [esi + 8]
mulss xmm0, dword [edi + 4]
movss xmm1, dword [esi + 0xc]
mulss xmm1, dword [edi + 8]
mov ebp, dword [esp + 0x3c]
add dword [esp + 0x40], 8
add esi, 8
add edi, 8
sub dword [esp + 0x34], 1
addss xmm0, xmm1
movss dword [esi + ebp], xmm0
movss xmm0, dword [esi + 4]
movss xmm1, dword [edi]
mulss xmm0, dword [edi - 4]
mulss xmm1, dword [esi]
mov ebp, dword [esp + 0x40]
subss xmm0, xmm1
movss dword [ebp], xmm0
jne 0x100022e0
mov ebp, dword [esp + 0x60]
sub dword [esp + 0x30], 1
jne 0x100022a0
sub dword [esp + 0x2c], 1
jne 0x10002260
jmp 0x1000258c
cmp dword [esp + 0x70], 1
jle 0x1000258c
lea esi, [ebp - 1]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x88]
lea esi, [esi + ebp*4 - 4]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x70]
dec esi
mov dword [esp + 0x38], esi
add dword [esp + 0x48], edx
lea esi, [edx*4]
add dword [esp + 0x44], esi
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x1c]
add ebp, edx
cmp edx, 2
mov dword [esp + 0x54], ebp
mov dword [esp + 0x10], esi
jle 0x10002581
mov edi, dword [esp + 0x48]
sub edi, ebp
lea ebp, [edi + esi + 1]
mov edi, dword [esp + 0x44]
lea esi, [edx - 3]
shr esi, 1
inc esi
mov dword [esp + 0x40], esi
jmp 0x100023c4
mov ebp, dword [esp + 0x60]
add ebp, 2
add edi, 8
cmp dword [esp + 0x74], 4
mov dword [esp + 0x60], ebp
mov esi, ebp
mov dword [esp + 0x6c], 0
jl 0x100024fd
mov ebp, dword [esp + 0x74]
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x58], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x58]
mov edi, edi
movss xmm1, dword [ecx + esi*4]
mulss xmm1, dword [edi]
movss xmm0, dword [edi - 4]
mulss xmm0, dword [ecx + esi*4 - 4]
addss xmm0, xmm1
movss dword [eax + esi*4 - 4], xmm0
movss xmm0, dword [edi - 4]
mulss xmm0, dword [ecx + esi*4]
movss xmm1, dword [edi]
mulss xmm1, dword [ecx + esi*4 - 4]
subss xmm0, xmm1
movss dword [eax + esi*4], xmm0
movss xmm0, dword [edi - 4]
add esi, edx
mulss xmm0, dword [ecx + esi*4 - 4]
movss xmm1, dword [ecx + esi*4]
mulss xmm1, dword [edi]
addss xmm0, xmm1
movss dword [eax + esi*4 - 4], xmm0
movss xmm0, dword [edi - 4]
mulss xmm0, dword [ecx + esi*4]
movss xmm1, dword [edi]
mulss xmm1, dword [ecx + esi*4 - 4]
subss xmm0, xmm1
movss dword [eax + esi*4], xmm0
movss xmm0, dword [edi - 4]
add esi, edx
mulss xmm0, dword [ecx + esi*4 - 4]
movss xmm1, dword [ecx + esi*4]
mulss xmm1, dword [edi]
addss xmm0, xmm1
movss dword [eax + esi*4 - 4], xmm0
movss xmm0, dword [edi - 4]
mulss xmm0, dword [ecx + esi*4]
movss xmm1, dword [edi]
mulss xmm1, dword [ecx + esi*4 - 4]
subss xmm0, xmm1
movss dword [eax + esi*4], xmm0
movss xmm0, dword [edi - 4]
add esi, edx
mulss xmm0, dword [ecx + esi*4 - 4]
movss xmm1, dword [ecx + esi*4]
mulss xmm1, dword [edi]
addss xmm0, xmm1
movss dword [eax + esi*4 - 4], xmm0
movss xmm0, dword [edi - 4]
mulss xmm0, dword [ecx + esi*4]
movss xmm1, dword [edi]
mulss xmm1, dword [ecx + esi*4 - 4]
subss xmm0, xmm1
movss dword [eax + esi*4], xmm0
add esi, edx
sub ebp, 1
jne 0x10002400
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x10002572
mov ebx, eax
sub ebx, ecx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x74]
sub ebx, dword [esp + 0x6c]
lea ebp, [eax + esi*4]
lea esi, [ecx + esi*4 - 4]
mov dword [esp + 0x6c], ebx
movss xmm1, dword [esi]
mulss xmm1, dword [edi - 4]
movss xmm0, dword [edi]
mulss xmm0, dword [esi + 4]
mov ebx, dword [esp + 0x3c]
addss xmm0, xmm1
movss dword [esi + ebx], xmm0
movss xmm1, dword [esi]
movss xmm0, dword [edi - 4]
mulss xmm0, dword [esi + 4]
mulss xmm1, dword [edi]
lea ebx, [edx*4]
subss xmm0, xmm1
movss dword [ebp], xmm0
add esi, ebx
add ebp, ebx
sub dword [esp + 0x6c], 1
jne 0x10002522
mov ebx, dword [esp + 0x78]
sub dword [esp + 0x40], 1
jne 0x100023c0
mov ebp, dword [esp + 0x54]
sub dword [esp + 0x38], 1
jne 0x1000237b
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x74]
imul ebp, dword [esp + 0x70]
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x10], 0
jge 0x10002821
cmp dword [esp + 0x14], 1
jle 0x10002955
mov esi, dword [esp + 0x50]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x14]
dec esi
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x1c]
add dword [esp + 0x10], esi
add dword [esp + 0x48], esi
sub ebp, esi
cmp edx, 2
mov dword [esp + 0x18], ebp
jle 0x10002811
sub ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
lea esi, [edx - 3]
shr esi, 1
inc esi
mov dword [esp + 0x60], ebp
mov dword [esp + 0x38], esi
jmp 0x10002604
mov ebp, dword [esp + 0x60]
add edi, 2
mov dword [esp + 0x3c], edi
mov esi, edi
add edi, ebp
mov ebp, dword [esp + 0x74]
cmp ebp, 4
mov dword [esp + 0x6c], 0
jl 0x10002765
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x58], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x58]
jmp 0x10002640
add edi, edx
movss xmm0, dword [eax + edi*4 - 4]
add esi, edx
addss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + esi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + edi*4]
movss dword [ecx + edi*4 - 4], xmm0
movss xmm0, dword [eax + edi*4]
addss xmm0, dword [eax + esi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + edi*4], xmm0
add edi, edx
movss xmm0, dword [eax + edi*4 - 4]
add esi, edx
addss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + esi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + edi*4]
movss dword [ecx + edi*4 - 4], xmm0
movss xmm0, dword [eax + edi*4]
addss xmm0, dword [eax + esi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + edi*4], xmm0
add edi, edx
movss xmm0, dword [eax + edi*4 - 4]
add esi, edx
addss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + esi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + edi*4]
movss dword [ecx + edi*4 - 4], xmm0
movss xmm0, dword [eax + edi*4]
addss xmm0, dword [eax + esi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + edi*4], xmm0
add edi, edx
movss xmm0, dword [eax + edi*4 - 4]
add esi, edx
sub ebp, 1
addss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + esi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + edi*4]
movss dword [ecx + edi*4 - 4], xmm0
movss xmm0, dword [eax + edi*4]
addss xmm0, dword [eax + esi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + edi*4], xmm0
jne 0x10002640
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x100027fe
lea ebp, [ecx + edi*4]
mov dword [esp + 0x40], ebp
lea ebp, [ecx + esi*4]
mov dword [esp + 0x44], ebp
mov ebp, ecx
sub ebp, eax
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x74]
sub ebp, dword [esp + 0x6c]
lea ebx, [edx*4]
lea esi, [eax + esi*4 - 4]
lea edi, [eax + edi*4 - 4]
mov dword [esp + 0x6c], ebp
movss xmm0, dword [esi + ebx]
addss xmm0, dword [edi + ebx]
mov ebp, dword [esp + 0x28]
add dword [esp + 0x44], ebx
add dword [esp + 0x40], ebx
add esi, ebx
movss dword [esi + ebp], xmm0
movss xmm0, dword [esi + 4]
subss xmm0, dword [edi + ebx + 4]
add edi, ebx
sub dword [esp + 0x6c], 1
movss dword [edi + ebp], xmm0
movss xmm0, dword [edi + 4]
addss xmm0, dword [esi + 4]
mov ebp, dword [esp + 0x44]
movss dword [ebp], xmm0
movss xmm0, dword [edi]
mov ebp, dword [esp + 0x40]
subss xmm0, dword [esi]
movss dword [ebp], xmm0
jne 0x100027a0
mov ebx, dword [esp + 0x78]
sub dword [esp + 0x38], 1
mov edi, dword [esp + 0x3c]
jne 0x10002600
mov ebp, dword [esp + 0x18]
sub dword [esp + 0x34], 1
jne 0x100025c7
jmp 0x10002955
cmp dword [esp + 0x14], 1
jle 0x10002955
lea esi, [ecx + ebp*4]
mov dword [esp + 0x48], esi
lea esi, [eax + ebp*4 - 4]
mov dword [esp + 0x44], esi
lea esi, [eax - 4]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x14]
dec esi
mov edi, ecx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x1c]
add esi, esi
add esi, esi
add dword [esp + 0x6c], esi
sub dword [esp + 0x48], esi
sub dword [esp + 0x44], esi
add edi, esi
cmp dword [esp + 0x74], 0
mov dword [esp + 0x60], edi
jle 0x1000294a
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], esi
cmp edx, 2
jle 0x1000291e
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x30]
mov ebx, ecx
lea ebp, [edx - 3]
sub ebx, eax
shr ebp, 1
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x28], ebx
inc ebp
movss xmm0, dword [esi + 8]
addss xmm0, dword [edi + 8]
mov ebx, dword [esp + 0x28]
add dword [esp + 0x40], 8
add dword [esp + 0x3c], 8
add esi, 8
movss dword [ebx + esi], xmm0
movss xmm0, dword [esi + 4]
subss xmm0, dword [edi + 0xc]
add edi, 8
sub ebp, 1
movss dword [ebx + edi], xmm0
movss xmm0, dword [edi + 4]
addss xmm0, dword [esi + 4]
mov ebx, dword [esp + 0x40]
movss dword [ebx], xmm0
movss xmm0, dword [edi]
mov ebx, dword [esp + 0x3c]
subss xmm0, dword [esi]
movss dword [ebx], xmm0
jne 0x100028c1
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x2c]
lea esi, [edx*4]
add dword [esp + 0x38], esi
add dword [esp + 0x34], esi
add dword [esp + 0x30], esi
add edi, esi
sub dword [esp + 0x20], 1
mov dword [esp + 0x2c], edi
jne 0x10002896
mov edi, dword [esp + 0x60]
sub dword [esp + 0x18], 1
jne 0x1000284d
xor ebp, ebp
cmp ebx, 4
jl 0x100029be
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
lea edi, [ebp + 0xc]
sub ebp, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x6c], ebp
lea ebp, [ebx - 4]
shr ebp, 2
inc ebp
mov dword [esp + 0x44], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x48], ebp
mov edi, edi
fld dword [edi - 0xc]
mov ebp, dword [esp + 0x6c]
fstp dword [esi - 4]
add esi, 0x10
fld dword [esi + ebp - 0x10]
add edi, 0x10
sub dword [esp + 0x44], 1
fstp dword [esi - 0x10]
fld dword [edi - 0x14]
fstp dword [esi - 0xc]
fld dword [edi - 0x10]
fstp dword [esi - 8]
jne 0x10002990
mov ebp, dword [esp + 0x48]
cmp ebp, ebx
jge 0x100029f4
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x80]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x6c], edi
mov edi, ebx
lea esi, [esi + ebp*4]
sub edi, ebp
mov ebp, dword [esp + 0x6c]
fld dword [esi + ebp]
add esi, 4
sub edi, 1
fstp dword [esi - 4]
jne 0x100029e6
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x14]
imul esi, ebx
cmp edi, 1
mov dword [esp + 0x50], esi
jle 0x10002b75
mov ebp, esi
mov esi, edx
sub ebp, edx
neg esi
dec edi
mov dword [esp + 0x48], edi
jmp 0x10002a28
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x1c]
add esi, edi
sub ebp, edi
cmp dword [esp + 0x74], 4
mov dword [esp + 0x60], esi
mov dword [esp + 0x58], ebp
mov edi, ebp
mov dword [esp + 0x6c], 0
jl 0x10002b01
mov ebp, dword [esp + 0x74]
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x54], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x54]
jmp 0x10002a70
add esi, edx
movss xmm0, dword [eax + esi*4]
add edi, edx
addss xmm0, dword [eax + edi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4]
subss xmm0, dword [eax + esi*4]
movss dword [ecx + edi*4], xmm0
add esi, edx
movss xmm0, dword [eax + esi*4]
add edi, edx
addss xmm0, dword [eax + edi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4]
subss xmm0, dword [eax + esi*4]
movss dword [ecx + edi*4], xmm0
add esi, edx
movss xmm0, dword [eax + esi*4]
add edi, edx
addss xmm0, dword [eax + edi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4]
subss xmm0, dword [eax + esi*4]
movss dword [ecx + edi*4], xmm0
add esi, edx
movss xmm0, dword [eax + esi*4]
add edi, edx
sub ebp, 1
addss xmm0, dword [eax + edi*4]
movss dword [ecx + esi*4], xmm0
movss xmm0, dword [eax + edi*4]
subss xmm0, dword [eax + esi*4]
movss dword [ecx + edi*4], xmm0
jne 0x10002a70
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x10002b62
mov ebp, ecx
sub ebp, eax
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x74]
sub ebp, dword [esp + 0x6c]
lea esi, [eax + esi*4]
lea edi, [eax + edi*4]
mov dword [esp + 0x6c], ebp
jmp 0x10002b30
lea ebp, [edx*4]
movss xmm0, dword [edi + ebp]
addss xmm0, dword [esi + ebp]
add edi, ebp
add esi, ebp
sub dword [esp + 0x6c], 1
mov ebp, dword [esp + 0x28]
movss dword [esi + ebp], xmm0
movss xmm0, dword [edi]
subss xmm0, dword [esi]
movss dword [edi + ebp], xmm0
jne 0x10002b30
sub dword [esp + 0x48], 1
jne 0x10002a20
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
movss xmm5, dword [0x10030508]
xorps xmm3, xmm3
dec ecx
imul ecx, ebx
xor ebp, ebp
cmp edi, 1
mov dword [esp + 0x3c], ecx
jle 0x10003081
mov ecx, dword [esp + 0x84]
movss xmm6, dword [esp + 0x64]
movss xmm0, dword [esp + 0x5c]
lea edi, [ecx + 8]
lea ecx, [ecx + esi*4 + 8]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x44], edi
mov dword [esp + 0x60], ecx
jmp 0x10002bd4
mov esi, dword [esp + 0x18]
lea ecx, [ebx*4]
add dword [esp + 0x44], ecx
sub dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
movaps xmm2, xmm5
movaps xmm1, xmm3
add ebp, ebx
mulss xmm5, xmm0
mulss xmm3, xmm6
sub esi, ebx
addss xmm5, xmm3
mulss xmm2, xmm6
mulss xmm1, xmm0
xor edi, edi
cmp ebx, 4
subss xmm2, xmm1
movaps xmm3, xmm5
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], esi
movaps xmm5, xmm2
mov dword [esp + 0x20], ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
jl 0x10002d7d
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x80]
lea esi, [ecx + esi*4 + 8]
lea edi, [ecx + 8]
lea ecx, [ecx + ebx*4 + 8]
mov dword [esp + 0x30], ecx
lea ecx, [ebx - 4]
shr ecx, 2
inc ecx
mov dword [esp + 0x34], edi
lea edi, [ecx*4]
add ebp, edi
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x18]
add ebp, edi
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x3c]
add ebp, edi
mov dword [esp + 0x48], ebp
lea ebp, [edi + ebx]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x2c], ebp
jmp 0x10002c90
mov ebp, dword [esp + 0x30]
movss xmm1, dword [ebp - 8]
mov ebp, dword [esp + 0x34]
mulss xmm1, xmm2
addss xmm1, dword [ebp - 8]
mov ebp, dword [esp + 0x6c]
movss dword [esi - 8], xmm1
movss xmm1, dword [ebp - 8]
mov ebp, dword [esp + 0x38]
mulss xmm1, xmm3
movss dword [ebp - 8], xmm1
mov ebp, dword [esp + 0x30]
movss xmm1, dword [ebp - 4]
mov ebp, dword [esp + 0x34]
mulss xmm1, xmm2
addss xmm1, dword [ebp - 4]
mov ebp, dword [esp + 0x6c]
movss dword [esi - 4], xmm1
movss xmm1, dword [ebp - 4]
mov ebp, dword [esp + 0x38]
mulss xmm1, xmm3
movss dword [ebp - 4], xmm1
mov ebp, dword [esp + 0x30]
movss xmm1, dword [ebp]
mov ebp, dword [esp + 0x34]
mulss xmm1, xmm2
addss xmm1, dword [ebp]
mov ebp, dword [esp + 0x6c]
movss dword [esi], xmm1
movss xmm1, dword [ebp]
mov ebp, dword [esp + 0x38]
mulss xmm1, xmm3
movss dword [ebp], xmm1
mov ebp, dword [esp + 0x30]
movss xmm1, dword [ebp + 4]
mov ebp, dword [esp + 0x34]
add dword [esp + 0x30], 0x10
add dword [esp + 0x34], 0x10
mulss xmm1, xmm2
addss xmm1, dword [ebp + 4]
mov ebp, dword [esp + 0x6c]
add dword [esp + 0x6c], 0x10
movss dword [esi + 4], xmm1
movss xmm1, dword [ebp + 4]
mov ebp, dword [esp + 0x38]
mulss xmm1, xmm3
movss dword [ebp + 4], xmm1
add ebp, 0x10
add esi, 0x10
sub ecx, 1
mov dword [esp + 0x38], ebp
jne 0x10002c90
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
cmp edi, ebx
jge 0x10002e0b
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + esi*4]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + esi*4]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + esi*4]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x2c]
lea ecx, [esi + ecx*4]
mov esi, dword [esp + 0x80]
movaps xmm1, xmm2
mulss xmm1, dword [ecx]
addss xmm1, dword [esi + edi*4]
mov esi, dword [esp + 0x6c]
add dword [esp + 0x6c], 4
movss dword [esi], xmm1
mov esi, dword [esp + 0x48]
movss xmm1, dword [esi]
mov esi, dword [esp + 0x38]
add dword [esp + 0x38], 4
add dword [esp + 0x48], 4
inc edi
add ecx, 4
cmp edi, ebx
mulss xmm1, xmm3
movss dword [esi], xmm1
jl 0x10002dc5
cmp dword [esp + 0x14], 2
mov ecx, dword [esp + 0x3c]
movaps xmm4, xmm2
movaps xmm1, xmm3
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ecx
jle 0x10003076
mov ecx, dword [esp + 0x80]
lea esi, [ecx + ebx*4 + 8]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x28]
lea ecx, [ecx + esi*4 + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffe
mov dword [esp + 0x58], ecx
mov edi, edi
mov edi, dword [esp + 0x20]
sub dword [esp + 0x28], ebx
mov esi, dword [esp + 0x18]
add edi, ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x28]
lea ecx, [ebx*4]
add dword [esp + 0x30], ecx
sub dword [esp + 0x38], ecx
movaps xmm0, xmm4
movaps xmm7, xmm1
mulss xmm4, xmm3
mov dword [esp + 0x50], edi
mulss xmm0, xmm2
mulss xmm7, xmm3
mulss xmm1, xmm2
xor edi, edi
cmp ebx, 4
subss xmm0, xmm7
addss xmm1, xmm4
movaps xmm4, xmm0
mov ecx, ebp
jl 0x10002fdd
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
add ebx, 0xfffffffc
shr ebx, 2
inc ebx
mov dword [esp + 0x6c], edi
lea edi, [ebx*4]
add ebp, edi
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x18]
add ebp, edi
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x20]
add ebp, edi
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x28]
add ebp, edi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
jmp 0x10002f00
mov ebp, dword [esp + 0x6c]
movss xmm7, dword [ebp - 8]
mov ebp, dword [esp + 0x34]
mulss xmm7, xmm0
addss xmm7, dword [ecx - 8]
movss dword [ecx - 8], xmm7
movss xmm7, dword [ebp - 8]
mov ebp, dword [esp + 0x6c]
mulss xmm7, xmm1
addss xmm7, dword [esi - 8]
movss dword [esi - 8], xmm7
movss xmm7, dword [ebp - 4]
mov ebp, dword [esp + 0x34]
mulss xmm7, xmm0
addss xmm7, dword [ecx - 4]
movss dword [ecx - 4], xmm7
movss xmm7, dword [ebp - 4]
mov ebp, dword [esp + 0x6c]
mulss xmm7, xmm1
addss xmm7, dword [esi - 4]
movss dword [esi - 4], xmm7
movss xmm7, dword [ebp]
mov ebp, dword [esp + 0x34]
mulss xmm7, xmm0
addss xmm7, dword [ecx]
movss dword [ecx], xmm7
movss xmm7, dword [ebp]
mov ebp, dword [esp + 0x6c]
add dword [esp + 0x6c], 0x10
mulss xmm7, xmm1
addss xmm7, dword [esi]
movss dword [esi], xmm7
movss xmm7, dword [ebp + 4]
mov ebp, dword [esp + 0x34]
add dword [esp + 0x34], 0x10
mulss xmm7, xmm0
addss xmm7, dword [ecx + 4]
movss dword [ecx + 4], xmm7
movss xmm7, dword [ebp + 4]
mulss xmm7, xmm1
addss xmm7, dword [esi + 4]
movss dword [esi + 4], xmm7
add ecx, 0x10
add esi, 0x10
sub ebx, 1
jne 0x10002f00
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
cmp edi, ebx
jge 0x10003065
mov ebp, dword [esp + 0x84]
lea esi, [ebp + esi*4]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x80]
lea ebp, [esi + ebp*4]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x84]
lea ecx, [ebp + ecx*4]
mov ebp, dword [esp + 0x54]
lea esi, [esi + ebp*4]
mov dword [esp + 0x6c], esi
mov esi, ebx
sub esi, edi
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
add dword [esp + 0x6c], 4
movaps xmm7, xmm0
mulss xmm7, dword [ebp]
addss xmm7, dword [ecx]
mov ebp, dword [esp + 0x48]
add dword [esp + 0x48], 4
movss dword [ecx], xmm7
movaps xmm7, xmm1
mulss xmm7, dword [ebp]
addss xmm7, dword [edi]
movss dword [edi], xmm7
add ecx, 4
add edi, 4
sub esi, 1
jne 0x10003024
mov ebp, dword [esp + 0x10]
sub dword [esp + 0x58], 1
jne 0x10002e50
movss xmm0, dword [esp + 0x5c]
sub dword [esp + 0x60], 1
jne 0x10002bd0
mov ecx, dword [esp + 0x14]
xor ebp, ebp
cmp ecx, 1
jle 0x10003177
mov esi, dword [esp + 0x80]
add esi, 8
dec ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x78], esi
lea esi, [ebx*4]
add dword [esp + 0x78], esi
add ebp, ebx
xor esi, esi
cmp ebx, 4
mov dword [esp + 0x10], ebp
mov edi, ebp
jl 0x10003143
mov edi, dword [esp + 0x78]
lea esi, [ebx - 4]
shr esi, 2
inc esi
mov dword [esp + 0x64], esi
add esi, esi
add esi, esi
add ecx, 8
add ebp, esi
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x64]
jmp 0x100030f0
movss xmm0, dword [edi - 8]
addss xmm0, dword [ecx - 8]
movss dword [ecx - 8], xmm0
movss xmm0, dword [edi - 4]
addss xmm0, dword [ecx - 4]
movss dword [ecx - 4], xmm0
movss xmm0, dword [edi]
addss xmm0, dword [ecx]
movss dword [ecx], xmm0
movss xmm0, dword [edi + 4]
addss xmm0, dword [ecx + 4]
movss dword [ecx + 4], xmm0
add edi, 0x10
add ecx, 0x10
sub ebp, 1
jne 0x100030f0
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
cmp esi, ebx
jge 0x1000316c
mov ebp, dword [esp + 0x80]
lea edi, [ebp + edi*4]
movss xmm0, dword [ecx + esi*4]
addss xmm0, dword [edi]
movss dword [ecx + esi*4], xmm0
inc esi
add edi, 4
cmp esi, ebx
jl 0x10003152
mov ebp, dword [esp + 0x10]
sub dword [esp + 0x6c], 1
jne 0x100030aa
mov ebp, dword [esp + 0x74]
xor ecx, ecx
cmp edx, ebp
jge 0x10003254
mov dword [esp + 0x48], ecx
test edx, edx
jle 0x10003329
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x7c]
cmp ebp, 4
mov esi, ecx
mov dword [esp + 0x6c], 0
jl 0x100031f1
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x78], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x78]
nop
fld dword [eax + ecx*4]
add ecx, edx
fstp dword [edi + esi*4]
add esi, ebx
fld dword [eax + ecx*4]
add ecx, edx
fstp dword [edi + esi*4]
add esi, ebx
fld dword [eax + ecx*4]
add ecx, edx
fstp dword [edi + esi*4]
add esi, ebx
fld dword [eax + ecx*4]
add ecx, edx
fstp dword [edi + esi*4]
add esi, ebx
sub ebp, 1
jne 0x100031c0
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x1000323e
lea esi, [edi + esi*4]
mov dword [esp + 0x78], esi
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x6c]
jmp 0x10003214
mov esi, dword [esp + 0x6c]
fld dword [esi]
mov ebp, dword [esp + 0x78]
fstp dword [ebp]
lea ebp, [edx*4]
add esi, ebp
mov dword [esp + 0x6c], esi
lea esi, [ebx*4]
add dword [esp + 0x78], esi
sub ecx, 1
jne 0x10003210
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
inc ecx
cmp ecx, edx
mov dword [esp + 0x48], ecx
jl 0x10003199
jmp 0x10003329
cmp ebp, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], ecx
jle 0x10003329
lea ecx, [eax + 8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x7c]
add ecx, 8
mov dword [esp + 0x44], ecx
mov dword [esp + 0x60], ebp
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
xor ebp, ebp
cmp edx, 4
jl 0x100032de
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x6c]
lea ecx, [edx - 4]
shr ecx, 2
inc ecx
lea ebx, [ecx*4]
add ebp, ebx
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x48], ebx
add ebx, ebp
fld dword [esi - 8]
add esi, 0x10
fstp dword [edi - 8]
add edi, 0x10
sub ecx, 1
fld dword [esi - 0x14]
fstp dword [edi - 0x14]
fld dword [esi - 0x10]
fstp dword [edi - 0x10]
fld dword [esi - 0xc]
fstp dword [edi - 0xc]
jne 0x100032b3
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x78]
cmp ebp, edx
jge 0x100032ff
mov esi, dword [esp + 0x7c]
lea edi, [esi + ebx*4]
lea esi, [eax + ecx*4]
mov ecx, edx
sub ecx, ebp
fld dword [esi]
add esi, 4
fstp dword [edi]
add edi, 4
sub ecx, 1
jne 0x100032f0
add dword [esp + 0x10], edx
lea ecx, [edx*4]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x24]
add dword [esp + 0x18], ecx
add ecx, ecx
add ecx, ecx
add dword [esp + 0x44], ecx
sub dword [esp + 0x60], 1
jne 0x1000327a
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x70]
xor esi, esi
xor edi, edi
cmp dword [esp + 0x14], 1
mov dword [esp + 0x64], ecx
mov ebp, ecx
jle 0x10003468
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x7c]
dec ecx
mov dword [esp + 0x60], ecx
jmp 0x1000336c
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x10]
add edi, dword [esp + 0x1c]
sub ebp, dword [esp + 0x1c]
lea ecx, [edx + edx]
add esi, ecx
mov dword [esp + 0x10], esi
mov ecx, esi
mov dword [esp + 0x78], edi
mov esi, edi
mov dword [esp + 0x20], ebp
mov edi, ebp
mov ebp, dword [esp + 0x74]
cmp ebp, 4
mov dword [esp + 0x6c], 0
jl 0x1000340b
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x70], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
nop
fld dword [eax + esi*4]
mov ebp, dword [esp + 0x24]
fstp dword [ebx + ecx*4 - 4]
add esi, edx
fld dword [eax + edi*4]
add edi, edx
fstp dword [ebx + ecx*4]
add ecx, ebp
fld dword [eax + esi*4]
add esi, edx
fstp dword [ebx + ecx*4 - 4]
fld dword [eax + edi*4]
add edi, edx
fstp dword [ebx + ecx*4]
add ecx, ebp
fld dword [eax + esi*4]
add esi, edx
fstp dword [ebx + ecx*4 - 4]
fld dword [eax + edi*4]
add edi, edx
fstp dword [ebx + ecx*4]
add ecx, ebp
fld dword [eax + esi*4]
add esi, edx
fstp dword [ebx + ecx*4 - 4]
fld dword [eax + edi*4]
add edi, edx
fstp dword [ebx + ecx*4]
add ecx, ebp
sub dword [esp + 0x70], 1
jne 0x100033b0
mov ebp, dword [esp + 0x74]
cmp dword [esp + 0x6c], ebp
jge 0x10003459
lea esi, [eax + esi*4]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x74]
sub esi, dword [esp + 0x6c]
lea edi, [eax + edi*4]
lea ebp, [edx*4]
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x70]
fld dword [edi]
mov edi, dword [esp + 0x48]
add dword [esp + 0x70], ebp
fstp dword [ecx - 4]
fld dword [edi]
mov edi, dword [esp + 0x24]
add dword [esp + 0x48], ebp
fstp dword [ecx]
add edi, edi
add edi, edi
add ecx, edi
sub esi, 1
jne 0x10003431
sub dword [esp + 0x60], 1
jne 0x10003360
mov ecx, dword [esp + 0x64]
cmp edx, 1
je 0x100038aa
mov esi, dword [esp + 0x4c]
cmp esi, dword [esp + 0x74]
jge 0x1000376d
mov ebp, edx
mov esi, ecx
mov ecx, dword [esp + 0x14]
neg ebp
xor ebx, ebx
xor edi, edi
cmp ecx, 1
jle 0x100038aa
dec ecx
lea ebp, [edx + ebp - 2]
mov dword [esp + 0x50], ecx
nop
lea ecx, [edx + edx]
add ebp, ecx
add ebx, ecx
mov ecx, dword [esp + 0x1c]
add edi, ecx
sub esi, ecx
cmp edx, 2
mov dword [esp + 0x48], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], esi
jle 0x1000375a
lea ecx, [edi + 2]
sub ebx, edi
sub esi, edi
lea edi, [edx - 3]
shr edi, 1
inc edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x54], edi
jmp 0x100034f8
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
add ebx, ecx
add esi, ecx
cmp ebp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x6c], 0
jl 0x10003693
add ebp, 0xfffffffc
shr ebp, 2
inc ebp
mov dword [esp + 0x60], ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x6c], ebp
lea esp, [esp]
movss xmm0, dword [eax + esi*4 - 4]
addss xmm0, dword [eax + ecx*4 - 4]
mov ebp, dword [esp + 0x7c]
movss dword [ebp + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ecx*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
addss xmm0, dword [eax + ecx*4]
movss dword [ebp + ebx*4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + ecx*4]
movss dword [ebp + edi*4], xmm0
mov ebp, dword [esp + 0x24]
add edi, ebp
add ebx, ebp
mov ebp, dword [esp + 0x7c]
add esi, edx
movss xmm0, dword [eax + esi*4 - 4]
add ecx, edx
addss xmm0, dword [eax + ecx*4 - 4]
movss dword [ebp + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ecx*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
addss xmm0, dword [eax + ecx*4]
movss dword [ebp + ebx*4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + ecx*4]
movss dword [ebp + edi*4], xmm0
mov ebp, dword [esp + 0x24]
add edi, ebp
add ebx, ebp
mov ebp, dword [esp + 0x7c]
add esi, edx
movss xmm0, dword [eax + esi*4 - 4]
add ecx, edx
addss xmm0, dword [eax + ecx*4 - 4]
movss dword [ebp + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ecx*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
addss xmm0, dword [eax + ecx*4]
movss dword [ebp + ebx*4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + ecx*4]
movss dword [ebp + edi*4], xmm0
mov ebp, dword [esp + 0x24]
add esi, edx
movss xmm0, dword [eax + esi*4 - 4]
add edi, ebp
add ebx, ebp
mov ebp, dword [esp + 0x7c]
add ecx, edx
addss xmm0, dword [eax + ecx*4 - 4]
movss dword [ebp + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ecx*4 - 4]
subss xmm0, dword [eax + esi*4 - 4]
movss dword [ebp + edi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
addss xmm0, dword [eax + ecx*4]
movss dword [ebp + ebx*4], xmm0
movss xmm0, dword [eax + esi*4]
subss xmm0, dword [eax + ecx*4]
movss dword [ebp + edi*4], xmm0
mov ebp, dword [esp + 0x24]
add edi, ebp
add ebx, ebp
add ecx, edx
add esi, edx
sub dword [esp + 0x60], 1
jne 0x10003530
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x6c], ebp
jge 0x1000372f
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + ebp*4]
lea edi, [ebx + edi*4]
mov ebx, dword [esp + 0x74]
sub ebx, dword [esp + 0x6c]
lea ecx, [eax + ecx*4]
lea esi, [eax + esi*4]
mov dword [esp + 0x5c], ebp
jmp 0x100036d4
mov edi, dword [esp + 0x6c]
movss xmm0, dword [esi - 4]
addss xmm0, dword [ecx - 4]
movss dword [ebp - 4], xmm0
movss xmm0, dword [ecx - 4]
subss xmm0, dword [esi - 4]
movss dword [edi - 4], xmm0
movss xmm0, dword [esi]
addss xmm0, dword [ecx]
movss dword [ebp], xmm0
movss xmm0, dword [esi]
subss xmm0, dword [ecx]
mov ebp, dword [esp + 0x5c]
add ebp, dword [esp + 0x60]
movss dword [edi], xmm0
add edi, dword [esp + 0x60]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x6c], edi
lea edi, [edx*4]
add ecx, edi
add esi, edi
sub ebx, 1
jne 0x100036d0
mov ecx, dword [esp + 0x58]
sub dword [esp + 0x70], 2
add ecx, 2
sub dword [esp + 0x54], 1
mov dword [esp + 0x58], ecx
jne 0x100034f0
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x78]
sub dword [esp + 0x50], 1
jne 0x100034a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov ebx, edx
neg ebx
cmp dword [esp + 0x14], 1
jle 0x100038aa
mov esi, dword [esp + 0x1c]
lea ecx, [eax + ecx*4 + 8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x7c]
add eax, 8
add ebx, edx
lea edi, [edx + edx]
lea ebp, [ecx + 8]
add esi, esi
add edi, edi
mov dword [esp + 0x70], eax
lea eax, [ecx + ebx*4 - 8]
mov ecx, dword [esp + 0x14]
add esi, esi
add edi, edi
dec ecx
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x78], eax
mov dword [esp + 0x5c], ecx
jmp 0x100037ca
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x58]
add dword [esp + 0x78], edi
add dword [esp + 0x6c], edi
add dword [esp + 0x70], esi
sub dword [esp + 0x4c], esi
cmp dword [esp + 0x74], 0
jle 0x1000389f
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], ecx
lea esp, [esp]
cmp edx, 2
jle 0x10003877
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
lea edi, [edx - 3]
shr edi, 1
mov ebx, ebp
inc edi
lea esp, [esp]
movss xmm0, dword [esi - 4]
addss xmm0, dword [ecx - 4]
movss dword [ebx - 4], xmm0
movss xmm0, dword [esi - 4]
subss xmm0, dword [ecx - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [esi]
addss xmm0, dword [ecx]
movss dword [ebx], xmm0
movss xmm0, dword [ecx]
subss xmm0, dword [esi]
movss dword [eax], xmm0
add ebx, 8
add ecx, 8
add esi, 8
sub eax, 8
sub edi, 1
jne 0x10003830
mov eax, dword [esp + 0x24]
add eax, eax
add eax, eax
add dword [esp + 0x48], eax
add ebp, eax
lea eax, [edx*4]
add dword [esp + 0x44], eax
add dword [esp + 0x40], eax
sub dword [esp + 0x60], 1
jne 0x10003810
sub dword [esp + 0x5c], 1
jne 0x100037c2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret