Function at 0x1400163b0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x78
mov rax, qword [0x140073040]
xor rax, rsp
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
mov rax, qword [rsp + 0xc8]
mov rbx, r9
mov rbp, r8
mov rsi, rdx
mov rdi, rcx
movups xmmword [rsp + 0x38], xmm0
cmp qword [rsp + 0xc0], r8
jae 0x1400163f8
mov eax, 0xffffffea
jmp 0x140016851
mov qword [rax], rbp
test rbp, rbp
jne 0x140016407
xor eax, eax
jmp 0x140016851
cmp rbx, rsi
jbe 0x14001641b
mov rax, rbx
sub rax, rsi
cmp rax, rbp
jb 0x1400168c9
mov rax, qword [rcx + 0x160]
lea rcx, [rax + r8]
cmp rcx, rax
jb 0x1400168c9
movabs rdx, 0xfffffffe0
cmp rcx, rdx
ja 0x1400168c9
mov qword [rsp + 0x58], r15
test rax, rax
jne 0x140016467
test byte [rdi + 0x168], 0xf
je 0x140016467
lea rdx, [rdi + 0x190]
mov rcx, rdi
mov r8, rdx
call fcn.140015c90
mov rax, qword [rdi + 0x160]
mov r15, rax
mov qword [rsp + 0x60], r14
and r15d, 0xf
je 0x14001655f
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], 0
mov r14d, 0x10
mov qword [rsp + 0x20], rax
sub r14, r15
lea rdx, [rdi + 0x180]
cmp r14, rbp
lea r9, [rsp + 0x38]
mov r8d, 0x10
mov rcx, rdi
cmova r14, rbp
call fcn.140016af0
mov edx, eax
test eax, eax
je 0x1400164d8
xor eax, eax
lea rdi, [rsp + 0x38]
mov ecx, 0x10
rep stosb byte [rdi], al
mov eax, edx
jmp 0x140016847
cmp dword [rdi + 0x1a0], 0
jne 0x1400164f9
lea rcx, [rdi + 0x190]
mov r9, r14
add rcx, r15
mov r8, rsi
mov rdx, rcx
call fcn.140015800
lea rdx, [rsp + 0x38]
mov r9, r14
add rdx, r15
mov r8, rsi
mov rcx, rbx
call fcn.140015800
cmp dword [rdi + 0x1a0], 1
jne 0x140016530
lea rcx, [rdi + 0x190]
mov r9, r14
add rcx, r15
mov r8, rbx
mov rdx, rcx
call fcn.140015800
lea rax, [r14 + r15]
cmp rax, 0x10
jne 0x14001654c
lea rdx, [rdi + 0x190]
mov rcx, rdi
mov r8, rdx
call fcn.140015c90
mov rax, qword [rdi + 0x160]
sub rbp, r14
add rsi, r14
add rbx, r14
add rax, r14
add rax, rbp
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x68], r13
mov r15, 0xfffffffffffffe81
mov qword [rdi + 0x160], rax
cmp rbp, 0x10
jb 0x1400167d5
mov r14, r15
sub r14, rdi
nop word [rax + rax]
lea rax, [rdi + 0x18f]
add byte [rax], 1
jne 0x1400165a9
dec rax
lea rcx, [rax + r14]
cmp rcx, 0xc
ja 0x140016597
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], 0
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
lea rdx, [rdi + 0x180]
mov rcx, rdi
call fcn.140016af0
mov edx, eax
test eax, eax
jne 0x14001682d
cmp dword [rdi + 0x1a0], eax
jne 0x14001668b
movzx eax, byte [rsi]
xor byte [rdi + 0x190], al
movzx eax, byte [rsi + 1]
xor byte [rdi + 0x191], al
movzx eax, byte [rsi + 2]
xor byte [rdi + 0x192], al
movzx eax, byte [rsi + 3]
xor byte [rdi + 0x193], al
movzx eax, byte [rsi + 4]
xor byte [rdi + 0x194], al
movzx eax, byte [rsi + 5]
xor byte [rdi + 0x195], al
movzx eax, byte [rsi + 6]
xor byte [rdi + 0x196], al
movzx eax, byte [rsi + 7]
xor byte [rdi + 0x197], al
movzx eax, byte [rsi + 8]
xor byte [rdi + 0x198], al
movzx eax, byte [rsi + 9]
xor byte [rdi + 0x199], al
movzx eax, byte [rsi + 0xa]
xor byte [rdi + 0x19a], al
movzx eax, byte [rsi + 0xb]
xor byte [rdi + 0x19b], al
movzx eax, byte [rsi + 0xc]
xor byte [rdi + 0x19c], al
movzx eax, byte [rsi + 0xd]
xor byte [rdi + 0x19d], al
movzx eax, byte [rsi + 0xe]
xor byte [rdi + 0x19e], al
movzx eax, byte [rsi + 0xf]
xor byte [rdi + 0x19f], al
xor edx, edx
lea rax, [rsi + 0xf]
cmp rbx, rax
ja 0x14001669f
lea rax, [rbx + 0xf]
cmp rax, rsi
jae 0x1400166b7
lea rax, [rsp + 0x47]
cmp rbx, rax
ja 0x1400166f0
lea rax, [rbx + 0xf]
lea rcx, [rsp + 0x38]
cmp rax, rcx
jb 0x1400166f0
lea rax, [rsp + 0x3a]
mov r8, rsi
sub r8, rax
mov r9, rbx
lea rax, [rsp + 0x39]
sub r9, rax
nop dword [rax]
lea rcx, [rsp + 0x38]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r8 + 2]
xor al, byte [rcx]
mov byte [rcx + r9 + 1], al
cmp rdx, 0x10
jb 0x1400166d0
jmp 0x140016701
movdqu xmm0, xmmword [rsi]
movdqu xmm1, xmmword [rsp + 0x38]
xorps xmm1, xmm0
movdqu xmmword [rbx], xmm1
cmp dword [rdi + 0x1a0], 1
jne 0x1400167ad
movzx eax, byte [rbx]
xor byte [rdi + 0x190], al
movzx eax, byte [rbx + 1]
xor byte [rdi + 0x191], al
movzx eax, byte [rbx + 2]
xor byte [rdi + 0x192], al
movzx eax, byte [rbx + 3]
xor byte [rdi + 0x193], al
movzx eax, byte [rbx + 4]
xor byte [rdi + 0x194], al
movzx eax, byte [rbx + 5]
xor byte [rdi + 0x195], al
movzx eax, byte [rbx + 6]
xor byte [rdi + 0x196], al
movzx eax, byte [rbx + 7]
xor byte [rdi + 0x197], al
movzx eax, byte [rbx + 8]
xor byte [rdi + 0x198], al
movzx eax, byte [rbx + 9]
xor byte [rdi + 0x199], al
movzx eax, byte [rbx + 0xa]
xor byte [rdi + 0x19a], al
movzx eax, byte [rbx + 0xb]
xor byte [rdi + 0x19b], al
movzx eax, byte [rbx + 0xc]
xor byte [rdi + 0x19c], al
movzx eax, byte [rbx + 0xd]
xor byte [rdi + 0x19d], al
movzx eax, byte [rbx + 0xe]
xor byte [rdi + 0x19e], al
movzx eax, byte [rbx + 0xf]
xor byte [rdi + 0x19f], al
lea rdx, [rdi + 0x190]
mov rcx, rdi
mov r8, rdx
call fcn.140015c90
sub rbp, 0x10
add rsi, 0x10
add rbx, 0x10
cmp rbp, 0x10
jae 0x140016590
test rbp, rbp
je 0x1400168b6
sub r15, rdi
lea rcx, [rdi + 0x18f]
add byte [rcx], 1
jne 0x1400167fa
dec rcx
lea rax, [r15 + rcx]
cmp rax, 0xc
ja 0x1400167e8
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], 0
lea rdx, [rdi + 0x180]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x38]
mov r8d, 0x10
mov rcx, rdi
call fcn.140016af0
mov edx, eax
test eax, eax
je 0x140016867
xor eax, eax
lea rdi, [rsp + 0x38]
mov ecx, 0x10
rep stosb byte [rdi], al
mov eax, edx
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov r14, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14002c2f0
add rsp, 0x78
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp dword [rdi + 0x1a0], 0
jne 0x140016885
lea rcx, [rdi + 0x190]
mov r9, rbp
mov rdx, rcx
mov r8, rsi
call fcn.140015800
mov r9, rbp
lea rdx, [rsp + 0x38]
mov r8, rsi
mov rcx, rbx
call fcn.140015800
cmp dword [rdi + 0x1a0], 1
jne 0x1400168b6
lea rcx, [rdi + 0x190]
mov r9, rbp
mov rdx, rcx
mov r8, rbx
call fcn.140015800
lea rdi, [rsp + 0x38]
xor eax, eax
mov ecx, 0x10
rep stosb byte [rdi], al
jmp 0x14001683d
mov eax, 0xffffffec
jmp 0x140016851