Function at 0x180025700
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push r12
push r13
push r15
lea rbp, [r11 - 0x68]
sub rsp, 0x138
mov rax, qword [0x18008d040]
xor rax, rsp
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0x90]
mov r12d, r9d
mov r15d, dword [rcx + 0xc]
mov r13, r8
mov rsi, qword [0x18008dc98]
mov rbx, rcx
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x50], r9d
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x58], rdx
test r15b, 0x42
jne 0x180026039
cmp dword [rcx + 0xa8], 0
jg 0x180026039
cmp dword [rcx + 0xac], 0
jg 0x180026039
movss xmm1, dword [rsi + 0x1778]
movss xmm0, dword [rcx + 0x60]
movaps xmm2, xmm1
mulss xmm1, dword [0x1800824fc]
mov qword [r11 + 0x20], rdi
xor edi, edi
mulss xmm2, dword [0x180082540]
mov qword [r11 - 0x38], r14
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x58], xmm7
movss xmm7, dword [0x180082534]
movaps xmmword [r11 - 0x68], xmm8
addss xmm0, xmm7
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x88], xmm10
movaps xmmword [r11 - 0x98], xmm11
movss xmm11, dword [0x180082610]
addss xmm0, xmm1
shr r15d, 0xf
and r15d, 4
movaps xmmword [r11 - 0xa8], xmm12
cmp byte [0x18008238f], dil
movaps xmm8, xmm11
movaps xmmword [r11 - 0xc8], xmm14
movaps xmm9, xmm11
mov dword [rsp + 0x54], r15d
movaps xmm14, xmm11
maxss xmm2, xmm0
movaps xmm12, xmm11
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x180082520]
cvttss2si eax, xmm0
movd xmm6, eax
mov rax, qword [0x180082388]
cvtdq2ps xmm6, xmm6
mov qword [rsp + 0x38], rax
movss dword [rsp + 0x40], xmm6
je 0x1800259a4
cmp dword [0x18008d088], 2
jl 0x18002595e
movdqa xmm2, xmmword [0x1800826b0]
movdqa xmm3, xmmword [0x1800826c0]
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x1800827c0]
movdqa xmm0, xmm2
movss xmm6, dword [rsp + 0x40]
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800826d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x38]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
andps xmm2, xmmword [0x1800826f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.3333333333333333]
xorps xmm2, xmm0
punpckldq xmm1, xmm3
movd dword [rsp + 0x38], xmm2
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1800826d0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, dword [rsp + 0x3c]
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1800826f0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.3333333333333333]
xorps xmm2, xmm0
movd dword [rsp + 0x3c], xmm2
jmp 0x1800259a4
lea r9, [rsp + 0x38]
mov r8d, edi
nop word [rax + rax]
mov eax, 0x92492493
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x33
xor byte [r9 - 1], al
cmp r8d, 8
jl 0x180025970
lea rcx, [rsp + 0x38]
call fcn.180029b70
mov r14d, edi
xorps xmm10, xmm10
test r12d, r12d
jle 0x180025ce5
lea r15, [0x18008ddc4]
nop word [rax + rax]
movss xmm0, dword [rbx + 0x18]
movaps xmm4, xmm6
movss xmm1, dword [rbx + 0x1c]
movaps xmm3, xmm0
addss xmm3, dword [rbx + 0x20]
mulss xmm4, dword [r15 + 4]
movaps xmm2, xmm1
addss xmm2, dword [rbx + 0x24]
subss xmm3, xmm0
subss xmm2, xmm1
mulss xmm3, dword [r15 - 4]
mulss xmm2, dword [r15]
addss xmm3, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [r15 + 8]
addss xmm2, xmm1
addss xmm4, xmm3
movss dword [rsp + 0x78], xmm3
addss xmm0, xmm2
movss dword [rsp + 0x7c], xmm2
comiss xmm3, xmm4
movss dword [rbp - 0x7c], xmm0
movss dword [rbp - 0x80], xmm4
jbe 0x180025a45
movss dword [rsp + 0x78], xmm4
movss dword [rbp - 0x80], xmm3
comiss xmm2, xmm0
jbe 0x180025a55
movss dword [rsp + 0x7c], xmm0
movss dword [rbp - 0x7c], xmm2
mov r8, qword [rbx + 0x1d8]
lea rcx, [rsp + 0x70]
mov eax, r14d
mov edx, 8
mov qword [rsp + 0x70], rax
movsxd rax, dword [rbx + 0x1d0]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.18001ea20
mov rcx, qword [0x18008dc98]
cmp dword [rcx + 0x1890], eax
jne 0x180025a95
mov byte [rcx + 0x189c], 1
lea r9, [rsp + 0x30]
mov dword [rsp + 0x20], 0x20
lea r8, [rsp + 0x31]
mov edx, eax
lea rcx, [rsp + 0x78]
call fcn.1800291f0
movzx r13d, byte [rsp + 0x31]
movzx r12d, byte [rsp + 0x30]
test r13b, r13b
jne 0x180025ac9
test r12b, r12b
je 0x180025ada
mov eax, r14d
not eax
and eax, 1
add eax, 5
mov dword [rsi + 0x1a70], eax
cmp qword [rsi + 0x1870], rbx
jne 0x180025b67
test r12b, r12b
je 0x180025c86
cmp byte [rsi + 0x3b5], dil
je 0x180025b67
test r14d, r14d
jne 0x180025b67
mov rax, qword [rsp + 0x58]
lea rcx, [rsp + 0x60]
mov rdx, rbx
mov r8, qword [rax]
call fcn.1800250d0
mov rdx, qword [0x18008dc98]
movss xmm14, dword [rax]
mov ecx, dword [rdx + 0x1890]
test ecx, ecx
movss xmm12, dword [rax + 4]
setne al
mov byte [rdx + 0x189d], al
test ecx, ecx
je 0x180025b40
mov dword [rdx + 0x1898], edi
mov dword [rdx + 0x1890], edi
mov byte [rdx + 0x189e], dil
mov qword [rdx + 0x18a8], rdi
test r12b, r12b
je 0x180025ca4
mov ecx, 0x20
jmp 0x180025caf
test r12b, r12b
je 0x180025c86
movss xmm2, dword [r15 - 4]
lea rcx, [rsp + 0x38]
movss xmm3, dword [r15]
mov rdx, rbx
movss xmm0, dword [rsi + 0x110]
subss xmm0, dword [rsi + 0x18a0]
movss xmm1, dword [rbx + 0x1c]
movss xmm6, dword [rbp - 0x80]
movaps xmm9, xmm1
subss xmm6, dword [rsp + 0x78]
addss xmm1, dword [rbx + 0x24]
movss xmm7, dword [rsi + 0x114]
subss xmm7, dword [rsi + 0x18a4]
mulss xmm6, xmm2
addss xmm6, xmm0
movss xmm0, dword [rbp - 0x7c]
subss xmm0, dword [rsp + 0x7c]
mulss xmm0, xmm3
addss xmm7, xmm0
movss xmm0, dword [rbx + 0x18]
movaps xmm8, xmm0
addss xmm0, dword [rbx + 0x20]
subss xmm8, xmm6
subss xmm9, xmm7
mulss xmm8, xmm2
mulss xmm9, xmm3
addss xmm8, xmm6
subss xmm6, xmm0
addss xmm9, xmm7
subss xmm7, xmm1
mulss xmm6, xmm2
mulss xmm7, xmm3
addss xmm6, xmm0
addss xmm7, xmm1
subss xmm6, xmm8
subss xmm7, xmm9
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r8, xmm0
call fcn.1800250d0
movss xmm0, dword [r15 - 4]
ucomiss xmm0, xmm10
movss xmm14, dword [rsp + 0x38]
jp 0x180025c57
jne 0x180025c57
movaps xmm0, xmm14
subss xmm0, xmm6
subss xmm8, xmm0
movss xmm0, dword [r15]
ucomiss xmm0, xmm10
movss xmm12, dword [rsp + 0x3c]
jp 0x180025c78
jne 0x180025c78
movaps xmm0, xmm12
subss xmm0, xmm7
subss xmm9, xmm0
movss xmm7, dword [0x180082534]
movss xmm6, dword [rsp + 0x40]
test r14d, r14d
je 0x180025b54
test r12b, r12b
jne 0x180025b5d
test r13b, r13b
jne 0x180025ca4
mov r12, qword [rsp + 0x48]
jmp 0x180025cc0
test r13b, r13b
mov ecx, edi
setne cl
add ecx, 0x1e
movaps xmm1, xmm7
call fcn.18001ee60
mov r12, qword [rsp + 0x48]
mov dword [r12], eax
add r12, 4
inc r14d
add r15, 0x18
mov qword [rsp + 0x48], r12
cmp r14d, dword [rsp + 0x50]
jl 0x1800259d0
mov r15d, dword [rsp + 0x54]
mov r13, qword [rsp + 0x68]
mov r14, qword [rsp + 0x130]
test r15d, r15d
je 0x180025f3f
movaps xmmword [rsp + 0xb0], xmm13
movss xmm13, dword [0x1800825c4]
movaps xmmword [rsp + 0x90], xmm15
movss xmm15, dword [0x1800824f4]
nop word [rax + rax]
movaps xmm3, xmm6
movss dword [rsp + 0x20], xmm13
mov r8d, edi
lea rcx, [rsp + 0x78]
mov rdx, rbx
call fcn.1800255c0
mov r8, qword [rbx + 0x1d8]
lea eax, [rdi + 4]
cdqe
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
mov edx, 8
movsxd rax, dword [rbx + 0x1d0]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.18001ea20
mov rcx, qword [0x18008dc98]
cmp dword [rcx + 0x1890], eax
jne 0x180025d7c
mov byte [rcx + 0x189c], 1
lea r9, [rsp + 0x31]
mov dword [rsp + 0x20], 0x20
lea r8, [rsp + 0x30]
mov edx, eax
lea rcx, [rsp + 0x78]
call fcn.1800291f0
cmp byte [rsp + 0x30], 0
movzx ecx, byte [rsp + 0x31]
je 0x180025db4
movss xmm0, dword [rsi + 0x188c]
comiss xmm0, xmm15
ja 0x180025dbc
test cl, cl
je 0x180025f19
mov eax, edi
and eax, 1
add eax, 3
mov dword [rsi + 0x1a70], eax
test cl, cl
je 0x180025f19
mov dword [r13], edi
movaps xmm11, xmm10
movss xmm0, dword [rbx + 0x18]
movaps xmm12, xmm10
movss xmm1, dword [rbx + 0x1c]
movaps xmm6, xmm0
movaps xmm7, xmm1
test edi, edi
jne 0x180025e04
movss xmm7, dword [rsi + 0x114]
subss xmm7, dword [rsi + 0x18a4]
jmp 0x180025e67
cmp edi, 1
jne 0x180025e29
movss xmm6, dword [rsi + 0x110]
subss xmm6, dword [rsi + 0x18a0]
movss xmm12, dword [0x180082534]
addss xmm6, xmm13
jmp 0x180025e6b
cmp edi, 2
jne 0x180025e52
movss xmm7, dword [rsi + 0x114]
movaps xmm12, xmm10
subss xmm7, dword [rsi + 0x18a4]
movss xmm11, dword [0x180082534]
addss xmm7, xmm13
jmp 0x180025e6f
cmp edi, 3
jne 0x180025e6f
movss xmm6, dword [rsi + 0x110]
subss xmm6, dword [rsi + 0x18a0]
movaps xmm12, xmm10
movaps xmm11, xmm10
movaps xmm8, xmm0
lea rcx, [rsp + 0x48]
addss xmm0, dword [rbx + 0x20]
subss xmm8, xmm6
movaps xmm9, xmm1
addss xmm1, dword [rbx + 0x24]
subss xmm9, xmm7
mov rdx, rbx
mulss xmm8, xmm12
mulss xmm9, xmm11
addss xmm8, xmm6
subss xmm6, xmm0
addss xmm9, xmm7
subss xmm7, xmm1
mulss xmm6, xmm12
mulss xmm7, xmm11
addss xmm6, xmm0
addss xmm7, xmm1
subss xmm6, xmm8
subss xmm7, xmm9
movaps xmm0, xmm6
unpcklps xmm0, xmm7
movq r8, xmm0
call fcn.1800250d0
ucomiss xmm12, xmm10
movss xmm14, dword [rsp + 0x48]
jp 0x180025ef7
jne 0x180025ef7
movaps xmm0, xmm14
subss xmm0, xmm6
subss xmm8, xmm0
ucomiss xmm11, xmm10
movss xmm12, dword [rsp + 0x4c]
jp 0x180025f13
jne 0x180025f13
movaps xmm0, xmm12
subss xmm0, xmm7
subss xmm9, xmm0
movss xmm6, dword [rsp + 0x40]
inc edi
cmp edi, r15d
jl 0x180025d20
movaps xmm15, xmmword [rsp + 0x90]
movaps xmm13, xmmword [rsp + 0xb0]
movss xmm11, dword [0x180082610]
mov rax, qword [0x18008dc98]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
mov rdi, qword [rsp + 0x188]
mov rcx, qword [rax + 0x1860]
dec dword [rcx + 0x1d0]
ucomiss xmm14, xmm11
jp 0x180025f73
je 0x180025fa2
test dword [rbx + 0xc], 0x100
mov rcx, qword [0x18008dc98]
movss dword [rbx + 0x28], xmm14
movss dword [rbx + 0x2c], xmm12
jne 0x180025fa2
comiss xmm10, dword [rcx + 0x2a10]
jb 0x180025fa2
mov eax, dword [rcx + 0x14]
mov dword [rcx + 0x2a10], eax
movaps xmm14, xmmword [rsp + 0xa0]
movaps xmm12, xmmword [rsp + 0xc0]
ucomiss xmm8, xmm11
movaps xmm11, xmmword [rsp + 0xd0]
jp 0x180025fc5
je 0x180026014
test dword [rbx + 0xc], 0x100
mov rcx, qword [0x18008dc98]
cvttss2si eax, xmm8
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvttss2si eax, xmm9
movss dword [rbx + 0x10], xmm1
movss dword [rbx + 0x18], xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0x14], xmm0
movss dword [rbx + 0x1c], xmm0
jne 0x180026014
comiss xmm10, dword [rcx + 0x2a10]
jb 0x180026014
mov eax, dword [rcx + 0x14]
mov dword [rcx + 0x2a10], eax
movsd xmm0, qword [rbx + 0x28]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movsd qword [rbx + 0x20], xmm0
mov rcx, qword [rbp - 0x78]
xor rcx, rsp
call fcn.180041300
add rsp, 0x138
pop r15
pop r13
pop r12
pop rsi
pop rbx
pop rbp
ret