Function at 0x18001fbc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
lea eax, [r8 + 0x7d2]
mov r14, r9
mov dword [rsp + 0x34], eax
mov esi, r8d
mov r12, rdx
mov rdi, rcx
cmp r8d, eax
jae 0x18001fe06
movzx r8d, byte [rsp + 0x90]
mov r13d, dword [rsp + 0x90]
mov r15d, dword [rsp + 0x90]
mov ebp, dword [rsp + 0x90]
mov ebx, dword [rsp + 0x90]
mov dword [rsp + 0x30], r8d
mov ecx, 0x7fff
cmp esi, 0x186
ja 0x18001fd13
je 0x18001fcc9
mov eax, esi
sub eax, 0x13
je 0x18001fe30
sub eax, 7
je 0x18001fcb8
sub eax, 0xb6
je 0x18001fc8f
sub eax, 0x1b
je 0x18001fc87
cmp eax, 0xb
jne 0x18001fdf6
mov rdx, qword [rdi]
mov r8d, 0xec
mov rcx, rdi
call fcn.18003c240
mov rcx, rdi
call fcn.18006f74c
mov r8d, dword [rsp + 0x30]
jmp 0x18001fdf6
mov qword [r14], rdi
jmp 0x18001fdf6
lea rax, [rdi + 0x9f4]
mov ebp, 0xffffffff
mov qword [rsp + 0x38], rax
mov r15d, ebp
mov eax, dword [r14 + 0xc]
cdq
and edx, 7
lea r13d, [rdx + rax]
sar r13d, 3
jmp 0x18001fdf6
lea rax, [rdi + 0xf4]
mov qword [rsp + 0x40], rax
jmp 0x18001fdf6
mov rcx, qword [rsp + 0x38]
mov r9d, 0x480
mov r8, qword [rsp + 0x40]
sub r8, rcx
nop dword [rax]
movsx eax, word [rcx + r8]
lea rcx, [rcx + 2]
cdq
xor eax, edx
sub eax, edx
cmp eax, r15d
cmovg r15d, eax
movsx eax, word [rcx - 2]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
cmovg ebp, eax
sub r9, 1
jne 0x18001fce0
mov r8d, dword [rsp + 0x30]
jmp 0x18001fdf6
mov eax, esi
sub eax, 0x1a1
je 0x18001fdc3
sub eax, 0x9b
je 0x18001fd9a
sub eax, 0x1b
je 0x18001fd94
sub eax, 0x9b
je 0x18001fd70
cmp eax, 0xb6
jne 0x18001fdf6
cmp dword [rdi + 0x18], 3
je 0x18001fdf6
mov rax, qword [r14]
movsxd r8, r13d
mov byte [r8 + rax - 4], bpl
mov eax, ebp
mov rcx, qword [r14]
cdq
movzx edx, dl
add eax, edx
sar eax, 8
mov byte [r8 + rcx - 5], al
mov r8d, dword [rsp + 0x30]
jmp 0x18001fdf6
mov rax, qword [r14]
movzx edx, byte [rsp + 0x90]
movsxd rcx, r13d
mov byte [rcx + rax - 1], dl
mov rax, qword [r14]
mov byte [rcx + rax - 2], r8b
mov rax, qword [r14]
mov byte [rcx + rax - 3], 0
jmp 0x18001fdf6
mov dword [r14 + 0x10], ebx
jmp 0x18001fdf6
cmp r15d, ecx
cmovg r15d, ecx
cmp ebp, ecx
mov eax, r15d
mov byte [rsp + 0x90], r15b
cdq
cmovg ebp, ecx
movzx edx, dl
add eax, edx
sar eax, 8
mov r8d, eax
mov dword [rsp + 0x30], eax
jmp 0x18001fdf6
mov qword [r14 + 8], 0
xor ebx, ebx
mov edx, dword [rdi + 0xc]
test edx, edx
je 0x18001fdf1
mov r8, qword [rdi]
mov rcx, qword [r8 + rbx*8]
test rcx, rcx
jne 0x18001fde8
inc ebx
cmp ebx, edx
jb 0x18001fdd7
jmp 0x18001fdec
mov qword [r14 + 8], rcx
mov r8d, dword [rsp + 0x30]
mov esi, 0x1a1
add esi, 0xb6
cmp esi, dword [rsp + 0x34]
jb 0x18001fc28
mov eax, dword [rsp + 0x90]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov edx, dword [r12]
mov ebx, 1
cmp edx, 3
jbe 0x18001fef6
mov qword [rsp + 0x28], 0
lea rdx, [r14 + 3]
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov r8, rdi
mov ecx, 0x101
call fcn.180061b10
mov edx, dword [r12]
lea ebx, [rax + 2]
cmp edx, 4
jbe 0x18001fef6
xor ebp, ebp
lea rdx, [r14 + 3]
mov qword [rsp + 0x28], rbp
xor r9d, r9d
mov r8, rdi
mov qword [rsp + 0x20], rbp
mov ecx, 0x101
call fcn.180061b10
mov edx, dword [r12]
lea eax, [rax + rbx*2]
mov ebx, eax
cmp edx, 5
jbe 0x18001fef6
lea r8d, [rbp + 0x53]
mov rdx, rdi
xor ecx, ecx
call fcn.180031150
mov edx, dword [r12]
xor r9d, r9d
lea eax, [rdx - 5]
test eax, eax
je 0x18001fef6
mov ecx, dword [rdi + 0x20]
mov r8d, dword [rdi + 0x24]
nop dword [rax]
shr ecx, 1
add ebx, ebx
mov dword [rdi + 0x20], ecx
cmp r8d, ecx
jae 0x18001fee0
inc ebx
jmp 0x18001fee7
sub r8d, ecx
mov dword [rdi + 0x24], r8d
mov edx, dword [r12]
inc r9d
lea eax, [rdx - 5]
cmp r9d, eax
jb 0x18001fed0
test edx, edx
je 0x18001ff7e
mov qword [rsp + 0x28], 0
xor r9d, r9d
mov r8, rdi
mov qword [rsp + 0x20], 0
mov rdx, r14
mov ecx, 0x101
call fcn.180061b10
cmp dword [r12], 1
lea eax, [rax + rbx*2]
mov ebx, eax
jbe 0x18001ff7e
xor ebp, ebp
lea rdx, [r14 + 1]
mov qword [rsp + 0x28], rbp
xor r9d, r9d
mov r8, rdi
mov qword [rsp + 0x20], rbp
mov ecx, 0x101
call fcn.180061b10
cmp dword [r12], 2
lea eax, [rax + rbx*2]
mov ebx, eax
jbe 0x18001ff7e
lea rdx, [r14 + 2]
mov qword [rsp + 0x28], rbp
xor r9d, r9d
mov qword [rsp + 0x20], rbp
mov r8, rdi
mov ecx, 0x101
call fcn.180061b10
lea eax, [rax + rbx*2]
mov ebx, eax
mov eax, ebx
jmp 0x18001fe0d