Function at 0x180025550
Capabilities:
Encrypt data using speck

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1f8]
sub rsp, 0x2c0
movups xmm0, xmmword [rcx + 0x70]
mov rbx, r8
xor r8d, r8d
movups xmm1, xmmword [rcx + 0x50]
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x70], r8d
movaps xmmword [rax - 0x48], xmm6
mov r15d, r8d
movaps xmmword [rax - 0x68], xmm8
mov r13d, r8d
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov dword [rsp + 0x78], r8d
mov dword [rbp - 0x80], r8d
mov dword [rsp + 0x7c], r8d
mov r8d, edx
movaps xmmword [rax - 0xd8], xmm15
lea rdx, [rbp - 0x70]
movaps xmmword [rax - 0x58], xmm7
mov dword [rsp + 0x74], 1
movups xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp - 0x70], xmm1
call fcn.180023380
movss xmm13, dword [rbp - 0x48]
xorps xmm8, xmm8
movss xmm14, dword [rbp - 0x4c]
xor r11d, r11d
movss xmm15, dword [rbp - 0x50]
movups xmm2, xmmword [rax]
movss xmm11, dword [rbp - 0x54]
movss xmm10, dword [rbp - 0x58]
movdqa xmm0, xmm2
movss xmm12, dword [rbp - 0x5c]
movdqa xmm1, xmm2
movss xmm9, dword [rbp - 0x60]
movq rdx, xmm2
movss xmm6, dword [rbp - 0x40]
psrldq xmm0, 0xc
movd r8d, xmm0
movdqa xmm0, xmm2
psrldq xmm1, 8
movd r12d, xmm1
psrldq xmm0, 8
movaps xmmword [rsp + 0x60], xmm2
movq qword [rsp + 0x68], xmm0
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x50], rdx
mov rax, qword [rsp + 0x68]
lea r9, [0x180000000]
movss xmm5, dword [0x1800e5ec0]
movss xmm4, dword [0x1800e5ef0]
shr rax, 0x20
cmp r12d, eax
jge 0x180025b87
movsxd rax, r12d
mov esi, r11d
inc r12d
mov dword [rbp + 0x218], 1
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x68], r12d
movzx r14d, byte [rax + rdx]
movzx edi, r14b
lea eax, [rdi - 1]
cmp eax, 0x1e
ja case.0x1800256e6.2
cdqe
mov ecx, dword [r9 + rax*4 + 0x265e4]
add rcx, r9
jmp rcx
cmp dword [rsp + 0x74], 0
mov edi, dword [rsp + 0x70]
je 0x180025701
mov eax, r13d
cdq
sub eax, edx
sar eax, 1
add edi, eax
mov dword [rsp + 0x70], edi
lea eax, [rdi + 7]
mov dword [rsp + 0x74], r11d
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, r12d
mov dword [rsp + 0x48], eax
mov r12d, eax
cmp eax, r8d
jg 0x18002572e
test eax, eax
js 0x18002572e
mov dword [rsp + 0x68], eax
jmp 0x180025832
mov r12d, r8d
mov dword [rsp + 0x48], r8d
mov dword [rsp + 0x68], r8d
jmp 0x180025832
mov eax, r13d
cdq
sub eax, edx
sar eax, 1
add dword [rsp + 0x70], eax
jmp 0x180025832
mov dword [rsp + 0x74], r11d
cmp r13d, 2
jl 0x180025b87
mov rcx, rbx
call fcn.180025220
movsxd rax, r13d
movss xmm2, dword [rbp + rax*4 - 0x68]
addss xmm2, dword [rbx + 0x10]
movss xmm0, dword [rbp + rax*4 - 0x64]
addss xmm0, dword [rbx + 0x14]
cmp dword [rbx], 0
movss dword [rbx + 0x10], xmm2
movss dword [rbx + 8], xmm2
movss dword [rbx + 0x14], xmm0
movss dword [rbx + 0xc], xmm0
cvttss2si r9d, xmm0
cvttss2si r8d, xmm2
je 0x180025803
lea rcx, [rbx + 4]
cmp r8d, dword [rbx + 0x1c]
jg 0x1800257b3
cmp dword [rcx], 0
jne 0x1800257b7
mov dword [rbx + 0x1c], r8d
mov rax, rcx
cmp r9d, dword [rbx + 0x24]
jg 0x1800257c9
cmp dword [rcx], 0
jne 0x1800257cd
lea rax, [rbx + 4]
mov dword [rbx + 0x24], r9d
mov rdx, rax
cmp r8d, dword [rbx + 0x18]
jl 0x1800257df
cmp dword [rcx], 0
jne 0x1800257e3
lea rdx, [rbx + 4]
mov dword [rbx + 0x18], r8d
mov rcx, rax
cmp r9d, dword [rbx + 0x20]
jl 0x1800257f4
cmp dword [rax], 0
mov rcx, rdx
jne 0x1800257fb
mov dword [rbx + 0x20], r9d
mov rax, rcx
mov dword [rax], 1
jmp 0x180025827
movsxd rax, dword [rbx + 0x30]
imul rcx, rax, 0xe
mov rax, qword [rbx + 0x28]
mov byte [rcx + rax + 0xc], 1
mov word [rcx + rax], r8w
xor r8d, r8d
mov word [rcx + rax + 2], r9w
mov qword [rcx + rax + 4], r8
inc dword [rbx + 0x30]
xor r11d, r11d
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rbp + 0x218]
mov r15d, dword [rsp + 0x78]
test ecx, ecx
mov eax, r11d
cmove eax, r13d
mov r13d, eax
mov dword [rbp - 0x80], eax
jmp 0x18002567e
mov dword [rsp + 0x74], r11d
cmp r13d, 1
jl 0x180025b87
mov rcx, rbx
call fcn.180025220
movss xmm2, dword [rbx + 0x10]
addss xmm2, xmm8
movsxd rax, r13d
jmp 0x180025776
mov dword [rsp + 0x74], r11d
cmp r13d, 1
jl 0x180025b87
mov rcx, rbx
call fcn.180025220
movss xmm0, dword [rbx + 0x14]
movsxd rax, r13d
addss xmm0, xmm8
movss xmm2, dword [rbp + rax*4 - 0x64]
addss xmm2, dword [rbx + 0x10]
jmp 0x180025781
cmp r13d, 2
jl 0x180025b87
mov r8d, dword [rbx + 0x30]
lea r10, [rbp - 0x60]
mov esi, dword [rbx]
lea rax, [rbx + 4]
movss xmm0, dword [rbx + 0x10]
mov r11d, r8d
movss xmm1, dword [rbx + 0x14]
mov edi, 1
xor r12d, r12d
mov rcx, rax
addss xmm0, dword [r10]
addss xmm1, dword [r10 + 4]
cvttss2si edx, xmm0
cvttss2si r9d, xmm1
test esi, esi
je 0x180025953
cmp edx, dword [rbx + 0x1c]
jg 0x180025905
cmp dword [rax], r12d
jne 0x18002590c
mov dword [rbx + 0x1c], edx
lea rax, [rbx + 4]
cmp r9d, dword [rbx + 0x24]
jg 0x180025917
cmp dword [rcx], r12d
jne 0x18002591f
mov dword [rbx + 0x24], r9d
lea rax, [rbx + 4]
mov rcx, rax
cmp edx, dword [rbx + 0x18]
jl 0x180025930
cmp dword [rax], r12d
jne 0x180025933
lea rcx, [rbx + 4]
mov dword [rbx + 0x18], edx
mov rdx, rax
cmp r9d, dword [rbx + 0x20]
jl 0x180025944
mov rdx, rcx
cmp dword [rax], r12d
jne 0x18002594b
mov dword [rbx + 0x20], r9d
mov rax, rdx
mov dword [rax], 1
jmp 0x180025976
movsxd rax, r8d
imul rcx, rax, 0xe
mov rax, qword [rbx + 0x28]
mov byte [rcx + rax + 0xc], 2
mov word [rcx + rax], dx
mov word [rcx + rax + 2], r9w
mov qword [rcx + rax + 4], r12
lea rax, [rbx + 4]
inc r11d
add edi, 2
add r10, 8
mov r8d, r11d
cmp edi, r13d
jl 0x1800258e0
mov r12d, dword [rsp + 0x48]
movss dword [rbx + 0x10], xmm0
movss dword [rbx + 0x14], xmm1
mov dword [rbx + 0x30], r11d
jmp 0x18002582a
cmp r13d, 1
jl 0x180025b87
lea r8, [rbx + 0x10]
lea r9, [rbx + 0x14]
lea rdx, [rbx + 0x30]
lea r11, [rbx + 0x28]
jmp 0x180025a93
cmp r13d, 1
jl 0x180025b87
lea r8, [rbx + 0x10]
lea r9, [rbx + 0x14]
mov rdi, r8
lea rdx, [rbx + 0x30]
mov r10, r9
lea r11, [rbx + 0x28]
mov r15, rdx
mov r14, r11
lea rcx, [rbx + 4]
cmp dword [rbx], 0
movss xmm0, dword [r10]
addss xmm0, xmm8
movsxd rax, esi
movss xmm1, dword [rbp + rax*4 - 0x60]
addss xmm1, dword [rdi]
movss dword [r10], xmm0
movss dword [rdi], xmm1
cvttss2si edi, xmm0
cvttss2si r10d, xmm1
je 0x180025a6f
cmp r10d, dword [rbx + 0x1c]
jg 0x180025a26
cmp dword [rcx], 0
jne 0x180025a2a
mov dword [rbx + 0x1c], r10d
cmp edi, dword [rbx + 0x24]
jg 0x180025a34
cmp dword [rcx], 0
jne 0x180025a37
mov dword [rbx + 0x24], edi
lea rax, [rbx + 4]
cmp r10d, dword [rbx + 0x18]
jl 0x180025a46
cmp dword [rax], 0
jne 0x180025a4a
mov dword [rbx + 0x18], r10d
cmp edi, dword [rbx + 0x20]
jl 0x180025a54
cmp dword [rax], 0
jne 0x180025a57
mov dword [rbx + 0x20], edi
mov dword [rax], 1
lea rdx, [rbx + 0x30]
lea r8, [rbx + 0x10]
lea r9, [rbx + 0x14]
lea r11, [rbx + 0x28]
jmp 0x180025a8f
movsxd rax, dword [r15]
imul rcx, rax, 0xe
mov rax, qword [r14]
mov word [rcx + rax + 2], di
xor edi, edi
mov qword [rcx + rax + 4], rdi
mov byte [rcx + rax + 0xc], 2
mov word [rcx + rax], r10w
inc dword [rdx]
inc esi
cmp esi, r13d
jge 0x18002582a
cmp dword [rbx], 0
movss xmm1, dword [r8]
addss xmm1, xmm8
movsxd rax, esi
movss xmm0, dword [rbp + rax*4 - 0x60]
addss xmm0, dword [r9]
movss dword [r8], xmm1
cvttss2si r10d, xmm1
movss dword [r9], xmm0
cvttss2si edi, xmm0
je 0x180025b37
lea rcx, [rbx + 4]
cmp r10d, dword [rbx + 0x1c]
jg 0x180025adb
cmp dword [rcx], 0
jne 0x180025adf
mov dword [rbx + 0x1c], r10d
mov rax, rcx
cmp edi, dword [rbx + 0x24]
jg 0x180025af0
cmp dword [rcx], 0
jne 0x180025af3
lea rax, [rbx + 4]
mov dword [rbx + 0x24], edi
mov rdx, rax
cmp r10d, dword [rbx + 0x18]
jl 0x180025b05
cmp dword [rcx], 0
jne 0x180025b09
lea rdx, [rbx + 4]
mov dword [rbx + 0x18], r10d
mov rcx, rax
cmp edi, dword [rbx + 0x20]
jl 0x180025b19
cmp dword [rax], 0
mov rcx, rdx
jne 0x180025b1f
mov dword [rbx + 0x20], edi
mov rax, rcx
mov dword [rax], 1
lea r8, [rbx + 0x10]
lea r9, [rbx + 0x14]
lea r11, [rbx + 0x28]
lea rdx, [rbx + 0x30]
jmp 0x180025b5c
movsxd rax, dword [rdx]
imul rcx, rax, 0xe
mov rax, qword [r11]
mov word [rcx + rax], r10w
xor r10d, r10d
mov qword [rcx + rax + 4], r10
mov byte [rcx + rax + 0xc], 2
mov word [rcx + rax + 2], di
lea rax, [rbx + 4]
inc dword [rdx]
inc esi
mov r14, r11
mov r15, rdx
mov rcx, rax
mov r10, r9
mov rdi, r8
cmp esi, r13d
jl 0x1800259ed
jmp 0x18002582a
cmp r13d, 4
jge 0x180025c3a
xor eax, eax
movaps xmm7, xmmword [rsp + 0x2a0]
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp r13d, 4
jl 0x180025b87
mov eax, r13d
sub eax, esi
cmp eax, 5
jne 0x180025bfa
movsxd rax, esi
movss xmm0, dword [rbp + rax*4 - 0x50]
jmp 0x180025bfe
movaps xmm0, xmm8
movsxd rax, esi
mov rcx, rbx
movss dword [rsp + 0x30], xmm0
movss xmm1, dword [rbp + rax*4 - 0x58]
movss xmm0, dword [rbp + rax*4 - 0x54]
movss xmm3, dword [rbp + rax*4 - 0x5c]
movss xmm2, dword [rbp + rax*4 - 0x60]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
movaps xmm1, xmm8
call fcn.180025290
add esi, 4
lea eax, [rsi + 3]
cmp eax, r13d
jge 0x18002582a
movsxd rcx, esi
mov eax, r13d
sub eax, esi
movss xmm1, dword [rbp + rcx*4 - 0x54]
cmp eax, 5
jne 0x180025c61
movss xmm0, dword [rbp + rcx*4 - 0x50]
jmp 0x180025c65
movaps xmm0, xmm8
movss xmm3, dword [rbp + rcx*4 - 0x5c]
movaps xmm2, xmm8
movss dword [rsp + 0x30], xmm1
movss xmm1, dword [rbp + rcx*4 - 0x60]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rbp + rcx*4 - 0x58]
mov rcx, rbx
movss dword [rsp + 0x20], xmm0
call fcn.180025290
add esi, 4
lea eax, [rsi + 3]
cmp eax, r13d
jl 0x180025be5
jmp 0x18002582a
cmp r13d, 6
jl 0x180025b87
mov esi, 5
lea rdi, [rbp - 0x50]
nop dword [rax]
movss xmm0, dword [rdi + 4]
mov rcx, rbx
movss xmm1, dword [rdi]
movss xmm3, dword [rdi - 8]
movss xmm2, dword [rdi - 0xc]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rdi - 4]
movss dword [rsp + 0x28], xmm1
movss xmm1, dword [rdi - 0x10]
movss dword [rsp + 0x20], xmm0
call fcn.180025290
add esi, 6
lea rdi, [rdi + 0x18]
cmp esi, r13d
jl 0x180025cc0
jmp 0x18002582a
cmp r13d, 8
jl 0x180025b87
lea r15d, [r13 - 2]
cmp r15d, 5
jle 0x180025d87
mov r14d, 5
lea rdi, [rbp - 0x50]
nop word [rax + rax]
movss xmm0, dword [rdi + 4]
mov rcx, rbx
movss xmm1, dword [rdi]
movss xmm3, dword [rdi - 8]
movss xmm2, dword [rdi - 0xc]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rdi - 4]
movss dword [rsp + 0x28], xmm1
movss xmm1, dword [rdi - 0x10]
movss dword [rsp + 0x20], xmm0
call fcn.180025290
add esi, 6
lea rdi, [rdi + 0x18]
add r14d, 6
mov eax, esi
cmp r14d, r15d
jl 0x180025d30
inc eax
cmp eax, r13d
jge 0x180025b87
xor r11d, r11d
cmp dword [rbx], 0
movsxd rax, esi
movss xmm1, dword [rbp + rax*4 - 0x60]
addss xmm1, dword [rbx + 0x10]
movss xmm0, dword [rbp + rax*4 - 0x5c]
addss xmm0, dword [rbx + 0x14]
movss dword [rbx + 0x10], xmm1
cvttss2si r8d, xmm1
movss dword [rbx + 0x14], xmm0
cvttss2si r9d, xmm0
je 0x180025e1e
lea rcx, [rbx + 4]
cmp r8d, dword [rbx + 0x1c]
jg 0x180025dc8
cmp dword [rcx], 0
jne 0x180025dcc
mov dword [rbx + 0x1c], r8d
mov rax, rcx
cmp r9d, dword [rbx + 0x24]
jg 0x180025dde
cmp dword [rcx], 0
jne 0x180025de2
lea rax, [rbx + 4]
mov dword [rbx + 0x24], r9d
mov rdx, rax
cmp r8d, dword [rbx + 0x18]
jl 0x180025df4
cmp dword [rcx], 0
jne 0x180025df8
lea rdx, [rbx + 4]
mov dword [rbx + 0x18], r8d
mov rcx, rax
cmp r9d, dword [rbx + 0x20]
jl 0x180025e09
cmp dword [rax], 0
mov rcx, rdx
jne 0x180025e10
mov dword [rbx + 0x20], r9d
mov rax, rcx
inc dword [rbx + 0x30]
mov dword [rax], 1
jmp 0x18002582d
movsxd rax, dword [rbx + 0x30]
imul rcx, rax, 0xe
mov rax, qword [rbx + 0x28]
inc dword [rbx + 0x30]
mov byte [rcx + rax + 0xc], 2
mov word [rcx + rax], r8w
mov word [rcx + rax + 2], r9w
mov qword [rcx + rax + 4], 0
jmp 0x18002582d
cmp r13d, 8
jl 0x180025b87
lea r14d, [r13 - 6]
cmp r14d, 1
jle 0x180025f64
mov edx, dword [rbx + 0x30]
lea r10, [rbp - 0x60]
mov r15d, dword [rbx]
lea rax, [rbx + 4]
movss xmm0, dword [rbx + 0x10]
mov r11d, edx
movss xmm1, dword [rbx + 0x14]
mov edi, 1
xor r13d, r13d
nop word [rax + rax]
mov rcx, rax
addss xmm0, dword [r10]
addss xmm1, dword [r10 + 4]
cvttss2si r8d, xmm0
cvttss2si r9d, xmm1
test r15d, r15d
je 0x180025f09
cmp r8d, dword [rbx + 0x1c]
jg 0x180025eb8
cmp dword [rax], r13d
jne 0x180025ec0
mov dword [rbx + 0x1c], r8d
lea rax, [rbx + 4]
cmp r9d, dword [rbx + 0x24]
jg 0x180025ecb
cmp dword [rcx], r13d
jne 0x180025ed3
mov dword [rbx + 0x24], r9d
lea rax, [rbx + 4]
mov rdx, rax
cmp r8d, dword [rbx + 0x18]
jl 0x180025ee5
cmp dword [rax], r13d
jne 0x180025ee9
lea rdx, [rbx + 4]
mov dword [rbx + 0x18], r8d
mov rcx, rax
cmp r9d, dword [rbx + 0x20]
jl 0x180025efa
mov rcx, rdx
cmp dword [rax], r13d
jne 0x180025f01
mov dword [rbx + 0x20], r9d
mov rax, rcx
mov dword [rax], 1
jmp 0x180025f2d
movsxd rax, edx
imul rcx, rax, 0xe
mov rax, qword [rbx + 0x28]
mov byte [rcx + rax + 0xc], 2
mov word [rcx + rax], r8w
mov word [rcx + rax + 2], r9w
mov qword [rcx + rax + 4], r13
lea rax, [rbx + 4]
inc r11d
add esi, 2
add edi, 2
add r10, 8
mov edx, r11d
cmp edi, r14d
jl 0x180025e90
mov r13d, dword [rbp - 0x80]
lea eax, [rsi + 5]
movss dword [rbx + 0x10], xmm0
movss dword [rbx + 0x14], xmm1
mov dword [rbx + 0x30], r11d
cmp eax, r13d
jge 0x180025b87
movsxd rax, esi
mov rcx, rbx
movss xmm0, dword [rbp + rax*4 - 0x4c]
movss xmm2, dword [rbp + rax*4 - 0x50]
movss xmm3, dword [rbp + rax*4 - 0x58]
movss xmm1, dword [rbp + rax*4 - 0x60]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rbp + rax*4 - 0x54]
movss dword [rsp + 0x28], xmm2
movss xmm2, dword [rbp + rax*4 - 0x5c]
movss dword [rsp + 0x20], xmm0
call fcn.180025290
jmp 0x18002582a
cmp r13d, 4
jl 0x180025b87
mov eax, r13d
movaps xmm5, xmm8
and eax, 1
je 0x180025fc4
movaps xmm5, xmm9
lea esi, [rax + 3]
cmp esi, r13d
jge 0x180025837
lea rdi, [rbp - 0x54]
lea rdi, [rdi + rax*4]
nop dword [rax + rax]
movss xmm0, dword [rdi]
movss xmm1, dword [rdi - 0xc]
cmp r14b, 0x1b
jne 0x180025ffb
movaps xmm2, xmm0
movaps xmm4, xmm1
movaps xmm0, xmm8
jmp 0x180026005
movaps xmm4, xmm5
movaps xmm2, xmm8
movaps xmm5, xmm1
movss xmm3, dword [rdi - 8]
movaps xmm1, xmm4
movss dword [rsp + 0x30], xmm0
mov rcx, rbx
movss xmm0, dword [rdi - 4]
movss dword [rsp + 0x28], xmm2
movaps xmm2, xmm5
movss dword [rsp + 0x20], xmm0
call fcn.180025290
add esi, 4
add rdi, 0x10
movaps xmm5, xmm8
cmp esi, r13d
jl 0x180025fe0
jmp 0x18002582a
cmp dword [rsp + 0x7c], 0
mov rsi, qword [rbp + 0x200]
jne 0x180026089
cmp dword [rsi + 0x9c], 0
je 0x180026078
mov r8d, dword [rbp + 0x208]
lea rcx, [rbp + 0x70]
mov rdx, rsi
call fcn.180025380
xor r11d, r11d
movups xmm2, xmmword [rax]
movups xmmword [rbp + 0x60], xmm2
mov dword [rsp + 0x7c], 1
jmp 0x180026089
mov rsi, qword [rbp + 0x200]
cmp r13d, 1
jl 0x180025b87
dec r13d
cmp r15d, 0xa
jge 0x180025b87
movaps xmm0, xmmword [rsp + 0x60]
movsxd rax, r15d
inc r15d
add rax, rax
mov dword [rsp + 0x78], r15d
movups xmmword [rbp + rax*8 + 0x80], xmm0
movsxd rax, r13d
cvttss2si r8d, dword [rbp + rax*4 - 0x60]
lea rax, [rbp + 0x60]
cmp edi, 0xa
je 0x1800260d2
lea rax, [rsi + 0x60]
movups xmm1, xmmword [rax]
mov rax, qword [rax + 8]
shr rax, 0x20
movaps xmmword [rsp + 0x60], xmm1
test eax, eax
mov r10, qword [rsp + 0x60]
psrldq xmm1, 0xc
movd r9d, xmm1
mov ecx, r9d
cmovns ecx, r11d
mov dword [rsp + 0x68], ecx
cmp ecx, r9d
jl 0x180026107
xor al, al
jmp 0x180026115
movsxd rax, ecx
inc ecx
mov dword [rsp + 0x68], ecx
movzx eax, byte [rax + r10]
movzx edx, al
cmp ecx, r9d
jl 0x180026121
xor al, al
jmp 0x18002612f
movsxd rax, ecx
inc ecx
mov dword [rsp + 0x68], ecx
movzx eax, byte [rax + r10]
shl edx, 8
movzx eax, al
or edx, eax
cmp edx, 0x846c
jb 0x180026146
mov eax, 0x8000
jmp 0x180026159
cmp edx, 0x4d8
mov eax, 0x6b
mov ecx, 0x46b
cmovae eax, ecx
add r8d, eax
js 0x180026181
cmp r8d, edx
jge 0x180026181
movaps xmm0, xmmword [rsp + 0x60]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x70]
movdqa xmmword [rsp + 0x60], xmm0
call fcn.180023380
xor r11d, r11d
jmp 0x18002618d
mov qword [rbp - 0x70], r11
mov qword [rbp - 0x68], 0
movaps xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rsp + 0x60], xmm0
psrldq xmm0, 8
movq rax, xmm0
shr rax, 0x20
test eax, eax
je 0x180025b87
mov rdx, qword [rsp + 0x60]
mov r12d, r11d
mov r8d, dword [rsp + 0x6c]
mov ecx, r11d
mov qword [rsp + 0x50], rdx
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x68], r11d
mov dword [rsp + 0x40], r8d
jmp 0x18002583d
test r15d, r15d
jle 0x180025b87
dec r15d
mov ecx, r11d
movsxd rax, r15d
add rax, rax
mov dword [rsp + 0x78], r15d
movups xmm2, xmmword [rbp + rax*8 + 0x80]
movdqa xmm0, xmm2
movaps xmmword [rsp + 0x60], xmm2
psrldq xmm0, 0xc
movdqa xmm1, xmm2
movd r8d, xmm0
movq rdx, xmm2
psrldq xmm1, 8
movdqa xmm0, xmm2
movd r12d, xmm1
psrldq xmm0, 8
movq qword [rsp + 0x68], xmm0
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x50], rdx
jmp 0x18002583d
mov rax, qword [rsp + 0x68]
shr rax, 0x20
cmp r12d, eax
jl 0x180026253
xor al, al
jmp 0x180026267
movsxd rax, r12d
inc r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x68], r12d
movzx eax, byte [rax + rdx]
movzx ecx, al
sub ecx, 0x22
je 0x180026412
sub ecx, 1
je 0x1800263a0
sub ecx, 1
je 0x180026329
cmp ecx, 1
jne 0x180025b87
cmp r13d, 0xb
jl 0x180025b87
movss xmm6, dword [rbp - 0x38]
movaps xmm2, xmm10
addss xmm2, xmm9
movaps xmm3, xmm11
addss xmm3, xmm12
movaps xmm7, xmm6
addss xmm2, xmm15
addss xmm3, xmm14
addss xmm2, xmm13
addss xmm3, dword [rbp - 0x44]
addss xmm2, dword [rbp - 0x40]
addss xmm3, dword [rbp - 0x3c]
movaps xmm1, xmm2
movaps xmm0, xmm3
andps xmm1, xmm5
andps xmm0, xmm5
comiss xmm1, xmm0
jbe 0x1800262e9
movaps xmm6, xmm3
xorps xmm6, xmm4
jmp 0x1800262ef
movaps xmm7, xmm2
xorps xmm7, xmm4
movss dword [rsp + 0x30], xmm14
movaps xmm3, xmm10
movss dword [rsp + 0x28], xmm15
movaps xmm2, xmm12
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm11
mov rcx, rbx
call fcn.180025290
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm7
jmp 0x1800263e9
cmp r13d, 9
jl 0x180025b87
movss dword [rsp + 0x30], xmm8
movaps xmm3, xmm10
movss dword [rsp + 0x28], xmm15
movaps xmm2, xmm12
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm11
mov rcx, rbx
call fcn.180025290
movss xmm0, dword [rbp - 0x44]
movaps xmm3, xmm11
addss xmm3, xmm12
movaps xmm2, xmm8
movaps xmm1, xmm14
mov rcx, rbx
addss xmm3, xmm0
xorps xmm3, xmmword [0x1800e5ef0]
movss dword [rsp + 0x30], xmm3
movaps xmm3, xmm13
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm0
call fcn.180025290
jmp 0x18002582a
cmp r13d, 0xd
jl 0x180025b87
movss dword [rsp + 0x30], xmm14
movaps xmm3, xmm10
movss dword [rsp + 0x28], xmm15
movaps xmm2, xmm12
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm11
mov rcx, rbx
call fcn.180025290
movss xmm3, dword [rbp - 0x34]
movss xmm0, dword [rbp - 0x38]
movss dword [rsp + 0x30], xmm3
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rbp - 0x3c]
movaps xmm1, xmm13
movss xmm3, dword [rbp - 0x40]
mov rcx, rbx
movss xmm2, dword [rbp - 0x44]
movss dword [rsp + 0x20], xmm0
call fcn.180025290
movaps xmm6, xmm3
jmp 0x18002582a
cmp r13d, 7
jl 0x180025b87
movss dword [rsp + 0x30], xmm8
movaps xmm3, xmm12
movss dword [rsp + 0x28], xmm11
movaps xmm2, xmm8
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm10
mov rcx, rbx
call fcn.180025290
movaps xmm3, xmm10
movss dword [rsp + 0x30], xmm8
xorps xmm3, xmmword [0x1800e5ef0]
movaps xmm2, xmm8
movss dword [rsp + 0x28], xmm13
movaps xmm1, xmm15
movss dword [rsp + 0x20], xmm3
mov rcx, rbx
movaps xmm3, xmm14
call fcn.180025290
jmp 0x18002582a
cmp edi, 0xff
je 0x1800264e7
test edi, 0xffffffe0
jne 0x180026496
cmp edi, 0x1c
jne 0x180025b87
lea eax, [r12 - 1]
cmp eax, r8d
jg 0x1800264a8
mov dword [rsp + 0x68], eax
test eax, eax
jns 0x1800264ad
mov dword [rsp + 0x68], r8d
lea rcx, [rsp + 0x60]
call fcn.180022fe0
mov rdx, qword [rsp + 0x60]
xor r11d, r11d
mov r8d, dword [rsp + 0x6c]
mov r12d, dword [rsp + 0x68]
movsx ecx, ax
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x50], rdx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
jmp 0x180026585
cmp r12d, r8d
jl 0x1800264f0
xor al, al
jmp 0x180026504
movsxd rax, r12d
inc r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x68], r12d
movzx eax, byte [rax + rdx]
movzx ecx, al
cmp r12d, r8d
jl 0x180026510
xor al, al
jmp 0x180026524
movsxd rax, r12d
inc r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x68], r12d
movzx eax, byte [rax + rdx]
shl ecx, 8
movzx eax, al
or ecx, eax
cmp r12d, r8d
jl 0x180026535
xor al, al
jmp 0x180026549
movsxd rax, r12d
inc r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x68], r12d
movzx eax, byte [rax + rdx]
shl ecx, 8
movzx eax, al
or ecx, eax
cmp r12d, r8d
jl 0x18002655a
xor al, al
jmp 0x18002656e
movsxd rax, r12d
inc r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x68], r12d
movzx eax, byte [rax + rdx]
shl ecx, 8
movzx eax, al
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1800e5580]
cmp r13d, 0x30
jge 0x180025b87
movsxd rax, r13d
mov ecx, r11d
inc r13d
movss dword [rbp + rax*4 - 0x60], xmm0
movss xmm13, dword [rbp - 0x48]
movss xmm14, dword [rbp - 0x4c]
movss xmm15, dword [rbp - 0x50]
movss xmm11, dword [rbp - 0x54]
movss xmm10, dword [rbp - 0x58]
movss xmm12, dword [rbp - 0x5c]
movss xmm9, dword [rbp - 0x60]
movss xmm6, dword [rbp - 0x40]
jmp 0x18002583d
mov rcx, rbx
call fcn.180025220
mov eax, 1
jmp 0x180025b89