Function at 0x14016e920
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x10], xmm6
mov qword [rbp + 8], 0xfffffffffffffffe
mov rsi, rcx
lea rax, [rcx + 0x6d0]
mov qword [rbp - 0x30], rax
mov rax, qword [rcx + 0x108]
mov rcx, qword [rax + 0x3a8]
mov qword [rbp - 0x38], rcx
mov ecx, dword [rax + 0x10]
movzx eax, word [rax + 0xc]
mov word [rbp - 0x28], ax
mov dword [rbp - 0x24], ecx
mov eax, dword [0x1404ede1f]
mov r9d, eax
test eax, eax
jne 0x14016e989
mov r9d, dword [0x1404ee2b2]
mov rcx, qword [rsi + 0x190]
mov r8d, dword [0x1404ee2ae]
mov rdx, qword [0x1404e1deb]
test eax, eax
setne byte [rsp + 0x28]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x30], 0x3b7a75cf
lea rcx, [rbp - 0x38]
call fcn.14017c8c0
test al, al
je 0x14016edfd
mov edx, dword [0x1404ee2c2]
mov ecx, dword [0x1404ee2be]
mov r8d, 0xa120d7f2
add r8d, dword [0x14049d410]
call fcn.14017c8a0
test al, al
je 0x14016edfd
mov edi, dword [0x1404ee266]
mov edx, dword [0x1404ee26a]
mov rcx, rsi
mov r8d, 0x23b52e08
call fcn.1400854e0
mov rcx, qword [0x1404e1deb]
mov r8d, dword [0x14049d410]
lea edx, [r8 + 0x43af7576]
add r8d, 0x75e64655
mov dword [rsp + 0x30], r8d
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], 0
mov ecx, 1
mov r8d, edi
mov r9, rax
call fcn.14017cab0
mov edi, dword [0x1404ee2aa]
cmp qword [0x1404ee750], 0
jne 0x14016eaa8
mov ecx, 0xe8
mov edx, 0xbf8b9798
call fcn.140084df0
lea rcx, [0x1403b93e8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
movzx ecx, byte [0x14049d414]
add cl, 0x20
mov byte [rax + 0x18], cl
lea rcx, [0x1403b9448]
mov qword [rax + 0x10], rcx
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x1404ee750], rax
mov rax, qword [0x1404ee750]
mov r14d, dword [0x1404ee2a6]
add r14, qword [rax + 0x38]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x10], xmm0
mov qword [rbp], 0
test edi, edi
je 0x14016ec77
cmp dword [r14 + 0xc], 0
je 0x14016ec77
lea r15, [0x1403b93e8]
lea r13, [0x1403b9448]
mov edi, 0xffffc8cd
xorps xmm6, xmm6
mov ebx, 0x43af7575
movabs r12, 0xb76d40609130372
jmp 0x14016eb2b
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [rdx], xmm0
add qword [rbp - 8], 0x10
cmp dword [r14 + 0x20], 0
lea r14, [r14 + 0x14]
je 0x14016ec77
mov rax, qword [0x1404ee750]
test rax, rax
jne 0x14016eb94
mov ecx, 0xe8
call fcn.14037638c
mov qword [rax], r15
mov qword [rax + 0x28], 0
mov rcx, qword [0x14049d408]
movabs rdx, 0xb76d40609130381
add rcx, rdx
mov qword [rax + 0x30], rcx
mov byte [rax + 0x18], 0
mov qword [rax + 0x10], r13
mov byte [rax + 8], 0
movzx ecx, byte [0x14049d414]
add cl, 0x20
mov byte [rax + 9], cl
mov ecx, dword [0x14049d678]
add ecx, edi
mov word [rax + 0xa], cx
movups xmmword [rax + 0x38], xmm6
mov qword [0x1404ee750], rax
mov rdx, qword [rax + 0x38]
mov ecx, dword [r14]
mov r8d, dword [0x14049d410]
add r8d, ebx
cmp ecx, r8d
jne 0x14016ebae
mov ecx, dword [r14 + 0x10]
mov r8d, ecx
add r8, qword [0x1404ee9c8]
movaps xmmword [rbp - 0x20], xmm6
cmp qword [rdx + r8], 0
mov ecx, dword [rbp - 0x18]
je 0x14016ec00
add rdx, r8
add rdx, 8
nop dword [rax]
add ecx, 8
mov r8d, dword [0x1404ee9c0]
mov r9d, r8d
xor r9d, ecx
and ecx, r8d
lea ecx, [r9 + rcx*2]
mov dword [rbp - 0x18], ecx
mov r8, qword [0x14049d408]
add r8, r12
lea r9, [rdx + 8]
cmp qword [rdx], r8
mov rdx, r9
jne 0x14016ebd0
test ecx, ecx
je 0x14016eb1c
test rax, rax
jne 0x14016ec44
mov ecx, 0xe8
call fcn.14037638c
mov qword [rax], r15
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
mov qword [rax + 0x10], r13
mov dword [rax + 8], 0
movups xmmword [rax + 0x38], xmm6
mov qword [0x1404ee750], rax
mov rax, qword [0x1404ee750]
mov ecx, dword [r14 + 0x10]
add rcx, qword [rax + 0x38]
mov qword [rbp - 0x20], rcx
mov rdx, qword [rbp - 8]
cmp rdx, qword [rbp]
jne 0x14016eb10
lea rcx, [rbp - 0x10]
lea r8, [rbp - 0x20]
call fcn.140177580
jmp 0x14016eb1c
lea rdi, [rsi + 0x2d0]
lea rax, [rbp - 0x10]
cmp rdi, rax
je 0x14016ed00
mov rcx, qword [rdi]
test rcx, rcx
je 0x14016ece8
mov rdx, qword [rsi + 0x2e0]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14016ecd5
mov rax, qword [0x1404ee778]
add rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14016ef5a
add rdx, qword [0x14049d408]
movabs rcx, 0xb76d40609130399
add rdx, rcx
mov rcx, rax
call fcn.140084c10
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
movaps xmm0, xmmword [rbp - 0x10]
movups xmmword [rsi + 0x2d0], xmm0
mov rax, qword [rbp]
mov qword [rsi + 0x2e0], rax
jmp 0x14016ed53
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14016ed53
mov rdx, qword [rbp]
sub rdx, rcx
cmp byte [0x1404ee91c], 0
jne 0x14016ed22
cmp rdx, 0x1000
jb 0x14016ed4e
mov rax, qword [rcx - 8]
add rcx, qword [0x14049d408]
sub rcx, rax
movabs r8, 0xb76d4060913036a
add r8, rcx
cmp r8, 0x20
jae 0x14016ef5f
add rdx, 0x27
mov rcx, rax
call fcn.140084c10
mov rbx, qword [rsi + 0x190]
mov r14d, dword [0x1404ee2ca]
mov edx, dword [0x1404ee2c6]
mov r8d, 0x6764a37d
add r8d, dword [0x14049d410]
movzx r15d, byte [rsi + 0x160]
mov rcx, rsi
call fcn.1400854e0
mov r8d, dword [0x1404ee2aa]
mov edx, dword [0x1404ee2a6]
test r15b, 0x40
sete byte [rsp + 0x30]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], r14d
mov dword [rsp + 0x38], 0x9b116096
lea rcx, [rbp - 0x38]
mov r9, rax
call fcn.14017c820
test al, al
je 0x14016edfd
cmp dword [0x1404ee2aa], 0
je 0x14016edda
lea rdx, [rsi + 0x2e8]
mov rcx, rdi
mov r8d, 0xc3f3f553
call fcn.14017c920
test byte [rsi + 0x161], 8
jne 0x14016ee17
mov edx, dword [0x1404ee2aa]
lea rcx, [rbp - 0x38]
mov r8d, 0xd6f91a4e
call fcn.14017c870
jmp 0x14016ef19
xor eax, eax
movaps xmm6, xmmword [rbp + 0x10]
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x30], 0x3236d0e0
lea r9, [0x1404e1ddf]
mov ecx, 1
xor edx, edx
xor r8d, r8d
call fcn.14017cab0
test byte [rsi + 0x160], 0x40
je 0x14016ef19
mov rax, qword [0x1404ee2a6]
mov qword [rbp - 0x10], rax
cmp qword [0x1404ee750], 0
jne 0x14016eee8
movabs rcx, 0xb76d4060913045a
add rcx, qword [0x14049d408]
mov edx, 0x33b0d0d
add edx, dword [0x14049d410]
call fcn.140084df0
lea rcx, [0x1403b93e8]
mov qword [rax], rcx
movabs rcx, 0xb76d40609130381
add rcx, qword [0x14049d408]
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], rcx
mov byte [rax + 0x18], 0
lea rcx, [0x1403b9448]
mov qword [rax + 0x10], rcx
movzx ecx, byte [0x14049d414]
add cl, 0x20
mov byte [rax + 8], cl
mov byte [rax + 9], 0
mov ecx, 0xffffc8cd
add ecx, dword [0x14049d678]
mov word [rax + 0xa], cx
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x1404ee750], rax
mov rax, qword [0x1404ee750]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 0x6040c9bd
mov qword [rsp + 0x28], 0
lea r9, [rbp - 0x10]
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.14017cab0
mov dword [0x1404ee2a6], 0
mov dword [0x1404ee2b2], 0
mov eax, 0x43af7575
add eax, dword [0x14049d410]
mov dword [0x1404ee2ae], eax
mov qword [0x1404ee266], 0
xorps xmm0, xmm0
movups xmmword [0x1404ee2be], xmm0
mov al, 1
jmp 0x14016edff
call fcn.140356a3c
call fcn.140356a3c
int3