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

Disassembly:
sub esp, 0x68
movss xmm1, dword [0x872db4]
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.0059ade0
movsd xmm0, qword [esp + 0x78]
fstp dword [esp + 0x54]
movsd qword [esp], xmm0
call fcn.0059ae30
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 0x46b42b
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x46ae78
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 0x46ae67
mov ecx, dword [esp + 0x18]
cmp ebp, 1
jle 0x46aede
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 0x46aed7
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 0x46aeb7
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 0x46ae96
jmp 0x46aef7
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 0x46b136
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x34], edi
jle 0x46b027
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 0x46b015
mov ebp, edi
mov dword [esp + 0x30], eax
mov edi, ecx
add ebp, edx
add edi, edx
cmp ebx, 2
jle 0x46aff5
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 0x46afa2
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 0x46af75
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 0x46af4f
jmp 0x46b131
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 0x46b124
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 0x46b103
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 0x46b0b1
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x98]
sub eax, 1
jne 0x46b091
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 0x46b035
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 0x46b424
cmp dword [esp + 0x34], edi
jge 0x46b2e8
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 0x46b2cf
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 0x46b2aa
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 0x46b245
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 0x46b1da
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 0x46b182
mov edi, dword [esp + 0x84]
jmp 0x46b424
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 0x46b417
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 0x46b3db
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 0x46b37c
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 0x46b34f
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 0x46b309
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x46b45c
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 0x46b448
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 0x46b534
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 0x46b51d
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 0x46b4e5
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
sub eax, 1
mov dword [esp + 0x40], eax
jne 0x46b4a7
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
jmp 0x46b542
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 [0x5c07f8]
imul edx, ecx
cmp dword [esp + 0x1c], 1
mov dword [esp + 0x6c], edx
jle 0x46b7aa
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 0x46b650
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 0x46b60e
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 0x46b723
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 0x46b6fd
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 0x46b6bf
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 0x46b687
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x88]
jmp 0x46b73b
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 0x46b59a
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 0x46b7a5
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 0x46b782
mov ebx, dword [esp + 0x7c]
mov ecx, ebp
mov edi, dword [esp + 0x94]
sub edx, 1
jne 0x46b763
mov ecx, dword [esp + 0x84]
cmp ebx, ecx
jge 0x46b83c
test ebx, ebx
jle 0x46b8a4
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 0x46b82b
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 0x46b808
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 0x46b7e5
jmp 0x46b8a4
test ecx, ecx
jle 0x46b8a4
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 0x46b897
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 0x46b878
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 0x46b86e
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 0x46b98b
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 0x46b973
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 0x46b93a
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 0x46b901
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
lea edx, [ebx + ebx]
cmp ebx, 1
je 0x46bc6c
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x84]
jge 0x46bb26
cmp edi, 1
jle 0x46bc6c
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 0x46bb16
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 0x46bad7
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 0x46ba77
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 0x46ba37
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 0x46b9dc
jmp 0x46bc6c
cmp edi, 1
jle 0x46bc6c
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 0x46bc61
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 0x46bc22
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 0x46bbc4
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 0x46bbaf
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 0x46bb5c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret