Function at 0x180310700
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.18044b3f0
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 0x1803109ee
mov rbp, qword [rsp + 0xa8]
mov r13, rsi
cmp rbp, rdx
je 0x180310a92
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 0x180310a88
mov r9, qword [rsp + 0x78]
add r9, r13
mov qword [rsp + 0x50], r9
lea rbp, [rax + r13]
cmp rsi, 0xffffffffffffffff
je 0x180310900
mov rbx, r13
jmp 0x180310847
xor esi, esi
mov rbx, rbp
mov r9, qword [rsp + 0x48]
lea r10, [rbx + r9]
cmp r10, rdx
jae 0x180310a88
cmp r13, rbx
jne 0x180310a88
movzx r9d, byte [rcx + r10]
mov r10, qword [rsp + 0x60]
bt r10, r9
jae 0x180310830
cmp r8, rsi
mov r10, rsi
cmova r10, r8
nop word [rax + rax]
cmp r10, rax
jae 0x1803108a0
lea r9, [r10 + r13]
cmp r9, rdx
jae 0x1803109ec
lea rbx, [r10 + 1]
movzx r9d, byte [r11 + r10]
cmp r9b, byte [r15 + r10]
mov r10, rbx
je 0x180310870
add rbx, qword [rsp + 0x58]
xor esi, esi
jmp 0x180310835
mov r10, qword [rsp + 0x70]
nop word cs:[rax + rax]
lea r9, [r10 + 1]
cmp rsi, r9
jae 0x1803108f0
cmp r10, rax
jae 0x1803109ec
lea r9, [r10 + r13]
cmp r9, rdx
jae 0x1803109ec
movzx r9d, byte [r11 + r10]
lea rbx, [r10 - 1]
cmp r9b, byte [r15 + r10]
mov r10, rbx
je 0x1803108b0
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x50]
jmp 0x180310835
xor esi, esi
jmp 0x1803109c7
mov rsi, r13
jmp 0x180310922
mov r9, qword [rsp + 0x48]
lea r10, [rsi + r9]
cmp r10, rdx
jae 0x180310a88
cmp r13, rsi
jne 0x180310a88
movzx r10d, byte [rcx + r10]
mov r9, qword [rsp + 0x60]
bt r9, r10
mov rsi, rbp
jae 0x180310910
xor r10d, r10d
mov rbx, r13
nop word cs:[rax + rax]
lea rsi, [r8 + r10]
cmp rsi, rax
jae 0x180310980
lea rsi, [r8 + rbx]
cmp rsi, rdx
jae 0x1803109ec
movzx r9d, byte [r14 + r10]
lea rsi, [rbx + 1]
inc r10
cmp r9b, byte [r12 + rbx]
mov rbx, rsi
je 0x180310950
jmp 0x180310910
test byte [rsp + 0x37], 1
je 0x1803109e0
mov rsi, r8
mov r10, r8
nop dword [rax]
sub r10, 1
jb 0x1803109c0
lea rbx, [rdi + rsi]
cmp rbx, rdx
jae 0x1803109ec
movzx ebx, byte [r11 + rsi - 1]
cmp bl, byte [r15 + rsi - 1]
mov rsi, r10
je 0x180310990
mov rsi, qword [rsp + 0x50]
jmp 0x180310910
mov rsi, 0xffffffffffffffff
add qword [rsp + 0x58], rax
add r15, rax
add rdi, rax
cmp rbp, rdx
jne 0x1803107f8
jmp 0x180310ac6
mov rsi, 0xffffffffffffffff
test r8, r8
je 0x1803109c7
ud2
cmp byte [rsp + 0x9a], 0
mov r13, rsi
jne 0x180310a92
movzx eax, byte [rsp + 0x98]
test r9b, 1
je 0x180310a68
test r8, r8
je 0x180310ab7
cmp r8, rdx
jae 0x180310ad0
cmp byte [rcx + r8], 0xc0
jl 0x180310ae9
mov r13, rsi
test al, al
je 0x180310a92
nop word cs:[rax + rax]
xor al, 1
jne 0x180310a40
jmp 0x180310ae4
movzx r9d, byte [rcx + r8]
test r9b, r9b
js 0x180310a82
mov r9d, eax
xor r9b, 1
test al, al
mov eax, r9d
je 0x180310ab2
test r8, r8
je 0x180310a50
cmp r8, rdx
jae 0x180310ae9
movzx r9d, byte [rcx + r8]
cmp r9b, 0xbf
jle 0x180310ae9
test r9b, r9b
jns 0x180310a5a
cmp r9b, 0xe0
jmp 0x180310a5a
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 0x180310a92
mov r13, rsi
test al, al
je 0x180310a92
nop
xor al, 1
jne 0x180310ac0
jmp 0x180310ae4
mov rsi, qword [rsp + 0x40]
mov r13, rsi
jmp 0x180310a8d
mov r13, rsi
test al, al
je 0x180310a92
nop word [rax + rax]
xor al, 1
jne 0x180310ae0
mov r13, rsi
jmp 0x180310a92
mov r9, rdx
call fcn.180407090
int3