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

Disassembly:
sub esp, 0x4c
movss xmm1, dword [0x8814f8]
push ebx
mov ebx, dword [esp + 0x58]
push ebp
push esi
push edi
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x50], xmm0
call fcn.0043e7d0
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x58], xmm0
movsd xmm0, qword [esp + 0x50]
call fcn.0043e990
mov edi, dword [esp + 0x60]
lea eax, [ebx + 1]
sar eax, 1
mov ecx, edi
imul ecx, dword [esp + 0x68]
xorps xmm7, xmm7
mov dword [esp + 0x18], eax
lea eax, [edi - 1]
sar eax, 1
mov dword [esp + 0x2c], eax
mov eax, edi
imul eax, ebx
mov dword [esp + 0x10], ecx
cvtsd2ss xmm7, xmm0
mov dword [esp + 0x14], eax
cmp edi, 1
je 0x424636
mov edx, dword [esp + 0x78]
xor ebp, ebp
mov ecx, dword [esp + 0x80]
mov esi, edx
mov eax, dword [esp + 0x6c]
sub esi, ecx
cmp eax, 4
jl 0x4242f3
lea ebx, [eax - 4]
add edx, 0xc
shr ebx, 2
add ecx, 4
inc ebx
lea ebp, [ebx*4]
nop dword [eax]
mov eax, dword [edx - 0xc]
lea ecx, [ecx + 0x10]
mov dword [ecx - 0x14], eax
lea edx, [edx + 0x10]
mov eax, dword [esi + ecx - 0x10]
mov dword [ecx - 0x10], eax
mov eax, dword [edx - 0x14]
mov dword [ecx - 0xc], eax
mov eax, dword [edx - 0x10]
mov dword [ecx - 8], eax
sub ebx, 1
jne 0x4242c0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x64]
cmp ebp, eax
jge 0x42430e
mov edx, eax
lea ecx, [ecx + ebp*4]
sub edx, ebp
nop
mov eax, dword [ecx + esi]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x424300
xor eax, eax
lea ecx, [ebx - 1]
mov dword [esp + 0x1c], ecx
cmp ebx, 1
jle 0x4243b9
mov ebx, ecx
mov dword [esp + 0x20], ecx
add eax, dword [esp + 0x10]
xor ebp, ebp
mov esi, dword [esp + 0x7c]
mov ecx, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
cmp eax, 4
jl 0x42437e
mov ebx, dword [esp + 0x74]
lea edx, [eax - 4]
shr edx, 2
inc edx
lea ebp, [edx*4]
mov eax, dword [ebx + ecx*4]
mov dword [esi + ecx*4], eax
add ecx, edi
mov eax, dword [ebx + ecx*4]
mov dword [esi + ecx*4], eax
add ecx, edi
mov eax, dword [ebx + ecx*4]
mov dword [esi + ecx*4], eax
add ecx, edi
mov eax, dword [ebx + ecx*4]
mov dword [esi + ecx*4], eax
add ecx, edi
sub edx, 1
jne 0x424351
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
lea edx, [edi*4]
cmp ebp, eax
jge 0x4243a6
mov ebx, dword [esp + 0x74]
lea ecx, [esi + ecx*4]
sub ebx, esi
mov esi, eax
sub esi, ebp
mov eax, dword [ebx + ecx]
mov dword [ecx], eax
add ecx, edx
sub esi, 1
jne 0x424396
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
sub ebx, 1
mov dword [esp + 0x20], ebx
jne 0x424326
jmp 0x4243c0
lea edx, [edi*4]
mov eax, edi
xor esi, esi
neg eax
mov dword [esp + 0x20], eax
mov ebx, eax
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x68]
jle 0x4246a1
mov eax, dword [esp + 0x64]
cmp eax, 1
jle 0x4244e1
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x7c]
mov ecx, esi
sub ecx, edx
lea ebp, [eax*4]
mov eax, dword [esp + 0x84]
sub eax, 4
mov dword [esp + 0x24], ebp
lea ebx, [eax + ebx*4]
mov eax, dword [esp + 0x74]
sub eax, edx
sub eax, 4
mov edi, dword [esp + 0x60]
add ecx, ebp
add eax, ebp
mov dword [esp + 0x30], ecx
add ebx, edx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x68], 0
mov dword [esp + 0x38], ebx
jle 0x4244d2
mov ebp, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x28], ecx
nop
add eax, edx
add ebp, edx
mov dword [esp + 0x3c], eax
cmp edi, 2
jle 0x4244b9
mov ecx, ebx
mov edi, ebp
mov ebx, esi
mov esi, dword [esp + 0x60]
sub ebx, dword [esp + 0x74]
add esi, 0xfffffffd
shr esi, 1
inc esi
movss xmm1, dword [eax + 8]
add eax, 8
mulss xmm1, dword [ecx + 4]
add ecx, 8
add edi, 8
movss xmm0, dword [eax + 4]
mulss xmm0, dword [ecx]
addss xmm1, xmm0
movss dword [ebx + eax], xmm1
movss xmm1, dword [ecx - 4]
movss xmm0, dword [eax]
mulss xmm1, dword [eax + 4]
mulss xmm0, dword [ecx]
subss xmm1, xmm0
movss dword [edi], xmm1
sub esi, 1
jne 0x424461
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x7c]
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x424440
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
sub dword [esp + 0x1c], 1
jne 0x424414
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
mov esi, eax
imul esi, ecx
cmp dword [esp + 0x18], 1
jle 0x424636
mov edi, dword [esp + 0x7c]
lea eax, [ecx*4]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
lea ebp, [edi - 4]
lea ebx, [ecx + esi*4]
dec esi
lea esi, [edi + esi*4]
mov edi, dword [esp + 0x18]
dec edi
mov dword [esp + 0x1c], edi
nop dword [eax + eax]
mov edi, dword [esp + 0x60]
add ecx, eax
add ebp, eax
mov dword [esp + 0x44], ecx
sub ebx, eax
mov dword [esp + 0x3c], ebp
sub esi, eax
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x68], 0
mov dword [esp + 0x40], esi
jle 0x42462b
mov eax, ecx
mov dword [esp + 0x24], esi
mov ecx, ebp
mov dword [esp + 0x34], eax
mov ebp, ebx
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebx
cmp edi, 2
jle 0x4245f2
mov ebx, eax
mov eax, ecx
mov ecx, esi
mov esi, dword [esp + 0x74]
sub esi, dword [esp + 0x7c]
mov dword [esp + 0x50], esi
lea esi, [edi - 3]
mov edi, dword [esp + 0x50]
shr esi, 1
inc esi
nop word [eax + eax]
movss xmm0, dword [ecx + 8]
add ecx, 8
addss xmm0, dword [eax + 8]
add eax, 8
add ebx, 8
add ebp, 8
movss dword [eax + edi], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, dword [ecx + 4]
movss dword [edi + ecx], xmm0
movss xmm0, dword [ecx + 4]
addss xmm0, dword [eax + 4]
movss dword [ebx], xmm0
movss xmm0, dword [ecx]
subss xmm0, dword [eax]
movss dword [ebp], xmm0
sub esi, 1
jne 0x424590
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
add eax, edx
add ecx, edx
add ebp, edx
mov dword [esp + 0x34], eax
add esi, edx
mov dword [esp + 0x30], ecx
sub ebx, 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
jne 0x424565
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
sub dword [esp + 0x1c], 1
jne 0x424520
mov ebx, dword [esp + 0x6c]
xor ebp, ebp
cmp ebx, 4
jl 0x42492c
mov eax, dword [esp + 0x80]
add ebx, 0xfffffffc
mov ebp, dword [esp + 0x78]
mov esi, eax
sub esi, ebp
shr ebx, 2
inc ebx
lea edx, [eax + 0xc]
lea ecx, [ebp + 4]
lea ebp, [ebx*4]
nop dword [eax + eax]
mov eax, dword [edx - 0xc]
lea ecx, [ecx + 0x10]
mov dword [ecx - 0x14], eax
lea edx, [edx + 0x10]
mov eax, dword [esi + ecx - 0x10]
mov dword [ecx - 0x10], eax
mov eax, dword [edx - 0x14]
mov dword [ecx - 0xc], eax
mov eax, dword [edx - 0x10]
mov dword [ecx - 8], eax
sub ebx, 1
jne 0x424670
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
jmp 0x424939
cmp dword [esp + 0x64], 1
jle 0x4247ac
mov eax, dword [esp + 0x84]
lea ebp, [ebx - 1]
lea eax, [eax + ebx*4]
add eax, 0xfffffffc
nop dword [eax]
add esi, dword [esp + 0x10]
add ebx, edi
mov ecx, dword [esp + 0x1c]
add ebp, edi
add eax, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], esi
cmp edi, 2
jle 0x42479f
mov ecx, eax
mov eax, ebp
mov ebp, dword [esp + 0x7c]
sub eax, ebx
add eax, esi
lea ebx, [edi - 3]
shl eax, 2
shr ebx, 1
lea esi, [ebp + 4]
add esi, eax
add eax, dword [esp + 0x74]
inc ebx
mov dword [esp + 0x3c], esi
mov edi, esi
mov dword [esp + 0x28], ebx
mov esi, dword [esp + 0x68]
add eax, 8
lea ecx, [ecx + 8]
add edi, 8
mov dword [esp + 0x3c], eax
test esi, esi
jle 0x42477e
sub ebp, dword [esp + 0x74]
mov esi, edi
mov ebx, dword [esp + 0x68]
nop
movss xmm1, dword [eax]
movss xmm0, dword [eax + 4]
mulss xmm1, dword [ecx - 4]
mulss xmm0, dword [ecx]
addss xmm1, xmm0
movss dword [eax + ebp], xmm1
movss xmm0, dword [eax]
movss xmm1, dword [ecx - 4]
mulss xmm1, dword [eax + 4]
add eax, edx
mulss xmm0, dword [ecx]
subss xmm1, xmm0
movss dword [esi], xmm1
add esi, edx
sub ebx, 1
jne 0x424730
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x68]
sub ebx, 1
mov dword [esp + 0x28], ebx
jne 0x424713
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub ecx, 1
mov dword [esp + 0x1c], ecx
jne 0x4246c0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov ebx, dword [esp + 0x2c]
mov esi, ecx
imul esi, dword [esp + 0x64]
cmp ebx, dword [esp + 0x68]
jge 0x4244ea
mov ebx, dword [esp + 0x18]
cmp ebx, 1
jle 0x424636
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
sub ebp, edx
sub ecx, edx
sub ebp, 4
dec ebx
mov dword [esp + 0x34], ebx
nop dword [eax + eax]
mov edi, dword [esp + 0x10]
add eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
lea ebx, [edi*4]
add ecx, ebx
add ebp, ebx
mov ebx, edi
mov dword [esp + 0x50], ecx
add dword [esp + 0x20], ebx
sub esi, ebx
mov edi, dword [esp + 0x60]
mov ebx, eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], esi
cmp edi, 2
jle 0x42491c
sub esi, eax
lea eax, [edi - 3]
mov edi, dword [esp + 0x20]
shr eax, 1
inc eax
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x24], eax
add ebx, 2
add edi, 2
add ecx, 8
mov dword [esp + 0x44], ebx
add ebp, 8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], ebp
test esi, esi
jle 0x4248fb
mov eax, dword [esp + 0x3c]
mov esi, ecx
mov ebx, dword [esp + 0x74]
add eax, edi
mov edi, dword [esp + 0x68]
mov ecx, ebp
mov ebp, dword [esp + 0x7c]
shl eax, 2
add ebp, 0xfffffffc
add ebx, eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x1c]
add eax, ebp
mov ebp, dword [esp + 0x74]
sub ebp, dword [esp + 0x7c]
nop word [eax + eax]
movss xmm0, dword [eax + edx]
add eax, edx
addss xmm0, dword [ecx + edx]
add ecx, edx
add esi, edx
add ebx, edx
sub dword [esp + 0x28], 1
movss dword [ecx + ebp], xmm0
movss xmm0, dword [ecx + 4]
subss xmm0, dword [eax + 4]
movss dword [eax + ebp], xmm0
movss xmm0, dword [ecx + 4]
addss xmm0, dword [eax + 4]
movss dword [esi], xmm0
movss xmm0, dword [eax]
subss xmm0, dword [ecx]
movss dword [ebx], xmm0
jne 0x4248a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
sub eax, 1
mov dword [esp + 0x24], eax
jne 0x424842
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
sub dword [esp + 0x34], 1
jne 0x4247f0
jmp 0x424636
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x78]
sub esi, eax
cmp ebp, ebx
jge 0x424952
mov edx, ebx
lea ecx, [eax + ebp*4]
sub edx, ebp
mov eax, dword [esi + ecx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x424944
mov eax, dword [esp + 0x64]
xor edx, edx
imul eax, ebx
mov dword [esp + 0x44], eax
mov esi, eax
mov eax, dword [esp + 0x18]
cmp eax, 1
jle 0x424cd3
mov eax, dword [esp + 0x10]
lea ebx, [edi*4]
mov ebp, edi
mov edi, dword [esp + 0x7c]
neg ebp
sub edi, ebx
lea ecx, [eax*4]
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
add edi, ecx
add edx, eax
sub esi, eax
add ebp, eax
mov dword [esp + 0x50], edx
cmp dword [esp + 0x68], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
jle 0x424a15
mov eax, ebp
mov ecx, edi
sub eax, edx
mov edx, dword [esp + 0x74]
add eax, esi
mov esi, dword [esp + 0x7c]
sub edx, esi
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x68]
nop dword [eax + eax]
movss xmm0, dword [eax + ebx]
add eax, ebx
addss xmm0, dword [ecx + ebx]
add ecx, ebx
movss dword [edx + ecx], xmm0
movss xmm0, dword [eax]
subss xmm0, dword [ecx]
movss dword [edx + eax], xmm0
sub esi, 1
jne 0x4249e0
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
sub eax, 1
mov dword [esp + 0x1c], eax
jne 0x4249a0
mov ecx, dword [esp + 0x80]
xorps xmm4, xmm4
mov eax, dword [esp + 0x44]
mov esi, ecx
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x20]
movss xmm6, dword [0x870be8]
lea ebx, [ecx + eax*4]
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x64]
lea edx, [edi*4]
mov dword [esp + 0x28], edx
lea ecx, [eax*4 - 4]
imul ecx, edi
nop
movaps xmm3, xmm6
mov dword [esp + 0x38], ecx
mulss xmm3, dword [esp + 0x58]
movaps xmm0, xmm4
add esi, edx
sub ebx, edx
mulss xmm4, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x24], esi
mulss xmm0, xmm7
mov dword [esp + 0x3c], ebx
mulss xmm6, xmm7
subss xmm3, xmm0
addss xmm4, xmm6
movaps xmm6, xmm3
cmp dword [esp + 0x6c], eax
jle 0x424afe
add ecx, dword [esp + 0x78]
mov edx, ebx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x78]
lea ebx, [ebx*4]
add ebx, dword [esp + 0x78]
mov dword [esp + 0x34], ebx
nop
movaps xmm0, xmm3
mulss xmm0, dword [ebx]
add ebx, 4
addss xmm0, dword [edi + eax*4]
inc eax
movss dword [esi], xmm0
movaps xmm0, xmm4
mulss xmm0, dword [ecx]
add esi, 4
add ecx, 4
movss dword [edx], xmm0
add edx, 4
cmp eax, dword [esp + 0x6c]
jl 0x424ac0
mov ecx, dword [esp + 0x38]
mov eax, edi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
jmp 0x424b09
mov eax, dword [esp + 0x78]
lea ebx, [edx + eax]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x18]
movaps xmm5, xmm3
movaps xmm1, xmm4
cmp ebx, 2
jle 0x424bb9
mov edi, dword [esp + 0x34]
lea ebp, [ecx + eax]
lea eax, [ebx - 2]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x30], eax
nop
movaps xmm2, xmm5
movaps xmm0, xmm1
mulss xmm2, xmm3
add edi, edx
sub ebp, edx
mulss xmm0, xmm4
mulss xmm5, xmm4
mulss xmm1, xmm3
subss xmm2, xmm0
addss xmm1, xmm5
movaps xmm5, xmm2
test ebx, ebx
jle 0x424b9e
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov edx, ebp
mov esi, edi
movaps xmm0, xmm2
mulss xmm0, dword [esi]
add esi, 4
addss xmm0, dword [ecx]
movss dword [ecx], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [edx]
add ecx, 4
add edx, 4
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
sub ebx, 1
jne 0x424b63
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x24]
sub eax, 1
mov dword [esp + 0x30], eax
jne 0x424b30
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
jmp 0x424bcb
mov eax, dword [esp + 0x64]
lea ecx, [eax*4 - 4]
mov eax, dword [esp + 0x6c]
imul ecx, eax
mov esi, dword [esp + 0x24]
sub ebp, 1
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ebp
jne 0x424a60
mov edi, dword [esp + 0x78]
xor ebx, ebx
mov esi, dword [esp + 0x20]
add edi, 8
mov dword [esp + 0x1c], esi
add ebx, eax
add edi, edx
xor ecx, ecx
mov dword [esp + 0x58], edi
mov ebp, ebx
cmp eax, 4
jl 0x424c80
mov esi, dword [esp + 0x6c]
mov edx, edi
mov eax, dword [esp + 0x80]
add eax, 8
lea esi, [esi - 4]
shr esi, 2
inc esi
lea ecx, [esi*4]
lea ebp, [ecx + ebx]
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [edx - 8]
addss xmm0, dword [eax - 8]
movss dword [eax - 8], xmm0
movss xmm0, dword [edx - 4]
addss xmm0, dword [eax - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [edx]
addss xmm0, dword [eax]
movss dword [eax], xmm0
movss xmm0, dword [edx + 4]
add edx, 0x10
addss xmm0, dword [eax + 4]
movss dword [eax + 4], xmm0
add eax, 0x10
sub esi, 1
jne 0x424c30
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
cmp ecx, eax
jge 0x424cc0
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
lea eax, [eax + ebp*4]
mov ebp, dword [esp + 0x6c]
nop word [eax + eax]
movss xmm0, dword [eax]
add eax, 4
addss xmm0, dword [edi + ecx*4]
movss dword [edi + ecx*4], xmm0
inc ecx
cmp ecx, ebp
jl 0x424ca0
mov edi, dword [esp + 0x58]
mov eax, ebp
mov esi, dword [esp + 0x20]
sub esi, 1
mov dword [esp + 0x20], esi
jne 0x424bf1
mov edi, dword [esp + 0x60]
jmp 0x424cd8
dec eax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x68]
cmp edi, esi
jge 0x424e89
xor ebp, ebp
mov dword [esp + 0x3c], ebp
test edi, edi
jle 0x424db7
mov ebx, dword [esp + 0x70]
xor eax, eax
mov dword [esp + 0x6c], eax
mov ecx, ebp
mov edx, ebp
cmp esi, 4
jl 0x424d65
mov ebp, dword [esp + 0x7c]
add esi, 0xfffffffc
shr esi, 2
inc esi
lea eax, [esi*4]
mov dword [esp + 0x6c], eax
nop dword [eax + eax]
mov eax, dword [ebp + ecx*4]
add ecx, edi
mov dword [ebx + edx*4], eax
add edx, dword [esp + 0x14]
mov eax, dword [ebp + ecx*4]
add ecx, edi
mov dword [ebx + edx*4], eax
add edx, dword [esp + 0x14]
mov eax, dword [ebp + ecx*4]
add ecx, edi
mov dword [ebx + edx*4], eax
add edx, dword [esp + 0x14]
mov eax, dword [ebp + ecx*4]
add ecx, edi
mov dword [ebx + edx*4], eax
add edx, dword [esp + 0x14]
sub esi, 1
jne 0x424d20
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
cmp eax, esi
jge 0x424daa
mov eax, dword [esp + 0x14]
lea edx, [ebx + edx*4]
shl eax, 2
sub esi, dword [esp + 0x6c]
mov dword [esp + 0x58], eax
lea eax, [edi*4]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x50]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx]
add ecx, edi
mov dword [edx], eax
add edx, ebx
sub esi, 1
jne 0x424d95
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
inc ebp
mov dword [esp + 0x3c], ebp
cmp ebp, edi
jl 0x424cf2
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
lea edx, [edi + edi]
mov ebx, dword [esp + 0x18]
mov ecx, eax
imul ecx, dword [esp + 0x64]
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], ecx
cmp ebx, 1
jle 0x424f8d
shl eax, 2
lea ebx, [edx*4]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x7c]
mov edx, eax
mov dword [esp + 0x44], ebx
lea esi, [eax + ecx*4]
mov eax, dword [esp + 0x1c]
mov ecx, ebp
mov dword [esp + 0x64], eax
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
add ecx, ebx
add edx, ebp
mov dword [esp + 0x48], ecx
sub esi, ebp
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x68], 0
mov dword [esp + 0x50], esi
jle 0x424e68
mov eax, dword [esp + 0x14]
lea ebx, [edi*4]
mov ebp, dword [esp + 0x68]
shl eax, 2
mov edi, eax
mov eax, dword [edx]
add edx, ebx
mov dword [ecx - 4], eax
mov eax, dword [esi]
add esi, ebx
mov dword [ecx], eax
add ecx, edi
sub ebp, 1
jne 0x424e38
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x6c]
sub eax, 1
mov dword [esp + 0x64], eax
jne 0x424e07
mov ebp, dword [esp + 0x70]
lea edx, [edi + edi]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x18]
jmp 0x424f98
mov ebp, dword [esp + 0x70]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x6c], ecx
test esi, esi
jle 0x424dbb
mov edx, dword [esp + 0x7c]
add edx, 8
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], edx
lea edx, [ebp + 8]
mov dword [esp + 0x20], edx
xor ebx, ebx
mov edx, eax
mov esi, ecx
cmp edi, 4
jl 0x424f23
mov ecx, dword [esp + 0x20]
lea esi, [edi - 4]
mov edx, dword [esp + 0x24]
shr esi, 2
inc esi
lea ebx, [esi*4]
add eax, ebx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x6c]
add eax, ebx
mov dword [esp + 0x50], eax
nop dword [eax + eax]
mov eax, dword [edx - 8]
lea ecx, [ecx + 0x10]
mov dword [ecx - 0x18], eax
lea edx, [edx + 0x10]
mov eax, dword [edx - 0x14]
mov dword [ecx - 0x14], eax
mov eax, dword [edx - 0x10]
mov dword [ecx - 0x10], eax
mov eax, dword [edx - 0xc]
mov dword [ecx - 0xc], eax
sub esi, 1
jne 0x424ef0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
cmp ebx, edi
jge 0x424f57
mov eax, dword [esp + 0x7c]
lea ecx, [esi*4]
mov esi, edi
add ecx, ebp
sub esi, ebx
lea edx, [eax + edx*4]
nop dword [eax + eax]
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [ecx], eax
lea ecx, [ecx + 4]
sub esi, 1
jne 0x424f40
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x14]
lea edx, [edi*4]
add dword [esp + 0x24], edx
add eax, edi
add ecx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x6c], ecx
lea edx, [ebx*4]
add dword [esp + 0x20], edx
sub dword [esp + 0x3c], 1
jne 0x424eb7
jmp 0x424dbb
lea esi, [eax*4]
mov dword [esp + 0x6c], esi
cmp edi, 1
je 0x425279
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x68]
jge 0x425146
xor eax, eax
cmp ebx, 1
jle 0x425279
shl edx, 2
lea edi, [ebp - 8]
mov dword [esp + 0x58], edx
lea ebx, [eax - 2]
mov edx, dword [esp + 0x7c]
add ecx, 2
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x60]
lea esi, [edx + ecx*4]
add edx, 8
lea ecx, [eax + 4]
nop
add ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x58]
sub ecx, dword [esp + 0x28]
add eax, dword [esp + 0x28]
add edx, dword [esp + 0x6c]
sub esi, dword [esp + 0x6c]
add dword [esp + 0x2c], ebp
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], esi
cmp edi, 2
jle 0x425133
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], eax
lea eax, [edi - 3]
mov edi, dword [esp + 0x64]
shr eax, 1
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], eax
nop
cmp dword [esp + 0x68], 0
mov edx, dword [esp + 0x20]
jle 0x4250eb
mov eax, dword [esp + 0x14]
mov ecx, edx
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x68]
lea edi, [eax*4]
mov eax, dword [esp + 0x60]
lea ebx, [eax*4]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
add eax, dword [esp + 0x38]
lea eax, [eax*4]
add eax, dword [esp + 0x70]
nop word [eax + eax]
movss xmm0, dword [edx - 4]
addss xmm0, dword [ecx - 4]
movss dword [eax - 4], xmm0
movss xmm0, dword [ecx - 4]
subss xmm0, dword [edx - 4]
movss dword [esi - 4], xmm0
movss xmm0, dword [edx]
addss xmm0, dword [ecx]
movss dword [eax], xmm0
add eax, edi
movss xmm0, dword [edx]
add edx, ebx
subss xmm0, dword [ecx]
add ecx, ebx
movss dword [esi], xmm0
add esi, edi
sub ebp, 1
jne 0x425090
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x64]
sub ebx, 2
sub edi, 8
add edx, 8
mov dword [esp + 0x24], ebx
add esi, 8
mov dword [esp + 0x64], edi
add ecx, 4
mov dword [esp + 0x20], edx
sub eax, 1
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x3c], eax
jne 0x425040
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
sub dword [esp + 0x1c], 1
jne 0x424fe0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp ebx, 1
jle 0x425279
mov ebx, dword [esp + 0x7c]
lea eax, [edx*4]
add ecx, 2
mov dword [esp + 0x34], eax
lea edx, [ebp + 8]
lea ecx, [ebx + ecx*4]
add ebx, 8
add ebp, 0xfffffff8
nop dword [eax]
mov edi, dword [esp + 0x60]
add ebp, eax
add edx, eax
mov dword [esp + 0x40], ebp
add ebx, esi
mov dword [esp + 0x48], edx
sub ecx, esi
mov dword [esp + 0x44], ebx
cmp dword [esp + 0x68], 0
mov dword [esp + 0x4c], ecx
jle 0x42526e
lea eax, [edi*4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
lea esi, [eax*4]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
lea eax, [edi*4]
mov dword [esp + 0x50], esi
cmp edi, 2
jle 0x42523b
add edi, 0xfffffffd
mov eax, ebx
shr edi, 1
mov esi, ebp
inc edi
nop word [eax + eax]
movss xmm0, dword [eax - 4]
addss xmm0, dword [ecx - 4]
movss dword [edx - 4], xmm0
movss xmm0, dword [eax - 4]
subss xmm0, dword [ecx - 4]
movss dword [esi - 4], xmm0
movss xmm0, dword [ecx]
addss xmm0, dword [eax]
movss dword [edx], xmm0
add edx, 8
movss xmm0, dword [ecx]
add ecx, 8
subss xmm0, dword [eax]
add eax, 8
movss dword [esi], xmm0
sub esi, 8
sub edi, 1
jne 0x4251e0
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, esi
add ecx, eax
add ebp, esi
mov dword [esp + 0x64], edx
add ebx, eax
mov dword [esp + 0x3c], ecx
sub dword [esp + 0x38], 1
jne 0x4251c8
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x6c]
sub dword [esp + 0x1c], 1
jne 0x425170
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret