Function at 0x1800988b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rax, r8
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x80]
mov rdx, rdi
mov r8, rsi
mov r9, rax
call fcn.1801d3700
mov rdx, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x88]
cmp r8, rdx
sete r9b
cmp qword [rsp + 0x80], 0
mov rcx, qword [rsp + 0xc8]
je 0x180098b9e
mov rbp, qword [rsp + 0xa8]
mov r13, rsi
cmp rbp, rdx
je 0x180098c42
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rsi
mov rax, qword [rsp + 0xe0]
lea r9, [rax - 1]
mov qword [rsp + 0x48], r9
mov r9, qword [rsp + 0xa0]
mov qword [rsp + 0x60], r9
mov r11, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xb8]
mov r10, qword [rsp + 0x98]
mov rdi, rax
mov r9, r10
mov qword [rsp + 0x78], r10
sub rdi, r10
mov qword [rsp + 0x68], rdi
lea r9, [r8 - 1]
mov qword [rsp + 0x70], r9
cmp r9, rax
setb byte [rsp + 0x37]
mov r9, rbp
sub r9, r8
mov qword [rsp + 0x58], r9
lea r15, [rcx + rbp]
lea r12, [rcx + r8]
lea r14, [r11 + r8]
lea rdi, [rbp - 1]
mov r13, rbp
mov r9, qword [rsp + 0x48]
lea r10, [r9 + rbp]
cmp r10, rdx
jae 0x180098c38
mov r9, qword [rsp + 0x78]
add r9, r13
mov qword [rsp + 0x50], r9
lea rbp, [rax + r13]
cmp rsi, 0xffffffffffffffff
je 0x180098ab0
mov rbx, r13
jmp 0x1800989f7
xor esi, esi
mov rbx, rbp
mov r9, qword [rsp + 0x48]
lea r10, [rbx + r9]
cmp r10, rdx
jae 0x180098c38
cmp r13, rbx
jne 0x180098c38
movzx r9d, byte [rcx + r10]
mov r10, qword [rsp + 0x60]
bt r10, r9
jae 0x1800989e0
cmp r8, rsi
mov r10, rsi
cmova r10, r8
nop word [rax + rax]
cmp r10, rax
jae 0x180098a50
lea r9, [r10 + r13]
cmp r9, rdx
jae 0x180098b9c
lea rbx, [r10 + 1]
movzx r9d, byte [r11 + r10]
cmp r9b, byte [r15 + r10]
mov r10, rbx
je 0x180098a20
add rbx, qword [rsp + 0x58]
xor esi, esi
jmp 0x1800989e5
mov r10, qword [rsp + 0x70]
nop word cs:[rax + rax]
lea r9, [r10 + 1]
cmp rsi, r9
jae 0x180098aa0
cmp r10, rax
jae 0x180098b9c
lea r9, [r10 + r13]
cmp r9, rdx
jae 0x180098b9c
movzx r9d, byte [r11 + r10]
lea rbx, [r10 - 1]
cmp r9b, byte [r15 + r10]
mov r10, rbx
je 0x180098a60
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x50]
jmp 0x1800989e5
xor esi, esi
jmp 0x180098b77
mov rsi, r13
jmp 0x180098ad2
mov r9, qword [rsp + 0x48]
lea r10, [rsi + r9]
cmp r10, rdx
jae 0x180098c38
cmp r13, rsi
jne 0x180098c38
movzx r10d, byte [rcx + r10]
mov r9, qword [rsp + 0x60]
bt r9, r10
mov rsi, rbp
jae 0x180098ac0
xor r10d, r10d
mov rbx, r13
nop word cs:[rax + rax]
lea rsi, [r8 + r10]
cmp rsi, rax
jae 0x180098b30
lea rsi, [r8 + rbx]
cmp rsi, rdx
jae 0x180098b9c
movzx r9d, byte [r14 + r10]
lea rsi, [rbx + 1]
inc r10
cmp r9b, byte [r12 + rbx]
mov rbx, rsi
je 0x180098b00
jmp 0x180098ac0
test byte [rsp + 0x37], 1
je 0x180098b90
mov rsi, r8
mov r10, r8
nop dword [rax]
sub r10, 1
jb 0x180098b70
lea rbx, [rdi + rsi]
cmp rbx, rdx
jae 0x180098b9c
movzx ebx, byte [r11 + rsi - 1]
cmp bl, byte [r15 + rsi - 1]
mov rsi, r10
je 0x180098b40
mov rsi, qword [rsp + 0x50]
jmp 0x180098ac0
mov rsi, 0xffffffffffffffff
add qword [rsp + 0x58], rax
add r15, rax
add rdi, rax
cmp rbp, rdx
jne 0x1800989a8
jmp 0x180098c76
mov rsi, 0xffffffffffffffff
test r8, r8
je 0x180098b77
ud2
cmp byte [rsp + 0x9a], 0
mov r13, rsi
jne 0x180098c42
movzx eax, byte [rsp + 0x98]
test r9b, 1
je 0x180098c18
test r8, r8
je 0x180098c67
cmp r8, rdx
jae 0x180098c80
cmp byte [rcx + r8], 0xc0
jl 0x180098c99
mov r13, rsi
test al, al
je 0x180098c42
nop word cs:[rax + rax]
xor al, 1
jne 0x180098bf0
jmp 0x180098c94
movzx r9d, byte [rcx + r8]
test r9b, r9b
js 0x180098c32
mov r9d, eax
xor r9b, 1
test al, al
mov eax, r9d
je 0x180098c62
test r8, r8
je 0x180098c00
cmp r8, rdx
jae 0x180098c99
movzx r9d, byte [rcx + r8]
cmp r9b, 0xbf
jle 0x180098c99
test r9b, r9b
jns 0x180098c0a
cmp r9b, 0xe0
jmp 0x180098c0a
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
sub rsi, r13
add rdi, r13
mov rax, rdi
mov rdx, rsi
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13, r8
jmp 0x180098c42
mov r13, rsi
test al, al
je 0x180098c42
nop
xor al, 1
jne 0x180098c70
jmp 0x180098c94
mov rsi, qword [rsp + 0x40]
mov r13, rsi
jmp 0x180098c3d
mov r13, rsi
test al, al
je 0x180098c42
nop word [rax + rax]
xor al, 1
jne 0x180098c90
mov r13, rsi
jmp 0x180098c42
mov r9, rdx
call fcn.18018dc30
int3