Function at 0x18004bf80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
lea eax, [r9 + 9]
mov r15, r8
mov dword [rsp + 0xd8], eax
mov rbx, rdx
mov r14, rcx
cmp r9d, eax
jae case.0x18004bff1.2
mov r12, qword [rsp + 0xe0]
lea r13d, [r9 - 0xf1]
movzx esi, byte [rsp + 0xd8]
lea r11, [0x180000000]
mov ecx, eax
xor r8d, r8d
cmp r13d, 0x15
ja case.default.0x18004bff1
mov ecx, dword [r11 + r13*4 + 0x4c32c]
add rcx, r11
jmp rcx
mov qword [r15 + 8], r8
mov r9d, 0x40
mov qword [r15], r8
xor ecx, ecx
mov rdx, qword [rbx + 0x10]
mov r8d, 0x1000
call qword [r14]
mov qword [rsp + 0x70], rax
test rax, rax
je 0x18004c304
cmp qword [rbx + 0x18], 0x10
mov rdx, rbx
jb 0x18004c02a
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
jmp 0x18004c2e3
not qword [r15]
mov rax, qword [r14]
cmp rax, 4
jbe 0x18004c104
test bl, 3
je 0x18004c07f
movzx eax, byte [rbx]
inc rbx
mov rdx, qword [r15]
movzx ecx, dl
xor rcx, rax
shr rdx, 8
mov rax, qword [r11 + rcx*8 + 0x51630]
xor rax, rdx
mov qword [r15], rax
mov rax, qword [r14]
dec rax
mov qword [r14], rax
test bl, 3
jne 0x18004c050
mov r10, rax
and eax, 3
and r10, 0xfffffffffffffffc
mov qword [r14], rax
add r10, rbx
cmp rbx, r10
jae 0x18004c104
nop dword [rax]
nop dword [rax + rax]
mov r9d, dword [rbx]
add rbx, 4
mov eax, dword [r15]
xor r9, rax
mov rax, r9
shr rax, 0x10
movzx edx, al
mov rax, r9
shr rax, 8
movzx ecx, al
mov rax, r9
shr rax, 0x18
mov r8, qword [r11 + rdx*8 + 0x51e30]
xor r8, qword [r11 + rcx*8 + 0x52630]
xor r8, qword [r11 + rax*8 + 0x51630]
movzx eax, r9b
xor r8, qword [r11 + rax*8 + 0x52e30]
mov rax, qword [r15]
shr rax, 0x20
xor r8, rax
mov qword [r15], r8
cmp rbx, r10
jb 0x18004c0a0
mov rax, qword [r14]
xor r8d, r8d
test rax, rax
je 0x18004c13d
nop dword [rax]
dec qword [r14]
movzx eax, byte [rbx]
inc rbx
mov rdx, qword [r15]
movzx ecx, dl
xor rcx, rax
shr rdx, 8
mov rax, qword [r11 + rcx*8 + 0x51630]
xor rax, rdx
mov qword [r15], rax
cmp qword [r14], 0
jne 0x18004c110
mov rax, r8
dec rax
mov qword [r14], rax
mov rax, qword [r15]
not rax
mov qword [rsp + 0x68], rax
jmp case.0x18004bff1.3
mov eax, dword [rbx + 0x24]
add rax, qword [rsp + 0x70]
mov qword [r15], rax
mov byte [rsp + 0x68], 1
jmp case.0x18004bff1.3
mov eax, dword [rbx + 0x20]
add rax, qword [rsp + 0x70]
mov qword [r15 + 8], rax
jmp case.0x18004bff1.3
mov byte [rsp + 0x68], sil
jmp case.0x18004bff1.3
cmp dword [rbx + 0x130], 0
je 0x18004c1bc
cmp byte [r15], 0
jne 0x18004c1bc
mov byte [r15], 1
lea rcx, [rbx + 0x190]
mov eax, dword [rbx + 0x130]
lea r9, [rsp + 0x60]
mov r8, r14
mov dword [rsp + 0x60], eax
mov edx, 0x60
call fcn.18003d360
xor r8d, r8d
xor sil, sil
mov ebp, r8d
mov r15d, 0x3c
nop dword [rax + rax]
mov qword [rsp + 0x50], r8
lea r9, [rbx + 0x168]
mov qword [rsp + 0x48], r8
mov eax, 0x32
mov qword [rsp + 0x40], r8
test ebp, ebp
mov qword [rsp + 0x38], r8
cmove eax, r15d
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r8
xor edx, edx
xor r8d, r8d
mov dword [rsp + 0x20], eax
xor ecx, ecx
call fcn.18003da60
test ebp, ebp
jne 0x18004c2db
xor ebp, ebp
nop word [rax + rax]
cmp byte [r12], bpl
je 0x18004c24e
cmp qword [rbx + 0x148], rbp
je 0x18004c24e
lea rcx, [rbx + 0x100]
mov r9d, 0x63
xor r8d, r8d
xor edx, edx
call fcn.18002ea80
test al, al
jne 0x18004c2ce
lea r8, [rbx + 0x100]
mov edx, 0xc3
xor ecx, ecx
call fcn.180034500
test al, al
jne 0x18004c2ce
cmp dword [rbx + 0x134], ebp
jne 0x18004c2ce
test sil, sil
jne 0x18004c2ce
lea rax, [rbx + 0x190]
cmp dword [rbx + 0x130], ebp
je 0x18004c2a8
mov r9, r14
mov qword [rsp + 0x20], rbp
lea r8, [rbx + 0x168]
mov rdx, rax
mov ecx, 0xec
call fcn.180007dd0
test eax, eax
setne sil
jmp 0x18004c220
mov qword [rsp + 0x28], rax
lea rdx, [rbx + 0x168]
xor r9d, r9d
mov dword [rsp + 0x20], 0xaf
xor r8d, r8d
xor ecx, ecx
call fcn.18001a210
jmp 0x18004c220
mov ebp, 1
xor r8d, r8d
jmp 0x18004c1d0
mov r15, qword [rsp + 0xd0]
lea r11, [0x180000000]
mov ecx, dword [rsp + 0xd8]
inc r13d
lea eax, [r13 + 0xf1]
cmp eax, ecx
jae case.0x18004bff1.2
jmp 0x18004bfd9
mov byte [rsp + 0x68], 0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret