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

Disassembly:
sub esp, 0x68
movss xmm1, dword [0x526c5c]
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.004d4730
movsd xmm0, qword [esp + 0x78]
fstp dword [esp + 0x54]
movsd qword [esp], xmm0
call fcn.004d4780
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 0x4491ab
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x448bf8
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 0x448be7
mov ecx, dword [esp + 0x18]
cmp ebp, 1
jle 0x448c5e
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 0x448c57
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 0x448c37
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 0x448c16
jmp 0x448c77
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 0x448eb6
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x34], edi
jle 0x448da7
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 0x448d95
mov ebp, edi
mov dword [esp + 0x30], eax
mov edi, ecx
add ebp, edx
add edi, edx
cmp ebx, 2
jle 0x448d75
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 0x448d22
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 0x448cf5
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 0x448ccf
jmp 0x448eb1
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 0x448ea4
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 0x448e83
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 0x448e31
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x98]
sub eax, 1
jne 0x448e11
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 0x448db5
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 0x4491a4
cmp dword [esp + 0x34], edi
jge 0x449068
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 0x44904f
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 0x44902a
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 0x448fc5
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 0x448f5a
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 0x448f02
mov edi, dword [esp + 0x84]
jmp 0x4491a4
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 0x449197
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 0x44915b
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 0x4490fc
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 0x4490cf
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 0x449089
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x4491dc
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 0x4491c8
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 0x4492b4
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 0x44929d
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 0x449265
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
sub eax, 1
mov dword [esp + 0x40], eax
jne 0x449227
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
jmp 0x4492c2
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 [0x4f73d8]
imul edx, ecx
cmp dword [esp + 0x1c], 1
mov dword [esp + 0x6c], edx
jle 0x44952a
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 0x4493d0
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 0x44938e
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 0x4494a3
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 0x44947d
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 0x44943f
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 0x449407
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x88]
jmp 0x4494bb
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 0x44931a
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 0x449525
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 0x449502
mov ebx, dword [esp + 0x7c]
mov ecx, ebp
mov edi, dword [esp + 0x94]
sub edx, 1
jne 0x4494e3
mov ecx, dword [esp + 0x84]
cmp ebx, ecx
jge 0x4495bc
test ebx, ebx
jle 0x449624
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 0x4495ab
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 0x449588
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 0x449565
jmp 0x449624
test ecx, ecx
jle 0x449624
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 0x449617
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 0x4495f8
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 0x4495ee
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 0x44970b
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 0x4496f3
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 0x4496ba
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 0x449681
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
lea edx, [ebx + ebx]
cmp ebx, 1
je 0x4499ec
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x84]
jge 0x4498a6
cmp edi, 1
jle 0x4499ec
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 0x449896
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 0x449857
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 0x4497f7
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 0x4497b7
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 0x44975c
jmp 0x4499ec
cmp edi, 1
jle 0x4499ec
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 0x4499e1
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 0x4499a2
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 0x449944
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 0x44992f
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 0x4498dc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret