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

Disassembly:
sub esp, 0x68
movss xmm1, dword [0x86e584]
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.005965f0
movsd xmm0, qword [esp + 0x78]
fstp dword [esp + 0x54]
movsd qword [esp], xmm0
call fcn.00596640
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 0x466c3b
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x466688
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 0x466677
mov ecx, dword [esp + 0x18]
cmp ebp, 1
jle 0x4666ee
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 0x4666e7
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 0x4666c7
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 0x4666a6
jmp 0x466707
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 0x466946
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x34], edi
jle 0x466837
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 0x466825
mov ebp, edi
mov dword [esp + 0x30], eax
mov edi, ecx
add ebp, edx
add edi, edx
cmp ebx, 2
jle 0x466805
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 0x4667b2
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 0x466785
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 0x46675f
jmp 0x466941
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 0x466934
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 0x466913
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 0x4668c1
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x98]
sub eax, 1
jne 0x4668a1
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 0x466845
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 0x466c34
cmp dword [esp + 0x34], edi
jge 0x466af8
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 0x466adf
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 0x466aba
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 0x466a55
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 0x4669ea
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 0x466992
mov edi, dword [esp + 0x84]
jmp 0x466c34
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 0x466c27
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 0x466beb
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 0x466b8c
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 0x466b5f
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 0x466b19
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x466c6c
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 0x466c58
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 0x466d44
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 0x466d2d
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 0x466cf5
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
sub eax, 1
mov dword [esp + 0x40], eax
jne 0x466cb7
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
jmp 0x466d52
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 [0x5bc7f8]
imul edx, ecx
cmp dword [esp + 0x1c], 1
mov dword [esp + 0x6c], edx
jle 0x466fba
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 0x466e60
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 0x466e1e
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 0x466f33
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 0x466f0d
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 0x466ecf
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 0x466e97
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x88]
jmp 0x466f4b
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 0x466daa
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 0x466fb5
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 0x466f92
mov ebx, dword [esp + 0x7c]
mov ecx, ebp
mov edi, dword [esp + 0x94]
sub edx, 1
jne 0x466f73
mov ecx, dword [esp + 0x84]
cmp ebx, ecx
jge 0x46704c
test ebx, ebx
jle 0x4670b4
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 0x46703b
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 0x467018
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 0x466ff5
jmp 0x4670b4
test ecx, ecx
jle 0x4670b4
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 0x4670a7
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 0x467088
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 0x46707e
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 0x46719b
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 0x467183
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 0x46714a
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 0x467111
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
lea edx, [ebx + ebx]
cmp ebx, 1
je 0x46747c
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x84]
jge 0x467336
cmp edi, 1
jle 0x46747c
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 0x467326
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 0x4672e7
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 0x467287
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 0x467247
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 0x4671ec
jmp 0x46747c
cmp edi, 1
jle 0x46747c
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 0x467471
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 0x467432
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 0x4673d4
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 0x4673bf
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 0x46736c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret