Function at 0x180030360
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rax, r8
mov r8, rdx
mov rdi, rcx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x50]
mov rdx, rdi
mov r9, rax
call fcn.1801c8f90
cmp qword [rsp + 0x50], 0
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x60]
je 0x180030559
mov r8, qword [rsp + 0x80]
test r8, r8
je 0x180030560
mov qword [rsp + 0x28], rdi
mov rdi, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xb0]
mov r10, qword [rsp + 0x70]
mov qword [rsp + 0x48], r10
mov r14, qword [rsp + 0x90]
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0x30], r10
lea r10, [rbx - 1]
mov qword [rsp + 0x38], r10
mov r10, r8
jmp 0x180030424
cmp rdi, 0xffffffffffffffff
cmovne r14, rax
mov r8, r10
test r10, r10
je 0x180030628
sub r10, rax
cmp r10, rdx
jae 0x18003062b
mov rbp, r8
sub rbp, qword [rsp + 0x30]
mov r11, r8
sub r11, r9
mov qword [rsp + 0x40], r11
mov r11, r8
cmp r8, r11
jne 0x18003062b
movzx r11d, byte [rcx + r10]
mov rsi, qword [rsp + 0x48]
bt rsi, r11
jae 0x1800304bd
cmp r9, r14
mov r13, r14
cmovb r13, r9
cmp rdi, 0xffffffffffffffff
cmove r13, r9
lea r11, [r13 - 1]
cmp r11, rax
jae 0x1800304f0
mov r12, r13
neg r12
mov r11, qword [rsp + 0x38]
lea r15, [r11 + r13]
lea r11, [r10 + r13]
dec r11
test r12, r12
je 0x1800304f9
cmp r11, rdx
jae 0x18003067c
movzx r13d, byte [r15]
inc r12
dec r15
lea rsi, [r11 - 1]
cmp r13b, byte [rcx + r11]
mov r11, rsi
je 0x180030490
mov r10, qword [rsp + 0x40]
sub r10, r12
mov r11, rax
cmp rdi, 0xffffffffffffffff
je 0x1800304c9
mov r14, r11
mov r11, r10
mov rsi, r10
sub rsi, rax
mov r10, rsi
cmp rsi, rdx
jb 0x180030446
jmp 0x18003062b
test r13, r13
jne 0x18003069f
cmp rdi, 0xffffffffffffffff
mov r11, r14
cmove r11, rax
lea r15, [rcx + r10]
mov r12, r9
nop dword [rax + rax]
cmp r12, r11
jae 0x180030410
cmp r12, rax
jae 0x18003064a
lea rsi, [r10 + r12]
cmp rsi, rdx
jae 0x180030663
movzx esi, byte [rbx + r12]
lea r13, [r12 + 1]
cmp sil, byte [r15 + r12]
mov r12, r13
je 0x180030510
mov r11, qword [rsp + 0x30]
mov r10, rbp
cmp rdi, 0xffffffffffffffff
jne 0x1800304c6
jmp 0x1800304c9
cmp byte [rsp + 0x6a], 0
je 0x180030568
xor r8d, r8d
jmp 0x180030630
movzx eax, byte [rsp + 0x69]
test r9, r9
jne 0x1800305a6
xor r8d, r8d
test al, al
je 0x180030630
nop dword [rax]
xor al, 1
jne 0x180030580
jmp 0x180030630
and r10d, 0x1f
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
mov r10d, eax
xor r10b, 1
test al, al
mov eax, r10d
je 0x180030616
cmp r9, rdx
jae 0x1800305c0
cmp byte [rcx + r9], 0xc0
jge 0x1800305c6
jmp 0x18003068b
jne 0x18003068b
movzx r8d, byte [rcx + r9 - 1]
movzx r8d, r8b
test r8b, r8b
jns 0x180030598
movzx r10d, byte [rcx + r9 - 2]
cmp r10b, 0xbf
jg 0x180030589
movzx r11d, byte [rcx + r9 - 3]
cmp r11b, 0xbf
jg 0x180030602
movzx esi, byte [rcx + r9 - 4]
and esi, 7
shl esi, 6
and r11d, 0x3f
or r11d, esi
jmp 0x180030606
and r11d, 0xf
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
jmp 0x18003058d
xor eax, eax
cmp r8d, 0x110000
cmove r9, rax
mov r8, r9
jmp 0x180030630
xor r8d, r8d
mov rdi, qword [rsp + 0x28]
mov rax, rdi
mov rdx, r8
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r9, rax
cmovbe r9, rax
lea r8, [0x1801e3de0]
mov rcx, r9
mov rdx, rax
call fcn.1801de350
add r10, r9
cmp rdx, r10
cmova r10, rdx
lea r8, [0x1801e3df8]
mov rcx, r10
call fcn.1801de350
lea r8, [0x1801e3e28]
mov rcx, r11
call fcn.1801de350
lea rax, [0x1801e4100]
mov qword [rsp + 0x20], rax
xor r8d, r8d
call fcn.1801de900
lea r8, [0x1801e3e10]
mov rcx, r11
mov rdx, rax
call fcn.1801de350
int3