Function at 0x180016da0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
lea rbp, [r11 - 0x28]
sub rsp, 0x118
movaps xmmword [r11 - 0x38], xmm6
mov rax, qword [0x18007e010]
xor rax, rsp
mov qword [rbp - 0x58], rax
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rdi
mov qword [r11 + 0x18], r12
mov qword [r11 - 0x20], r14
movaps xmmword [r11 - 0x48], xmm7
movaps xmmword [r11 - 0x78], xmm10
mov r11, qword [0x18007f050]
mov rbx, r11
mov r14d, dword [r11 + 8]
movzx eax, r14b
mov rdi, qword [r11 + 0x4868]
test r14b, 2
je 0x180016e08
test byte [r11 + 0xc], 1
je 0x180016e08
mov r10b, 1
jmp 0x180016e0f
xor r10b, r10b
movzx r14d, al
mov qword [rsp + 0x110], r13
and r14b, 1
xor esi, esi
mov qword [rsp + 0x100], r15
movaps xmmword [rsp + 0xd0], xmm8
cmp byte [r11 + 0x48c6], sil
je 0x180016ea1
test rdi, rdi
je 0x180016ea1
test byte [r11 + 0x5bf4], 8
lea r12, [r11 + 0x48d4]
je 0x180016e81
movdqa xmm0, xmmword [0x1800726a0]
lea rcx, [rsp + 0x71]
movdqa xmm1, xmmword [0x180072300]
mov edx, dword [r12]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rbp - 0x70], sil
movdqu xmmword [rbp - 0x80], xmm1
call fcn.18001a790
mov r11, qword [0x18007f050]
lea rsi, [rbx + 0x48f0]
mov r9, r12
mov r15, rsi
lea r13, [rbx + 0x48c8]
xorps xmm6, xmm6
xorps xmm8, xmm8
jmp 0x180017275
mov dword [r11 + 0x48cc], esi
lea r9, [r11 + 0x48d4]
mov dword [r9], 0xffffffff
lea r13, [r11 + 0x48c8]
mov dword [r13], esi
xorps xmm6, xmm6
test rdi, rdi
je 0x18001724a
cmp qword [r11 + 0x49d8], rsi
jne 0x18001724a
test dword [rdi + 0xc], 0x40000
jne 0x18001724a
test byte [r11 + 0x46f8], 1
movss xmm5, dword [0x180072050]
movss xmm7, dword [0x18007205c]
jne 0x180016fc6
test r10b, r10b
je 0x180016f64
mov ecx, 0x26f
call fcn.1800118e0
cmp byte [rax], sil
je 0x180016f64
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x180016f64
ucomiss xmm0, xmm6
jp 0x180016f2a
je 0x180016f51
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x180016f64
mov ecx, 0x26f
call fcn.180011a50
test eax, eax
jle 0x180016f64
mov edx, 0xffffffff
mov ecx, 0x26f
call fcn.1800126e0
test al, al
jne 0x180016fc3
test r14b, r14b
je 0x180016fc6
mov ecx, 0x201
call fcn.1800118e0
cmp byte [rax], sil
je 0x180016fc6
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x180016fc6
ucomiss xmm0, xmm6
jp 0x180016f89
je 0x180016fb0
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x180016fc6
mov ecx, 0x201
call fcn.180011a50
test eax, eax
jle 0x180016fc6
mov edx, 0xffffffff
mov ecx, 0x201
call fcn.1800126e0
test al, al
je 0x180016fc6
mov dword [r9], esi
mov eax, dword [r11 + 0x46f8]
shr eax, 1
test al, 1
jne 0x18001709c
test r10b, r10b
je 0x180017036
mov ecx, 0x270
call fcn.1800118e0
cmp byte [rax], sil
je 0x180017036
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x180017036
ucomiss xmm0, xmm6
jp 0x180016ffc
je 0x180017023
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x180017036
mov ecx, 0x270
call fcn.180011a50
test eax, eax
jle 0x180017036
mov edx, 0xffffffff
mov ecx, 0x270
call fcn.1800126e0
test al, al
jne 0x180017095
test r14b, r14b
je 0x18001709c
mov ecx, 0x202
call fcn.1800118e0
cmp byte [rax], sil
je 0x18001709c
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x18001709c
ucomiss xmm0, xmm6
jp 0x18001705b
je 0x180017082
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x18001709c
mov ecx, 0x202
call fcn.180011a50
test eax, eax
jle 0x18001709c
mov edx, 0xffffffff
mov ecx, 0x202
call fcn.1800126e0
test al, al
je 0x18001709c
mov dword [r9], 1
mov eax, dword [r11 + 0x46f8]
shr eax, 2
test al, 1
jne 0x180017173
test r10b, r10b
je 0x18001710d
mov ecx, 0x271
call fcn.1800118e0
cmp byte [rax], sil
je 0x18001710d
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x18001710d
ucomiss xmm0, xmm6
jp 0x1800170d3
je 0x1800170fa
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x18001710d
mov ecx, 0x271
call fcn.180011a50
test eax, eax
jle 0x18001710d
mov edx, 0xffffffff
mov ecx, 0x271
call fcn.1800126e0
test al, al
jne 0x18001716c
test r14b, r14b
je 0x180017173
mov ecx, 0x203
call fcn.1800118e0
cmp byte [rax], sil
je 0x180017173
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x180017173
ucomiss xmm0, xmm6
jp 0x180017132
je 0x180017159
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x180017173
mov ecx, 0x203
call fcn.180011a50
test eax, eax
jle 0x180017173
mov edx, 0xffffffff
mov ecx, 0x203
call fcn.1800126e0
test al, al
je 0x180017173
mov dword [r9], 2
mov eax, dword [r11 + 0x46f8]
shr eax, 3
test al, 1
jne 0x18001724a
test r10b, r10b
je 0x1800171e4
mov ecx, 0x272
call fcn.1800118e0
cmp byte [rax], sil
je 0x1800171e4
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x1800171e4
ucomiss xmm0, xmm6
jp 0x1800171aa
je 0x1800171d1
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x1800171e4
mov ecx, 0x272
call fcn.180011a50
test eax, eax
jle 0x1800171e4
mov edx, 0xffffffff
mov ecx, 0x272
call fcn.1800126e0
test al, al
jne 0x180017243
test r14b, r14b
je 0x18001724a
mov ecx, 0x204
call fcn.1800118e0
cmp byte [rax], sil
je 0x18001724a
movss xmm0, dword [rax + 4]
comiss xmm6, xmm0
ja 0x18001724a
ucomiss xmm0, xmm6
jp 0x180017209
je 0x180017230
movss xmm1, dword [r11 + 0x3c]
movss xmm2, dword [r11 + 0x40]
mulss xmm1, xmm5
mulss xmm2, xmm7
comiss xmm0, xmm1
jbe 0x18001724a
mov ecx, 0x204
call fcn.180011a50
test eax, eax
jle 0x18001724a
mov edx, 0xffffffff
mov ecx, 0x204
call fcn.1800126e0
test al, al
je 0x18001724a
mov dword [r9], 3
movaps xmm0, xmmword [0x1800728f0]
lea r15, [r11 + 0x48f0]
mov eax, dword [r9]
mov rsi, r15
mov dword [r11 + 0x48dc], eax
mov r12, r9
xorps xmm8, xmm8
movups xmmword [r15], xmm0
test rdi, rdi
je 0x1800172c8
cmp dword [r9], 0xffffffff
jne 0x1800172c8
test r14b, r14b
je 0x1800172c8
call fcn.180017f60
movaps xmm8, xmm0
ucomiss xmm8, xmm6
jp 0x180017291
je 0x1800172c1
movups xmm1, xmmword [rdi + 0x1d8]
movaps xmm2, xmm8
movups xmmword [r15], xmm1
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
addss xmm2, xmm0
movaps xmm0, xmm8
addss xmm0, dword [r15 + 0xc]
movss dword [r15 + 4], xmm2
movss dword [r15 + 0xc], xmm0
mov r11, qword [0x18007f050]
mov ecx, dword [r12]
mov r15, qword [rsp + 0x100]
mov r14, qword [rsp + 0x108]
mov r12, qword [rsp + 0x140]
mov byte [rbx + 0x48c6], 0
cmp ecx, 0xffffffff
je 0x180017309
mov r9d, dword [rbx + 0x48cc]
mov r8d, dword [rbx + 0x48c8]
mov edx, dword [rbx + 0x48dc]
call fcn.180015930
movzx eax, byte [rbx + 0x48c4]
movss xmm10, dword [0x180072070]
test al, al
je 0x18001769f
cmp dword [rbx + 0x4870], 0
jne 0x180017453
test byte [rbx + 0x5bf4], 8
mov dword [rbp - 0x68], 0x554e3c74
mov dword [rbp - 0x64], 0x3e4c4c
je 0x180017431
test rdi, rdi
je 0x180017353
mov rdx, qword [rdi]
jmp 0x180017357
lea rdx, [rbp - 0x67]
movdqa xmm0, xmmword [0x180072630]
xor ecx, ecx
movdqa xmm1, xmmword [0x180072640]
movdqu xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x50], 0x74637f67
movdqa xmm0, xmmword [0x180072770]
movdqu xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x54], 0xc62233b
movdqu xmmword [rsp + 0x30], xmm1
mov byte [rsp + 0x58], 0
nop dword [rax + rax]
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x21], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x22], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x23], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x24], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x25], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x26], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x27], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x28], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x29], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x2a], al
movzx eax, byte [rsp + 0x20]
xor byte [rsp + rcx + 0x2b], al
add rcx, 0xb
cmp rcx, 0x37
jb 0x1800173a0
mov r8d, dword [rbx + 0x48a4]
lea rcx, [rsp + 0x21]
mov byte [rsp + 0x58], 0
call fcn.18001a790
movzx eax, byte [rbx + 0x48c4]
mov r11, qword [0x18007f050]
mov word [rbx + 0x48ad], 0x101
mov dword [rbx + 0x48b0], 0
mov byte [rbx + 0x48aa], 0
test al, al
je 0x18001769f
cmp dword [rbx + 0x48a0], 3
jne 0x18001769f
movsxd rax, dword [rbx + 0x48a4]
test eax, eax
jne 0x18001769f
test rdi, rdi
je 0x18001769f
mov edx, dword [r13]
mov r8d, edx
movss xmm0, dword [rdi + 0xf0]
and edx, 0xa
movss xmm1, dword [rdi + 0xf4]
movss xmm4, dword [rdi + 0x1e0]
movss xmm5, dword [rdi + 0x1e4]
addss xmm4, xmm10
movss xmm2, dword [rdi + 0x1d8]
addss xmm5, xmm10
movss xmm3, dword [rdi + 0x1dc]
subss xmm2, xmm10
subss xmm3, xmm10
subss xmm4, xmm0
subss xmm5, xmm1
subss xmm2, xmm0
subss xmm3, xmm1
and r8d, 5
je 0x1800174e4
test edx, edx
jne 0x18001769f
add rax, rax
movaps xmmword [rsp + 0xc0], xmm9
movss xmm9, dword [rdi + rax*8 + 0x388]
comiss xmm9, xmm2
jb 0x180017577
movss xmm0, dword [rdi + rax*8 + 0x38c]
comiss xmm0, xmm3
jb 0x180017577
comiss xmm4, dword [rdi + rax*8 + 0x390]
jb 0x180017577
comiss xmm5, dword [rdi + rax*8 + 0x394]
jb 0x180017577
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
movaps xmm9, xmmword [rsp + 0xc0]
movsxd rax, dword [rbx + 0x48a4]
add rax, rax
movss xmm0, dword [rdi + rax*8 + 0x388]
comiss xmm0, dword [rdi + rax*8 + 0x390]
ja 0x180017756
movss xmm0, dword [rdi + rax*8 + 0x38c]
comiss xmm0, dword [rdi + rax*8 + 0x394]
ja 0x180017756
movups xmm0, xmmword [rdi + rax*8 + 0x388]
jmp 0x180017759
movss xmm1, dword [r11 + 0x3c04]
movaps xmm0, xmm4
mulss xmm1, dword [rdi + 0x270]
subss xmm0, xmm2
mov rcx, qword [rdi + 0x348]
movss xmm7, dword [0x18007203c]
movaps xmm6, xmm1
test rcx, rcx
je 0x1800175b6
mulss xmm6, dword [rcx + 0x270]
mulss xmm1, dword [rcx + 0x270]
mulss xmm6, xmm7
mulss xmm1, xmm7
movss xmm7, dword [0x18007213c]
minss xmm0, xmm6
movaps xmm6, xmm5
subss xmm6, xmm3
minss xmm6, xmm1
movss xmm1, dword [0x180072170]
test r8d, r8d
jne 0x1800175ec
addss xmm2, xmm0
subss xmm4, xmm0
jmp 0x1800175f2
movaps xmm2, xmm1
movaps xmm4, xmm7
test edx, edx
jne 0x180017600
addss xmm3, xmm6
subss xmm5, xmm6
jmp 0x180017606
movaps xmm3, xmm1
movaps xmm5, xmm7
movss xmm0, dword [rdi + rax*8 + 0x38c]
comiss xmm3, xmm0
jbe 0x180017619
movaps xmm1, xmm3
jmp 0x180017620
movaps xmm1, xmm5
minss xmm1, xmm0
comiss xmm2, xmm9
jbe 0x18001762b
movaps xmm0, xmm2
jmp 0x180017633
movaps xmm0, xmm4
minss xmm0, xmm9
movss dword [rdi + rax*8 + 0x388], xmm0
movss dword [rdi + rax*8 + 0x38c], xmm1
movss xmm0, dword [rdi + rax*8 + 0x394]
comiss xmm3, xmm0
ja 0x18001765a
movaps xmm3, xmm5
minss xmm3, xmm0
movss xmm0, dword [rdi + rax*8 + 0x390]
comiss xmm2, xmm0
ja 0x18001766f
movaps xmm2, xmm4
minss xmm2, xmm0
movss dword [rdi + rax*8 + 0x390], xmm2
movss dword [rdi + rax*8 + 0x394], xmm3
mov dword [rbx + 0x4870], 0
mov qword [rbp - 0x68], 0
mov dword [rbp - 0x5c], 0
jmp 0x180017529
xorps xmm2, xmm2
movups xmmword [rbp - 0x68], xmm2
test rdi, rdi
jne 0x180017532
xorps xmm0, xmm0
xorps xmm4, xmm4
shufps xmm0, xmm2, 0xff
xorps xmm5, xmm5
movaps xmm6, xmm0
shufps xmm4, xmm2, 0xaa
xorps xmm0, xmm0
shufps xmm0, xmm2, 0x55
movaps xmm7, xmm0
movaps xmm10, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xd0]
mov r13, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x138]
movups xmmword [rbx + 0x48e0], xmm2
mov rbx, qword [rsp + 0x130]
movss xmm0, dword [rsi]
comiss xmm0, xmm5
jbe 0x18001770b
movss dword [rsi], xmm5
movss xmm0, dword [rsi + 4]
comiss xmm0, xmm7
jbe 0x18001771a
movss dword [rsi + 4], xmm7
comiss xmm4, dword [rsi + 8]
movaps xmm7, xmmword [rsp + 0xe0]
jbe 0x18001772d
movss dword [rsi + 8], xmm4
comiss xmm6, dword [rsi + 0xc]
jbe 0x180017738
movss dword [rsi + 0xc], xmm6
mov rcx, qword [rbp - 0x58]
xor rcx, rsp
call fcn.18006ba20
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x118
pop rsi
pop rbp
ret
xorps xmm0, xmm0
movss xmm2, dword [rdi + 0xf0]
lea rax, [rsp + 0x60]
movups xmmword [rsp + 0x60], xmm0
movups xmm4, xmmword [rax]
movss xmm0, dword [rdi + 0xf4]
movaps xmm5, xmm4
movaps xmm7, xmm4
addss xmm5, xmm2
shufps xmm7, xmm4, 0x55
movaps xmm6, xmm4
addss xmm7, xmm0
shufps xmm6, xmm4, 0xff
shufps xmm4, xmm4, 0xaa
addss xmm6, xmm0
addss xmm4, xmm2
addss xmm5, xmm10
addss xmm7, xmm8
addss xmm6, xmm8
minss xmm5, xmm4
movss dword [rbp - 0x68], xmm5
movaps xmm4, xmm5
movss dword [rbp - 0x60], xmm5
movups xmm2, xmmword [rbp - 0x68]
shufps xmm2, xmm2, 0xe1
movss xmm2, xmm7
shufps xmm2, xmm2, 0x87
movss xmm2, xmm6
shufps xmm2, xmm2, 0x27
movss xmm2, xmm5
shufps xmm2, xmm2, 0xc9
jmp 0x1800176cd