Function at 0x140036a10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov rax, r8
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x90]
mov rdx, rdi
mov r8, rsi
mov r9, rax
call fcn.140059550
cmp qword [rsp + 0x90], 0
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0x98]
je 0x140036d47
mov rbp, qword [rsp + 0xb8]
mov r15, rsi
cmp rbp, rdx
je 0x140036f3f
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rsi
mov rax, qword [rsp + 0xf0]
lea r9, [rax - 1]
mov qword [rsp + 0x60], r9
mov rbx, qword [rsp + 0xe8]
mov r9, qword [rsp + 0xb0]
mov qword [rsp + 0x68], r9
mov r12, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xa8]
mov r11, rax
mov r9, r10
mov qword [rsp + 0x88], r10
sub r11, r10
mov qword [rsp + 0x78], r11
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 r13, [rcx + rbp]
lea rdi, [rcx + r8]
lea rsi, [rbx + r8]
lea r9, [rbx + r8]
dec r9
mov qword [rsp + 0x80], r9
lea r9, [r8 + rbp]
dec r9
mov qword [rsp + 0x48], r9
mov r15, rbp
lea r9, [rax + rbp]
dec r9
cmp r9, rdx
jae 0x140036dad
lea rbp, [r15 + rax]
mov r10, qword [rsp + 0x88]
add r10, r15
mov qword [rsp + 0x50], r10
cmp r12, 0xffffffffffffffff
je 0x140036c30
mov r14, r15
jmp 0x140036b77
xor r12d, r12d
mov r14, rbp
mov r9, qword [rsp + 0x60]
add r9, r14
cmp r9, rdx
jae 0x140036dad
cmp r15, r14
jne 0x140036dad
movzx r9d, byte [rcx + r9]
mov r10, qword [rsp + 0x68]
bt r10, r9
jae 0x140036b60
cmp r8, r12
mov r9, r12
cmova r9, r8
mov r10, r9
nop dword [rax]
cmp r10, rax
jae 0x140036bd0
lea r11, [r15 + r10]
cmp r11, rdx
jae 0x140036eff
lea r14, [r10 + 1]
movzx r11d, byte [rbx + r10]
cmp r11b, byte [r13 + r10]
mov r10, r14
je 0x140036ba0
add r14, qword [rsp + 0x58]
xor r12d, r12d
jmp 0x140036b66
mov r10, r8
nop word cs:[rax + rax]
cmp r12, r10
jae 0x140036c20
dec r10
cmp r10, rax
jae 0x140036d33
lea r9, [r10 + r15]
cmp r9, rdx
jae 0x140036ee3
movzx r11d, byte [rbx + r10]
cmp r11b, byte [rcx + r9]
je 0x140036be0
mov r12, qword [rsp + 0x78]
mov r14, qword [rsp + 0x50]
jmp 0x140036b66
xor r12d, r12d
jmp 0x140036d07
mov r10, r15
jmp 0x140036c51
mov r9, qword [rsp + 0x60]
add r9, r10
cmp r9, rdx
jae 0x140036dad
cmp r15, r10
jne 0x140036dad
movzx r9d, byte [rcx + r9]
mov r10, qword [rsp + 0x68]
bt r10, r9
mov r10, rbp
jae 0x140036c40
xor r9d, r9d
mov r12, r15
nop word cs:[rax + rax]
lea r10, [r8 + r9]
cmp r10, rax
jae 0x140036cb0
lea r10, [r8 + r12]
cmp r10, rdx
jae 0x140036efc
movzx r11d, byte [rsi + r9]
lea r10, [r12 + 1]
inc r9
cmp r11b, byte [rdi + r12]
mov r12, r10
je 0x140036c80
jmp 0x140036c40
test byte [rsp + 0x37], 1
je 0x140036d22
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0x80]
mov r12, r8
nop word [rax + rax]
sub r12, 1
jb 0x140036d00
cmp r9, rdx
jae 0x140036ee3
movzx r14d, byte [r10]
dec r10
lea r11, [r9 - 1]
cmp r14b, byte [rcx + r9]
mov r9, r11
je 0x140036cd0
mov r10, qword [rsp + 0x50]
jmp 0x140036c40
mov r12, 0xffffffffffffffff
add qword [rsp + 0x58], rax
add r13, rax
add qword [rsp + 0x48], rax
cmp rbp, rdx
jne 0x140036b1b
jmp 0x140036e2c
mov r12, 0xffffffffffffffff
test r8, r8
je 0x140036d07
mov r10, qword [rsp + 0x70]
lea r8, [0x1400742c8]
mov rcx, r10
mov rdx, rax
call fcn.14006cc80
ud2
cmp byte [rsp + 0xaa], 0
mov r15, rsi
jne 0x140036f3f
movzx eax, byte [rsp + 0xa8]
test r8, r8
je 0x140036dbc
cmp rdx, r8
jbe 0x140036de9
movzx r9d, byte [rcx + r8]
cmp r9b, 0xc0
jl 0x140036f5f
mov edx, eax
xor dl, 1
test r9b, r9b
js 0x140036e3e
test al, al
je 0x140036f3c
mov eax, edx
nop word cs:[rax + rax]
xor al, 1
test dl, dl
mov edx, eax
jne 0x140036da0
jmp 0x140036f3c
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
jmp 0x140036f3f
test rdx, rdx
je 0x140036e06
movzx r9d, byte [rcx + r8]
test r9b, r9b
js 0x140036e81
test al, al
je 0x140036f3c
nop word [rax + rax]
xor al, 1
jne 0x140036de0
jmp 0x140036f3c
jne 0x140036f5f
mov r15, rsi
test al, al
je 0x140036f3f
nop word [rax + rax]
xor al, 1
jne 0x140036e00
jmp 0x140036e24
mov r15, rsi
test al, al
je 0x140036f3f
nop word cs:[rax + rax]
xor al, 1
jne 0x140036e20
mov r15, rsi
jmp 0x140036f3f
mov rsi, qword [rsp + 0x40]
mov r15, rsi
mov rdi, qword [rsp + 0x38]
jmp 0x140036f3f
cmp r9b, 0xe0
jb 0x140036eec
cmp r9b, 0xf0
jb 0x140036f24
movzx r11d, byte [rcx + r8 + 1]
and r11d, 0x3f
movzx r10d, byte [rcx + r8 + 2]
and r10d, 0x3f
shl r11d, 0xc
shl r10d, 6
or r10d, r11d
test al, al
je 0x140036ebe
mov eax, edx
xor al, 1
test dl, dl
mov edx, eax
jne 0x140036e77
jmp 0x140036ebe
cmp r9b, 0xe0
jb 0x140036f1a
cmp r9b, 0xf0
jb 0x140036f34
and r9b, 0x1f
movzx edx, byte [rcx + r8 + 1]
and edx, 0x3f
movzx r10d, byte [rcx + r8 + 2]
and r10d, 0x3f
shl edx, 0xc
shl r10d, 6
or r10d, edx
test al, al
je 0x140036ebe
xor al, 1
jne 0x140036eba
movzx eax, r9b
and eax, 7
shl eax, 0x12
movzx ecx, byte [rcx + r8 + 3]
and ecx, 0x3f
or ecx, r10d
or ecx, eax
mov r15, rsi
cmp ecx, 0x110000
jne 0x140036f3c
jmp 0x140036f3f
lea r8, [0x1400742e0]
jmp 0x140036f10
test al, al
je 0x140036f3c
mov eax, edx
xor al, 1
test dl, dl
mov edx, eax
jne 0x140036ef2
jmp 0x140036f3c
mov r9, r8
add r9, r15
cmp rdx, r9
cmova r9, rdx
lea r8, [0x1400742b0]
mov rcx, r9
call fcn.14006cc80
ud2
test al, al
je 0x140036f3c
xor al, 1
jne 0x140036f1e
jmp 0x140036f3c
test al, al
je 0x140036f3c
mov eax, edx
xor al, 1
test dl, dl
mov edx, eax
jne 0x140036f2a
jmp 0x140036f3c
test al, al
je 0x140036f3c
xor al, 1
jne 0x140036f38
mov r15, r8
add rdi, r15
sub rsi, r15
mov rax, rdi
mov rdx, rsi
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str._B_a_
mov qword [rsp + 0x20], rax
mov r9, rdx
call fcn.14006d260
ud2