Function at 0x18003b4f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov rax, qword [0x1800923a0]
xor rax, rsp
mov qword [rsp + 0xe0], rax
lea eax, [rcx + 0x672]
mov rsi, r9
mov dword [rsp + 0x60], eax
mov rdi, r8
mov ebx, dword [rsp + 0x60]
mov r12, rdx
mov ebp, ecx
cmp ecx, eax
jae 0x18003b6f8
mov r13, qword [rsp + 0x68]
lea r8, [0x180082230]
mov r15, qword [rsp + 0x68]
mov r14, qword [rsp + 0x68]
xor ecx, ecx
cmp ebp, 0x17c
ja 0x18003b7c7
je 0x18003b774
mov eax, ebp
sub eax, 0xbd
je 0x18003b73d
sub eax, 3
je 0x18003b725
sub eax, 0x17
je 0x18003b5c4
sub eax, 0x8b
je 0x18003b6f8
cmp eax, 3
jne 0x18003b8d0
cmp qword [rdi], rcx
je 0x18003b8e5
mov eax, dword [rsi]
lea r8, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
lea edx, [rcx + 0x6d]
mov r9, rdi
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x20], rcx
call fcn.180020790
mov r15, rax
jmp 0x18003b8c9
mov rax, qword [rsi]
mov r9d, 0xb6
mov qword [rdi + 0x40], rax
xor r8d, r8d
mov rax, qword [r12]
xor edx, edx
mov qword [rsp + 0x20], rcx
xor ecx, ecx
mov qword [rdi + 0x48], rax
call fcn.18001c2c0
mov r14, rax
test rax, rax
je 0x18003b8f3
xor r8d, r8d
mov rdx, rax
lea ecx, [r8 + 0x66]
call fcn.18001de50
lea rax, [0x18003b960]
mov r9, rdi
mov qword [rsp + 0x80], rax
lea r8, [rsp + 0xa0]
lea rax, [0x18003b9a0]
mov ecx, 0x45
mov qword [rsp + 0x90], rax
lea rdx, [rsp + 0x68]
lea rax, [0x18003c160]
mov qword [rsp + 0x98], rax
xor eax, eax
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x68], rax
lea rax, [0x18003b9e0]
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
call fcn.18001b550
test eax, eax
je 0x18003b8c9
xor ebx, ebx
xor r9d, r9d
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov dword [rsp + 0x30], 0x28
xor edx, edx
mov qword [rsp + 0x28], r14
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.18001e760
mov dword [rdi + 0x24], 0xc
mov eax, ebx
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.180077c10
mov rbx, qword [rsp + 0x130]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [rdi + 8], 0
mov r13, rcx
je 0x18003b8d0
mov dword [rdi + 0x24], 0xc
mov eax, ecx
jmp 0x18003b6fa
mov edx, dword [rsi]
mov ebx, ecx
test edx, edx
je 0x18003b76a
mov edx, dword [rsi]
mov ecx, ebx
dec edx
shl ebx, 8
mov dword [rsi], edx
movzx eax, byte [rdi]
inc rdi
shr rcx, 8
xor rcx, rax
mov eax, dword [r8 + rcx*4]
xor eax, ebx
movzx ebx, ax
test edx, edx
jne 0x18003b745
lea eax, [rdx - 1]
mov dword [rsi], eax
jmp 0x18003b8d0
xor edx, edx
mov qword [rdi + 0x28], rcx
mov r9, r14
xor ecx, ecx
lea r8d, [rdx + 0x73]
call fcn.18002c800
test eax, eax
je 0x18003b901
cmp dword [rdi + 0x24], 0
jne 0x18003b908
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x38], rax
xor r8d, r8d
mov dword [rsp + 0x30], 0x28
xor edx, edx
mov qword [rsp + 0x28], r14
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18001e760
jmp 0x18003b8c9
mov eax, ebp
sub eax, 0x20a
je 0x18003b81d
sub eax, 0x17
je 0x18003b814
sub eax, 0x8e
je 0x18003b935
cmp eax, 0x17
jne 0x18003b8d0
mov qword [rsp + 0x28], rcx
mov r9d, 0xb4
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, rdi
xor edx, edx
call fcn.18003c190
mov qword [rdi + 0x38], rax
mov eax, 1
jmp 0x18003b6fa
mov qword [rdi + 0x30], rcx
jmp 0x18003b8d0
test r15, r15
je 0x18003b870
cmp dword [r12], 0
je 0x18003b852
mov rax, qword [rdi]
lea r9, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov qword [rsp + 0x28], rcx
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], 0xd7
call fcn.18004f860
xor r8d, r8d
cmp r15, qword [rdi + 0x38]
jne 0x18003b877
mov r9, rdi
mov edx, 0x125
xor ecx, ecx
call fcn.18002d5d0
test eax, eax
jne 0x18003b8c9
xor ecx, ecx
mov eax, ecx
jmp 0x18003b6fa
xor r9d, r9d
mov qword [rsp + 0x20], rdi
mov rcx, r13
lea edx, [r9 + 0x17]
call fcn.1800678f0
test eax, eax
je 0x18003b86e
mov rdx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x28]
mov qword [rdi + 0x38], r15
mov qword [rdi + 0x30], r8
test rdx, rdx
je 0x18003b8c9
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx]
mov eax, dword [rax + 8]
add eax, 4
add r8, rax
mov qword [rdi + 0x30], r8
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x18003b8b0
lea r8, [0x180082230]
add ebp, 0xa5
cmp ebp, dword [rsp + 0x60]
jae 0x18003b6f8
jmp 0x18003b550
mov dword [rdi + 0x24], 0xe
mov eax, ecx
jmp 0x18003b6fa
mov dword [rdi + 0x24], 0xb
xor ebx, ebx
jmp 0x18003b6f8
mov dword [rdi + 0x24], 0xc
xor ebx, ebx
xor r9d, r9d
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov dword [rsp + 0x30], 0x28
xor edx, edx
mov qword [rsp + 0x28], r14
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.18001e760
jmp 0x18003b6f8
cmp dword [r12], 0
je 0x18003b952
mov rcx, qword [rdi]
lea rdx, [rsp + 0xa8]
mov r8d, 0x104
call fcn.18006ed30
mov eax, 1
jmp 0x18003b6fa