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

Disassembly:
sub esp, 0x68
movss xmm1, dword [0x86dec4]
push ebx
push ebp
mov ebp, dword [esp + 0x78]
push esi
push edi
push ecx
movd xmm0, ebp
cvtdq2ps xmm0, xmm0
push ecx
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x78], xmm0
movsd qword [esp], xmm0
call fcn.00596350
movsd xmm0, qword [esp + 0x78]
fstp dword [esp + 0x54]
movsd qword [esp], xmm0
call fcn.005963a0
mov ebx, dword [esp + 0x84]
lea esi, [ebp + 1]
mov edi, dword [esp + 0x8c]
and dword [esp + 0x40], 0
pop ecx
lea eax, [ebx - 1]
sar esi, 1
sar eax, 1
pop ecx
mov dword [esp + 0x34], eax
mov ecx, ebx
mov eax, ebx
imul ecx, edi
imul eax, ebp
mov dword [esp + 0x1c], esi
fstp dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
cmp ebx, 1
je 0x46699b
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x4663e8
mov edx, dword [esp + 0x94]
mov esi, eax
mov ecx, dword [esp + 0x9c]
sub edx, ecx
mov eax, dword [edx + ecx]
mov dword [ecx], eax
lea ecx, [ecx + 4]
sub esi, 1
jne 0x4663d7
mov ecx, dword [esp + 0x18]
cmp ebp, 1
jle 0x46644e
mov esi, dword [esp + 0x98]
lea eax, [ebp - 1]
mov edx, ecx
mov dword [esp + 0x20], eax
shl edx, 2
mov ebp, eax
mov dword [esp + 0x14], edx
mov eax, ebx
add esi, edx
shl eax, 2
mov dword [esp + 0x10], eax
test edi, edi
jle 0x466447
mov edx, dword [esp + 0x90]
mov ecx, esi
sub edx, dword [esp + 0x98]
mov ebx, eax
mov eax, dword [edx + ecx]
mov dword [ecx], eax
add ecx, ebx
sub edi, 1
jne 0x466427
mov ebx, dword [esp + 0x7c]
mov eax, ebx
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x14]
shl eax, 2
sub ebp, 1
jne 0x466406
jmp 0x466467
mov eax, ecx
shl eax, 2
mov dword [esp + 0x14], eax
lea eax, [ebp - 1]
mov dword [esp + 0x20], eax
mov eax, ebx
shl eax, 2
mov dword [esp + 0x10], eax
mov ecx, ebx
xor ebp, ebp
neg ecx
cmp dword [esp + 0x80], 1
mov dword [esp + 0x28], ecx
jle 0x4666a6
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x34], edi
jle 0x466597
mov edi, dword [esp + 0x98]
sub eax, 4
mov ebp, dword [esp + 0x20]
mov edx, ebx
shl edx, 2
sub edi, edx
mov dword [esp + 0x3c], edx
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x84]
sub ecx, edx
sub ecx, 4
add edi, dword [esp + 0x14]
add esi, edx
add ecx, dword [esp + 0x14]
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], esi
test eax, eax
jle 0x466585
mov ebp, edi
mov dword [esp + 0x30], eax
mov edi, ecx
add ebp, edx
add edi, edx
cmp ebx, 2
jle 0x466565
mov eax, dword [esp + 0x98]
mov edx, edi
sub eax, dword [esp + 0x90]
mov ecx, ebp
mov dword [esp + 0x44], eax
lea eax, [ebx - 3]
mov ebx, dword [esp + 0x44]
shr eax, 1
mov dword [esp + 0x40], ebp
inc eax
movss xmm1, dword [edx + 0xc]
add edx, 8
add esi, 8
add ecx, 8
movss xmm0, dword [edx]
mulss xmm1, dword [esi]
mulss xmm0, dword [esi - 4]
addss xmm1, xmm0
movss dword [ebx + edx], xmm1
movss xmm1, dword [esi - 4]
movss xmm0, dword [edx]
mulss xmm1, dword [edx + 4]
mulss xmm0, dword [esi]
subss xmm1, xmm0
movss dword [ecx], xmm1
sub eax, 1
jne 0x466512
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
sub eax, 1
mov dword [esp + 0x30], eax
jne 0x4664e5
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x20]
sub ebp, 1
mov dword [esp + 0x20], ebp
jne 0x4664bf
jmp 0x4666a1
lea eax, [eax + ecx*4]
mov esi, ebx
add eax, 0xfffffffc
lea edx, [ecx - 1]
shl esi, 2
add ebp, dword [esp + 0x18]
add ecx, ebx
mov edi, dword [esp + 0x20]
add edx, ebx
add eax, esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebp
cmp ebx, 2
jle 0x466694
mov esi, dword [esp + 0x98]
mov edi, eax
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x90]
add eax, ebp
lea ebp, [esi + 4]
lea ebp, [ebp + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x54], eax
lea eax, [ebx - 3]
mov ebx, dword [esp + 0x54]
shr eax, 1
inc eax
add ebp, 8
lea edi, [edi + 8]
add ebx, 8
test ecx, ecx
jle 0x466673
sub esi, dword [esp + 0x90]
mov edx, ebx
mov dword [esp + 0x30], ecx
mov ecx, ebp
mov dword [esp + 0x54], ebp
movss xmm1, dword [edx + 4]
movss xmm0, dword [edx]
mulss xmm1, dword [edi]
mulss xmm0, dword [edi - 4]
addss xmm1, xmm0
movss dword [esi + edx], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [edi]
mulss xmm0, dword [edx]
add edx, dword [esp + 0x10]
mulss xmm1, dword [edi - 4]
subss xmm1, xmm0
movss dword [ecx], xmm1
add ecx, dword [esp + 0x10]
sub dword [esp + 0x30], 1
jne 0x466621
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x98]
sub eax, 1
jne 0x466601
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
sub edi, 1
mov dword [esp + 0x20], edi
jne 0x4665a5
mov eax, ebx
shl eax, 2
mov edx, dword [esp + 0x18]
xor ebp, ebp
imul edx, dword [esp + 0x80]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x84]
cmp esi, 1
jle 0x466994
cmp dword [esp + 0x34], edi
jge 0x466858
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
sub edi, eax
sub ecx, eax
lea eax, [esi - 1]
mov esi, dword [esp + 0x14]
sub ecx, 4
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x18]
add edi, esi
add dword [esp + 0x28], ebx
add ebp, ebx
sub edx, ebx
mov dword [esp + 0x70], ebp
mov ebx, dword [esp + 0x7c]
add ecx, esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x2c], ebp
cmp ebx, 2
jle 0x46683f
sub edx, ebp
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x28]
lea esi, [ebx - 3]
mov ebx, dword [esp + 0x84]
mov eax, ecx
mov ecx, dword [esp + 0x20]
mov ebp, edx
shr esi, 1
mov dword [esp + 0x40], edx
inc esi
mov edx, dword [esp + 0x2c]
add edx, 2
lea edi, [edi + 2]
add ecx, 8
mov dword [esp + 0x2c], edx
add eax, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x3c], eax
test ebx, ebx
jle 0x46681a
lea eax, [edi + ebp]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x98]
lea edx, [eax*4]
mov ebp, dword [esp + 0x90]
lea eax, [eax - 1]
add edx, ebp
sub ebp, ecx
mov dword [esp + 0x60], edx
mov edx, ebp
mov ebp, dword [esp + 0x5c]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x10]
add ebx, dword [esp + 0x10]
add ebp, dword [esp + 0x10]
add ecx, dword [esp + 0x10]
sub dword [esp + 0x30], 1
movss xmm0, dword [eax]
addss xmm0, dword [ebx]
movss dword [eax + edx], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, dword [ebx + 4]
movss dword [ebx + edx], xmm0
movss xmm0, dword [ebx + 4]
addss xmm0, dword [eax + 4]
movss dword [ebp], xmm0
movss xmm0, dword [ebx]
subss xmm0, dword [eax]
movss dword [ecx], xmm0
jne 0x4667b5
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x84]
sub esi, 1
jne 0x46674a
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x14]
sub eax, 1
mov dword [esp + 0x44], eax
jne 0x4666f2
mov edi, dword [esp + 0x84]
jmp 0x466994
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
lea eax, [ecx + edx*4]
dec edx
lea ebp, [esi - 4]
lea edx, [esi + edx*4]
mov esi, dword [esp + 0x1c]
dec esi
mov dword [esp + 0x2c], esi
add ecx, dword [esp + 0x14]
add ebp, dword [esp + 0x14]
sub eax, dword [esp + 0x14]
sub edx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], edx
test edi, edi
jle 0x466987
mov edi, ecx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x84]
mov esi, ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], ecx
shl esi, 2
cmp ebx, 2
jle 0x46694b
mov esi, dword [esp + 0x90]
mov ecx, ebp
sub esi, dword [esp + 0x98]
mov dword [esp + 0x6c], eax
lea eax, [ebx - 3]
shr eax, 1
mov ebx, edi
mov dword [esp + 0x70], edi
inc eax
mov edi, dword [esp + 0x6c]
add edx, 8
add ecx, 8
add ebx, 8
add edi, 8
movss xmm0, dword [edx]
addss xmm0, dword [ecx]
movss dword [esi + ecx], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [edx + 4]
movss dword [esi + edx], xmm0
movss xmm0, dword [ecx + 4]
addss xmm0, dword [edx + 4]
movss dword [ebx], xmm0
movss xmm0, dword [edx]
subss xmm0, dword [ecx]
movss dword [edi], xmm0
sub eax, 1
jne 0x4668ec
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
add edi, esi
add eax, esi
add edx, esi
mov dword [esp + 0x44], edi
add ebp, esi
mov dword [esp + 0x40], eax
sub ecx, 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], ecx
jne 0x4668bf
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x84]
sub esi, 1
mov dword [esp + 0x2c], esi
jne 0x466879
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x4669cc
mov edx, dword [esp + 0x9c]
mov esi, eax
mov ecx, dword [esp + 0x94]
sub edx, ecx
mov eax, dword [edx + ecx]
mov dword [ecx], eax
lea ecx, [ecx + 4]
sub esi, 1
jne 0x4669b8
mov eax, dword [esp + 0x88]
and dword [esp + 0x70], 0
imul ebp, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], ebp
cmp eax, 1
jle 0x466aa4
mov esi, dword [esp + 0x98]
mov eax, ebx
mov ecx, dword [esp + 0x18]
mov edx, ebx
mov ebx, dword [esp + 0x70]
neg edx
shl eax, 2
mov dword [esp + 0x14], eax
sub esi, eax
mov eax, dword [esp + 0x1c]
shl ecx, 2
dec eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], eax
add ebx, dword [esp + 0x18]
add esi, ecx
add edx, dword [esp + 0x18]
sub ebp, dword [esp + 0x18]
mov dword [esp + 0x70], esi
test edi, edi
jle 0x466a8d
mov edi, dword [esp + 0x90]
mov eax, edx
sub eax, ebx
mov ecx, esi
mov esi, dword [esp + 0x98]
add eax, ebp
sub edi, esi
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x44], esi
mov esi, ecx
add eax, dword [esp + 0x14]
add ecx, dword [esp + 0x14]
sub dword [esp + 0x44], 1
movss xmm0, dword [eax]
addss xmm0, dword [ecx]
movss dword [edi + ecx], xmm0
movss xmm0, dword [eax]
subss xmm0, dword [ecx]
movss dword [edi + eax], xmm0
jne 0x466a55
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
sub eax, 1
mov dword [esp + 0x40], eax
jne 0x466a17
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
jmp 0x466ab2
dec eax
mov ecx, ebx
shl ecx, 2
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x80]
xorps xmm4, xmm4
mov ecx, dword [esp + 0x88]
dec edx
movss xmm6, dword [0x5bc808]
imul edx, ecx
cmp dword [esp + 0x1c], 1
mov dword [esp + 0x6c], edx
jle 0x466d1a
mov ebx, dword [esp + 0x9c]
mov esi, ecx
mov dword [esp + 0x28], eax
mov edi, ebx
shl esi, 2
mov dword [esp + 0x44], esi
lea ebp, [ebx + ebp*4]
mov ebx, eax
mov eax, dword [esp + 0x80]
lea eax, [eax*4 - 4]
imul eax, ecx
movaps xmm2, xmm6
mov dword [esp + 0x2c], eax
mulss xmm2, dword [esp + 0x4c]
movaps xmm0, xmm4
add edi, esi
sub ebp, esi
mulss xmm0, dword [esp + 0x48]
xor ecx, ecx
mov dword [esp + 0x20], edi
mulss xmm6, dword [esp + 0x48]
mov dword [esp + 0x30], ebp
subss xmm2, xmm0
mulss xmm4, dword [esp + 0x4c]
addss xmm4, xmm6
movaps xmm6, xmm2
cmp dword [esp + 0x88], ecx
jle 0x466bc0
mov ebx, dword [esp + 0x94]
mov esi, ebp
mov ebp, dword [esp + 0x88]
mov eax, edx
mov edx, dword [esp + 0x94]
shl eax, 2
mov dword [esp + 0x2c], eax
add edx, eax
mov eax, dword [esp + 0x94]
lea ebp, [ebx + ebp*4]
mov ebx, dword [esp + 0x28]
movaps xmm0, xmm2
mulss xmm0, dword [ebp]
add ebp, 4
addss xmm0, dword [eax + ecx*4]
movss dword [edi], xmm0
movaps xmm0, xmm4
mulss xmm0, dword [edx]
add edi, 4
add edx, 4
movss dword [esi], xmm0
add esi, 4
inc ecx
cmp ecx, dword [esp + 0x88]
jl 0x466b7e
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x94]
mov ecx, esi
add ecx, edx
movaps xmm5, xmm2
mov dword [esp + 0x70], ecx
movaps xmm3, xmm4
mov ecx, dword [esp + 0x1c]
cmp ecx, 2
jle 0x466c93
lea ebx, [eax + edx]
add ecx, 0xfffffffe
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x40], ecx
movaps xmm1, xmm5
movaps xmm0, xmm3
mulss xmm1, xmm2
add eax, esi
sub ebx, esi
mulss xmm0, xmm4
mulss xmm5, xmm4
mulss xmm3, xmm2
subss xmm1, xmm0
addss xmm3, xmm5
movaps xmm5, xmm1
test edx, edx
jle 0x466c6d
mov ecx, ebp
mov edx, edi
mov ebp, dword [esp + 0x88]
mov esi, ebx
mov edi, eax
movaps xmm0, xmm1
mulss xmm0, dword [edi]
add edi, 4
addss xmm0, dword [edx]
movss dword [edx], xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi]
add edx, 4
add esi, 4
addss xmm0, dword [ecx]
movss dword [ecx], xmm0
add ecx, 4
sub ebp, 1
jne 0x466c2f
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x20]
sub ecx, 1
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
jne 0x466bf7
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x88]
jmp 0x466cab
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
lea eax, [eax*4 - 4]
imul eax, ecx
mov edx, dword [esp + 0x6c]
sub ebx, 1
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jne 0x466b0a
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x94]
add edi, esi
xor eax, eax
mov dword [esp + 0x94], edi
test ecx, ecx
jle 0x466d15
mov ebp, dword [esp + 0x88]
mov ecx, edi
mov edi, dword [esp + 0x9c]
movss xmm0, dword [ecx]
add ecx, 4
addss xmm0, dword [edi + eax*4]
movss dword [edi + eax*4], xmm0
inc eax
cmp eax, ebp
jl 0x466cf2
mov ebx, dword [esp + 0x7c]
mov ecx, ebp
mov edi, dword [esp + 0x94]
sub edx, 1
jne 0x466cd3
mov ecx, dword [esp + 0x84]
cmp ebx, ecx
jge 0x466dac
test ebx, ebx
jle 0x466e14
mov edx, dword [esp + 0x8c]
mov eax, ebx
mov ecx, dword [esp + 0x98]
sub edx, ecx
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x68], edx
mov dword [esp + 0x88], eax
test ebp, ebp
jle 0x466d9b
mov eax, dword [esp + 0x24]
lea esi, [edx + ecx]
shl eax, 2
mov edi, ecx
mov dword [esp + 0x70], eax
mov eax, ebx
mov ebx, dword [esp + 0x70]
shl eax, 2
mov dword [esp + 0x6c], eax
mov edx, eax
mov eax, dword [edi]
add edi, edx
mov dword [esi], eax
add esi, ebx
sub ebp, 1
jne 0x466d78
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
add ecx, 4
sub eax, 1
mov dword [esp + 0x88], eax
jne 0x466d55
jmp 0x466e14
test ecx, ecx
jle 0x466e14
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x8c]
shl eax, 2
mov dword [esp + 0x88], eax
mov eax, ecx
mov edx, dword [esp + 0x88]
mov ecx, ebx
mov dword [esp + 0x4c], eax
shl ecx, 2
test ebx, ebx
jle 0x466e07
mov ecx, edi
mov edx, esi
mov ebp, ebx
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [ecx], eax
lea ecx, [ecx + 4]
sub ebp, 1
jne 0x466de8
mov eax, dword [esp + 0x4c]
mov ecx, ebx
mov edx, dword [esp + 0x88]
shl ecx, 2
add esi, ecx
add edi, edx
sub eax, 1
mov dword [esp + 0x4c], eax
jne 0x466dde
mov ebp, dword [esp + 0x8c]
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx]
mov edi, dword [esp + 0x1c]
mov ecx, eax
imul ecx, dword [esp + 0x80]
mov esi, eax
shl esi, 2
mov dword [esp + 0x5c], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x60], ecx
cmp edi, 1
jle 0x466efb
mov ebx, edx
mov edx, dword [esp + 0x98]
shl ebx, 2
mov edi, edx
mov dword [esp + 0x64], ebx
lea eax, [edx + ecx*4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x4c], edx
add ebp, ebx
add edi, esi
sub eax, esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x80], edi
mov dword [esp + 0x6c], eax
test ecx, ecx
jle 0x466ee3
mov edx, dword [esp + 0x24]
mov edi, ebp
mov ebp, dword [esp + 0x14]
mov esi, ecx
shl edx, 2
mov ebx, eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x70]
mov eax, dword [edx]
add edx, ebp
mov dword [edi - 4], eax
mov eax, dword [ebx]
add ebx, ebp
mov dword [edi], eax
add edi, ecx
sub esi, 1
jne 0x466eaa
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x84]
sub edx, 1
mov dword [esp + 0x4c], edx
jne 0x466e71
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
lea edx, [ebx + ebx]
cmp ebx, 1
je 0x4671dc
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x84]
jge 0x467096
cmp edi, 1
jle 0x4671dc
mov esi, dword [esp + 0x98]
add ecx, 2
push 0xfffffffffffffffe
pop eax
push 4
lea ebp, [esi + ecx*4]
lea ecx, [esi + 8]
mov esi, dword [esp + 0x90]
add esi, 0xfffffff8
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x8c]
pop edi
add dword [esp + 0x38], edx
mov ebx, edx
shl ebx, 2
add eax, edx
add dword [esp + 0x80], ebx
sub edi, edx
mov ebx, dword [esp + 0x7c]
add ecx, esi
sub ebp, esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], ebp
cmp ebx, 2
jle 0x467086
mov esi, dword [esp + 0x80]
mov edx, ecx
lea ecx, [ebx - 3]
mov dword [esp + 0x30], edi
mov ebx, dword [esp + 0x84]
shr ecx, 1
mov dword [esp + 0x34], eax
inc ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x44], esi
test ebx, ebx
jle 0x467047
mov eax, dword [esp + 0x24]
mov edi, edx
shl eax, 2
mov ebx, ebp
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x34]
add eax, dword [esp + 0x38]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x8c]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
movss xmm0, dword [ebx - 4]
addss xmm0, dword [edi - 4]
movss dword [esi - 4], xmm0
movss xmm0, dword [edi - 4]
subss xmm0, dword [ebx - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [ebx]
addss xmm0, dword [edi]
movss dword [esi], xmm0
movss xmm0, dword [ebx]
subss xmm0, dword [edi]
add esi, dword [esp + 0x4c]
add ebx, dword [esp + 0x14]
add edi, dword [esp + 0x14]
movss dword [eax], xmm0
add eax, dword [esp + 0x4c]
sub dword [esp + 0x48], 1
jne 0x466fe7
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x84]
sub eax, 2
sub esi, 8
add edi, 4
mov dword [esp + 0x34], eax
add edx, 8
mov dword [esp + 0x44], esi
add ebp, 8
mov dword [esp + 0x30], edi
sub ecx, 1
jne 0x466fa7
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
sub dword [esp + 0x10], 1
jne 0x466f4c
jmp 0x4671dc
cmp edi, 1
jle 0x4671dc
mov eax, dword [esp + 0x98]
mov edi, edx
mov edx, dword [esp + 0x8c]
add eax, 8
shl edi, 2
mov dword [esp + 0x58], edi
lea ebp, [eax + ecx*4]
mov ecx, dword [esp + 0x98]
lea eax, [edx + 8]
add ecx, 8
add edx, 0xfffffff8
add edx, edi
add eax, edi
add ecx, esi
mov dword [esp + 0x5c], edx
sub ebp, esi
mov dword [esp + 0x64], eax
cmp dword [esp + 0x84], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x68], ebp
jle 0x4671d1
mov edi, dword [esp + 0x24]
mov esi, ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x70], edx
mov edx, ebp
mov ebp, dword [esp + 0x70]
shl edi, 2
mov dword [esp + 0x6c], edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
cmp ebx, 2
jle 0x467192
mov edi, eax
mov ecx, esi
mov eax, dword [esp + 0x7c]
mov ebx, ebp
add eax, 0xfffffffd
shr eax, 1
inc eax
movss xmm0, dword [ecx - 4]
addss xmm0, dword [edx - 4]
movss dword [edi - 4], xmm0
movss xmm0, dword [ecx - 4]
subss xmm0, dword [edx - 4]
movss dword [ebx - 4], xmm0
movss xmm0, dword [ecx]
addss xmm0, dword [edx]
movss dword [edi], xmm0
add edi, 8
movss xmm0, dword [edx]
add edx, 8
subss xmm0, dword [ecx]
add ecx, 8
movss dword [ebx], xmm0
sub ebx, 8
sub eax, 1
jne 0x467134
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
add edx, dword [esp + 0x14]
add eax, edi
add esi, dword [esp + 0x14]
add ebp, edi
sub ecx, 1
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x46711f
mov esi, dword [esp + 0x88]
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
sub dword [esp + 0x10], 1
jne 0x4670cc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret