Function at 0x18001d930
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
lea edi, [rcx + 0x8f0]
mov r12, r8
mov dword [rsp + 0xc0], edi
mov r8, rdx
mov r15d, ecx
cmp ecx, edi
jae 0x18001daaa
mov r13, qword [rsp + 0xe0]
lea r10, [0x180000000]
mov r14, qword [rsp + 0x60]
cmp r15d, 0x1ca
ja 0x18001db3e
je 0x18001dad7
lea eax, [r15 - 0x6a]
cmp eax, 0xfa
ja case.0x18001d9b7.112
movzx eax, byte [r10 + rax + 0x1dc7c]
mov ecx, dword [r10 + rax*4 + 0x1dc60]
add rcx, r10
jmp rcx
mov rax, qword [r12]
xor r14d, r14d
mov qword [rsp + 0x20], r8
xor edx, edx
lea r8, [rsp + 0x48]
lea rcx, [rax + rax*2]
shl rcx, 4
lea r9d, [r14 + 0x78]
mov qword [rsp + 0x48], rcx
xor ecx, ecx
call fcn.180021b90
mov qword [rsp + 0x40], rax
jmp 0x18001dc33
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc2
xor ecx, ecx
call fcn.18000fb20
test al, al
jne 0x18001dc33
xor eax, eax
jmp 0x18001daaf
xor edx, edx
cmp qword [r12], rdx
jbe 0x18001da5a
lea rcx, [r14 + r14*2]
shl rcx, 4
lea rax, [r13 + 0x60]
add rcx, qword [rsp + 0x40]
cmp dword [rax + 0x30], 0
jne 0x18001da4b
movups xmm0, xmmword [rax]
inc r14
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
add rcx, 0x30
inc rdx
add rax, 0x94
cmp rdx, qword [r12]
jb 0x18001da28
mov qword [rsp + 0x20], r8
lea rax, [r14 + r14*2]
shl rax, 4
lea r8, [rsp + 0x50]
mov r9d, 0x78
mov qword [rsp + 0x50], rax
xor edx, edx
xor ecx, ecx
call fcn.180021b90
mov qword [rsp + 0x38], rax
jmp 0x18001dc33
not dword [r13]
jmp case.0x18001d9b7.112
cmp qword [r9], 0
mov qword [rsp + 0x58], r12
jne case.0x18001d9b7.112
mov dword [rsp + 0x30], 0
mov rax, qword [rsp + 0x30]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [r12]
mov rdx, r9
call qword [0x1800ad928]
mov qword [rsp + 0x30], rax
jmp 0x18001dc33
xor edx, edx
cmp qword [r9], rdx
jbe case.0x18001d9b7.112
mov r12, qword [rsp + 0x58]
nop word [rax + rax]
movzx eax, byte [rdx + r12]
inc rdx
xor dword [r13], eax
mov ecx, dword [r13]
mov eax, ecx
and eax, 0xf
shr ecx, 4
mov eax, dword [r10 + rax*4 + 0x95790]
xor ecx, eax
mov dword [r13], ecx
mov eax, ecx
and eax, 0xf
shr ecx, 4
mov eax, dword [r10 + rax*4 + 0x95790]
xor eax, ecx
mov dword [r13], eax
cmp rdx, qword [r9]
jb 0x18001daf0
mov r12, qword [rsp + 0xd0]
jmp case.0x18001d9b7.112
cmp r15d, 0x28f
ja 0x18001dc15
je 0x18001dbaa
mov eax, r15d
sub eax, 0x1df
je 0x18001db78
sub eax, 0x35
je 0x18001daaa
cmp eax, 0x66
jne case.0x18001d9b7.112
mov eax, dword [r13]
not eax
mov dword [rsp + 0x30], eax
jmp case.0x18001d9b7.112
mov rdx, qword [rsp + 0x40]
lea r8, [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
mov r9d, 0x72
mov qword [rsp + 0x60], r14
call fcn.180063850
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor r14d, r14d
jmp 0x18001dc33
xor esi, esi
cmp qword [r12], rsi
jbe case.0x18001d9b7.112
lea rbp, [r14 + r14*2]
mov rdi, r9
shl rbp, 4
lea rbx, [r13 + 0x90]
add rbp, qword [rsp + 0x38]
nop dword [rax]
mov eax, dword [rbx]
mov dword [rdi + 0x60], eax
cmp dword [rbx], 0
jne 0x18001dbf8
lea r9, [rbx - 0x90]
mov r8, rbp
mov rdx, rdi
mov ecx, 0xab
call fcn.18005d470
inc r14
add rbp, 0x30
inc rsi
add rdi, 0x64
add rbx, 0x94
cmp rsi, qword [r12]
jb 0x18001dbd0
mov edi, dword [rsp + 0xc0]
jmp 0x18001dc33
mov eax, r15d
sub eax, 0x32a
je 0x18001daaa
cmp eax, 0x15
jne case.0x18001d9b7.112
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r9, qword [rsp + 0xd8]
lea r10, [0x180000000]
mov r8, qword [rsp + 0xc8]
add r15d, 0xb0
cmp r15d, edi
jb 0x18001d981
jmp 0x18001daaa