Function at 0x14001b054
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x5c8
mov rdi, r9
mov rsi, r8
mov r14, rdx
mov rbx, rcx
lea r15, [0x14039c7c0]
mov edx, 1
mov rcx, r14
mov r8, r15
call fcn.14005d21f
mov rcx, rax
xor edx, edx
mov r8, r15
call fcn.14005d21f
mov rcx, qword [rax + 0x30]
add rcx, 0xfffffffffffffff7
cmp rcx, 1
ja 0x14001b3cd
mov qword [rsp + 0x28], rdi
lea rcx, [rsp + 0x38]
mov rdx, rax
call fcn.140049446
lea rax, [0x140393bd3]
lea r15, [rsp + 0x1c0]
mov qword [r15], rax
mov rcx, qword [r15]
movabs rax, 0x8d25c219c13be341
mov qword [r15], rax
mov rdx, qword [r15]
call fcn.14000b0ae
pxor xmm0, xmm0
movdqa xmmword [r15], xmm0
mov cl, 1
xor edi, edi
lea r8, [0x14039c7d8]
movzx r10d, byte [rdi + r8]
mov r9, rdi
or r9, 1
movzx r9d, byte [r9 + r8]
mov r11, rdi
or r11, 2
movzx r11d, byte [r11 + r8]
mov r15, rdi
or r15, 3
movzx r15d, byte [r15 + r8]
mov r12, rdi
or r12, 4
movzx r12d, byte [r12 + r8]
mov r13, rdi
or r13, 5
movzx r13d, byte [r13 + r8]
mov rbp, rdi
or rbp, 6
mov rdx, rdi
or rdx, 7
movzx ebp, byte [rbp + r8]
movzx edx, byte [rdx + r8]
shl rdx, 0x38
shl rbp, 0x30
or rbp, rdx
shl r13, 0x28
shl r12, 0x20
shl r15, 0x18
shl r11, 0x10
shl r9, 8
or r9, r10
or r9, r11
or r9, r15
or r9, r12
or r9, r13
or r9, rbp
xor r9, qword [rax + rdi]
mov qword [rsp + rdi + 0x1c0], r9
mov edi, 8
test cl, 1
mov ecx, 0
jne 0x14001b0f9
movzx eax, word [rax + 0x10]
xor eax, 0xb56e
mov word [rsp + 0x1d0], ax
cmp qword [rsp + 0x48], 0x12
jne 0x14001b1fa
mov rax, qword [rsp + 0x40]
movdqu xmm0, xmmword [rax]
movzx eax, word [rax + 0x10]
movzx ecx, word [rsp + 0x1d0]
movd xmm1, eax
movd xmm2, ecx
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmmword [rsp + 0x1c0]
pand xmm0, xmm2
pmovmskb eax, xmm0
cmp eax, 0xffff
sete bpl
jmp 0x14001b1fc
xor ebp, ebp
cmp qword [rsp + 0x38], 0
je 0x14001b218
mov r8, qword [rsp + 0x40]
mov rcx, qword [0x1404fd180]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test bpl, bpl
je 0x14001b3d6
lea r15, [0x14039c7f0]
mov edx, 1
mov rcx, r14
mov r8, r15
call fcn.14005d21f
mov edx, 1
mov rcx, rax
mov r8, r15
call fcn.14005d21f
mov rcx, qword [rax + 0x30]
lea rdx, [rcx - 2]
cmp rcx, 2
mov ecx, 0x1b
cmovae rcx, rdx
cmp rcx, 0x1b
ja 0x14001b3cd
mov edx, 0x9c3fe1c
bt rdx, rcx
jae 0x14001b3cd
mov r15, qword [rax]
mov r12, qword [rax + 8]
lea r8, [0x14039c808]
mov edx, 2
mov rcx, r14
call fcn.14005d21f
mov rcx, qword [rax + 0x30]
lea rdx, [rcx - 2]
cmp rcx, 2
mov ecx, 0x1b
cmovae rcx, rdx
cmp rcx, 0x1b
ja 0x14001b3cd
mov edx, 0x9c3fe1c
bt rdx, rcx
jae 0x14001b3cd
mov rdx, qword [rsp + 0x28]
cmp rdx, 0x17
jbe 0x14001b557
cmp r12, 8
jne 0x14001b3d6
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
mov r14, qword [rax + 8]
lea r13, [rsp + 0x40]
mov rdx, qword [rsi]
bswap rdx
lea rbp, [rsp + 0x548]
mov rcx, rbp
call fcn.14005ec47
mov rdx, qword [rsi + 8]
bswap rdx
lea r12, [rsp + 0x340]
mov rcx, r12
call fcn.14005ec47
mov rdx, qword [rsi + 0x10]
bswap rdx
lea rcx, [rsp + 0x140]
call fcn.14005ec47
mov ecx, 0x10
mov rdi, r13
mov rsi, rbp
rep movsq qword [rdi], qword [rsi]
lea rdi, [rsp + 0xc0]
mov ecx, 0x10
mov rsi, r12
rep movsq qword [rdi], qword [rsi]
lea rsi, [rsp + 0x1c0]
mov r8d, 0x180
mov rcx, rsi
mov rdx, r13
call fcn.14038a820
mov rcx, r15
call fcn.1401e2212
mov rdi, rax
lea r15, [rsp + 0x3c0]
mov r8d, 0x180
mov rcx, r15
mov rdx, rsi
call fcn.14038a820
mov qword [r15 + 0x180], rdi
test r14b, 7
je 0x14001b3ed
mov eax, dword [rsp + 0x340]
mov ecx, dword [rsp + 0x343]
mov dword [rbx + 4], ecx
mov dword [rbx + 1], eax
movdqu xmm0, xmmword [rsp + 0x38]
movdqu xmm1, xmmword [rsp + 0x48]
movdqu xmmword [rbx + 0x20], xmm0
movdqu xmmword [rbx + 0x30], xmm1
mov byte [rbx], 0x15
pxor xmm0, xmm0
movdqu xmmword [rbx + 8], xmm0
jmp 0x14001b3d9
mov byte [rbx], 0x14
mov byte [rbx + 8], 0
jmp 0x14001b3d9
mov byte [rbx], 0x15
add rsp, 0x5c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r15, [rsp + 0x540]
mov rcx, r14
xor edx, edx
call fcn.140272bf2
mov r12, rax
mov r13, rdx
mov rcx, rdx
mov rdx, qword [rsp + 0x28]
mov r8, r14
call fcn.14038a820
mov rcx, r15
call fcn.1401e2212
mov qword [rsp + 0x1c0], rax
cmp r14, 7
ja 0x14001b438
mov qword [rsp + 0x540], rax
jmp 0x14001b506
mov qword [rsp + 0x30], r12
mov rax, r14
and rax, 0xfffffffffffffff8
mov rsi, r13
add rsi, rax
lea r15, [rsp + 0x4c0]
lea r12, [rsp + 0x3c0]
mov qword [rsp + 0x28], r13
mov rcx, r13
call fcn.1401e2212
mov rbp, rax
mov rdx, qword [r13]
bswap rdx
mov rcx, r15
call fcn.14005f29f
mov rcx, rax
call fcn.14005ef51
mov edi, 0x80
mov rdx, qword [rsp + rdi + 0x3c0]
mov rcx, rax
call fcn.14005f082
add rdi, 8
cmp rdi, 0x100
jne 0x14001b486
lea rdi, [r13 + 8]
rol rax, 0x20
mov rcx, rax
call fcn.14005efea
mov rcx, r12
mov rdx, rax
call fcn.14005f29f
bswap rax
mov qword [r13], rax
xor eax, eax
mov cl, byte [rsp + rax + 0x1c0]
xor byte [r13 + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp rcx, 8
jne 0x14001b4c7
mov qword [rsp + 0x1c0], rbp
mov r13, rdi
cmp rdi, rsi
jne 0x14001b45f
mov qword [rsp + 0x540], rbp
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
test r14, r14
je 0x14001b535
movzx eax, byte [r14 + r13 - 1]
xor ecx, ecx
mov rdx, r14
sub rdx, rax
cmovae rcx, rdx
cmp r14, rcx
cmovb rcx, r14
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], rcx
mov sil, 0x18
jmp 0x14001b54f
mov sil, 0x15
test r12, r12
je 0x14001b54f
mov rcx, qword [0x1404fd180]
xor edx, edx
mov r8, r13
call qword [sym.imp.kernel32.dll_HeapFree]
mov byte [rbx], sil
jmp 0x14001b3d9
lea r8, [0x14039c820]
mov ecx, 0x18
call fcn.14038e940
ud2