Function at 0x1401379b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x188
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x100], 0xfffffffffffffffe
mov qword [rbp + 0xd0], r9
mov qword [rbp + 0xb0], r8
cmp rdx, 0x15
jae 0x140137a1c
mov r12, rdx
mov r14, rcx
cmp r12, 1
jbe 0x140137a07
mov r8d, 1
mov rcx, r14
mov rdx, r12
call fcn.1401378a0
nop
add rsp, 0x188
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp + 0xe0], rdx
mov qword [rbp + 0xe8], rcx
mov eax, dword [rbp + 0x170]
mov dword [rbp + 0xf4], eax
mov byte [rbp + 0xf8], 1
movabs rbx, 0x1ffffffffffffffe
mov r13b, 1
and r13b, byte [rbp + 0xf8]
mov r14, qword [rbp + 0xe8]
mov r15, qword [rbp + 0xe0]
nop
cmp dword [rbp + 0xf4], 0
je 0x1401384c9
test byte [rbp + 0xf8], 1
je 0x140137d98
mov rdx, r15
shr rdx, 2
lea rax, [rdx + rdx]
lea rcx, [rdx + rdx*2]
cmp r15, 0x31
jbe 0x140137ac0
lea r9, [rdx - 1]
mov r8d, dword [r14 + rdx*8 - 8]
mov r10d, dword [r14 + rdx*8]
cmp r10d, r8d
jae 0x140137af0
mov edi, 1
mov r11d, r10d
mov rbx, r9
mov r9, rdx
mov r10d, r8d
jmp 0x140137af8
xor r8d, r8d
mov r12, rax
mov edi, dword [r14 + r12*8]
mov r9d, dword [r14 + rdx*8]
cmp edi, r9d
jb 0x140137beb
mov r10d, r9d
mov r11, r12
mov r12, rdx
mov r9d, edi
jmp 0x140137bf4
mov r11d, r8d
xor edi, edi
mov rbx, rdx
mov r12d, dword [r14 + rdx*8 + 8]
inc rdx
xor r8d, r8d
cmp r12d, r10d
cmovae rdx, rbx
cmovb r10d, r12d
setb r8b
cmp r10d, r11d
adc r8, rdi
cmp r10d, r11d
cmovb rdx, r9
lea r10, [rax - 1]
mov r11d, dword [r14 + rax*8 - 8]
mov r9d, dword [r14 + rax*8]
cmp r9d, r11d
jae 0x140137b40
inc r8
mov edi, r9d
mov rbx, r10
mov r10, rax
jmp 0x140137b49
mov edi, r11d
mov rbx, rax
mov r11d, r9d
mov r12, rax
or r12, 1
mov esi, dword [r14 + r12*8]
xor r9d, r9d
cmp esi, r11d
cmovae r12, rbx
cmovb r11d, esi
setb r9b
cmp r11d, edi
adc r9, r8
cmp r11d, edi
cmovb r12, r10
lea r10, [rcx - 1]
mov r11d, dword [r14 + rcx*8 - 8]
mov r8d, dword [r14 + rcx*8]
cmp r8d, r11d
jae 0x140137ba0
inc r9
mov edi, r8d
mov rbx, r10
mov r10, rcx
jmp 0x140137ba9
mov edi, r11d
mov rbx, rcx
mov r11d, r8d
mov esi, dword [r14 + rcx*8 + 8]
inc rcx
xor r8d, r8d
cmp esi, r11d
cmovae rcx, rbx
cmovb r11d, esi
setb r8b
cmp r11d, edi
adc r8, r9
cmp r11d, edi
cmovb rcx, r10
movabs rbx, 0x1ffffffffffffffe
mov edi, dword [r14 + r12*8]
mov r9d, dword [r14 + rdx*8]
cmp edi, r9d
jae 0x140137ad7
inc r8
mov r10d, edi
mov r11, rdx
mov edx, dword [r14 + rcx*8]
cmp edx, r9d
adc r8, 0
cmp edx, r9d
cmovb r11, rcx
cmovb r9d, edx
cmp r9d, r10d
jae 0x140137c40
mov ecx, 1
cmp r8, 0xb
jb 0x140137c46
mov rcx, r15
shr rcx, 1
lea rdx, [r14 + r15*8]
lea r8, [rcx*8]
sub rdx, r8
cmp rcx, 1
jne 0x140137c56
xor r8d, r8d
jmp 0x140137c98
mov r12, r11
mov rcx, r8
test rcx, rcx
sete al
test r13b, al
je 0x140137cc8
jmp 0x140137dae
lea r9, [r15 - 1]
xor r8d, r8d
nop dword [rax]
mov r10, qword [r14 + r9*8]
mov r11, qword [r14 + r8*8]
mov qword [r14 + r8*8], r10
mov qword [r14 + r9*8], r11
mov r10, r8
xor r10, rbx
add r10, rcx
mov r11, qword [rdx + r10*8]
mov rsi, qword [r14 + r8*8 + 8]
mov qword [r14 + r8*8 + 8], r11
mov qword [rdx + r10*8], rsi
add r8, 2
add r9, 0xfffffffffffffffe
cmp rax, r8
jne 0x140137c60
test r15b, 2
je 0x140137cb7
mov rax, r8
not rax
add rcx, rax
mov rax, qword [rdx + rcx*8]
mov r9, qword [r14 + r8*8]
mov qword [r14 + r8*8], rax
mov qword [rdx + rcx*8], r9
not r12
add r12, r15
mov al, 1
test r13b, al
jne 0x140137dae
cmp qword [rbp + 0xd0], 0
je 0x140137dd0
cmp r12, r15
jae 0x1401384d9
mov rax, qword [rbp + 0xd0]
mov eax, dword [rax]
cmp eax, dword [r14 + r12*8]
jb 0x140137de0
mov rax, qword [r14]
mov rcx, qword [r14 + r12*8]
mov qword [r14], rcx
mov qword [r14 + r12*8], rax
lea rdx, [r15 - 1]
mov rax, qword [r14]
xor ecx, ecx
cmp rcx, rdx
jae 0x140137d30
nop
cmp dword [r14 + rcx*8 + 8], eax
ja 0x140137d30
inc rcx
cmp rdx, rcx
jne 0x140137d10
mov rcx, rdx
nop word cs:[rax + rax]
lea r8, [rdx - 1]
cmp rcx, r8
jae 0x140137d70
cmp dword [r14 + rdx*8], eax
mov rdx, r8
ja 0x140137d30
mov rdx, qword [r14 + rcx*8 + 8]
mov r9, qword [r14 + r8*8 + 8]
mov qword [r14 + rcx*8 + 8], r9
mov qword [r14 + r8*8 + 8], rdx
inc rcx
mov rdx, r8
cmp rcx, rdx
jb 0x140137d10
jmp 0x140137d30
inc rcx
mov qword [r14], rax
mov r12, r15
sub r12, rcx
jb 0x1401384eb
lea r14, [r14 + rcx*8]
mov r15, r12
cmp r12, 0x15
jae 0x140137a60
jmp 0x1401379f0
mov rcx, r14
mov rdx, r15
call fcn.140331670
dec dword [rbp + 0xf4]
jmp 0x140137a7a
mov rcx, r14
mov rdx, r15
call fcn.1403317c0
test al, al
je 0x140137cc8
jmp 0x140137a07
mov r15, qword [rbp + 0xe0]
jmp 0x140137de7
mov qword [rbp + 0xe8], r14
cmp r12, r15
mov r8, qword [rbp + 0xe8]
jae 0x1401384fa
mov rax, qword [r8]
mov rcx, qword [r8 + r12*8]
mov qword [r8], rcx
mov qword [r8 + r12*8], rax
lea rax, [r8 + 8]
lea rdx, [r15 - 1]
mov ecx, dword [r8]
mov qword [rbp + 0xf8], rcx
mov ecx, dword [r8 + 4]
xor r10d, r10d
mov qword [rbp + 0xb8], rcx
nop word cs:[rax + rax]
mov r9, qword [rbp + 0xf8]
cmp dword [r8 + r10*8 + 8], r9d
jae 0x140137e49
inc r10
cmp rdx, r10
jne 0x140137e30
mov r10, rdx
lea r8, [r8 + r15*8]
nop dword [rax]
mov r11, rdx
mov r9, r8
cmp r10, rdx
jae 0x140137e70
lea rdx, [r11 - 1]
lea r8, [r9 - 8]
mov rcx, qword [rbp + 0xf8]
cmp dword [r9 - 8], ecx
jae 0x140137e50
mov qword [rbp + 0xe0], r15
mov qword [rbp + 0xc0], r11
cmp r10, r11
ja 0x14013851b
mov qword [rbp + 0xc8], r10
lea r8, [rax + r10*8]
mov eax, 0x80
mov qword [rbp + 0xd8], rax
xor r11d, r11d
xor r13d, r13d
xor r10d, r10d
xor r15d, r15d
mov r14d, 0x80
mov qword [rbp + 0xa8], r8
jmp 0x140137f02
movlps qword [r9 + rax*8], xmm0
inc r15
inc r13
mov rdx, qword [rbp + 0xd8]
cmp r15, r10
mov eax, 0
cmove rax, r14
neg rdx
cmp r13, r11
mov ecx, 0
cmovne rdx, rcx
lea r8, [r8 + rax*8]
lea r9, [r9 + rdx*8]
cmp r12, 0x808
jb 0x140138220
mov r12, r9
sub r12, r8
cmp r12, 0x808
mov rcx, qword [rbp + 0xf8]
jae 0x140137f70
mov rax, r12
shr rax, 3
cmp r15, r10
setb bl
cmp r13, r11
setb sil
or sil, bl
lea rdi, [rax - 0x80]
test sil, sil
mov rbx, rax
cmovne rbx, rdi
cmp r15, r10
mov rdx, qword [rbp + 0xd8]
cmovb rdx, rdi
cmovae r14, rbx
test sil, sil
jne 0x140137f61
mov r14, r12
shr r14, 4
sub rax, r14
mov rdx, rax
cmp r15, r10
jne 0x140138030
jmp 0x140137f80
mov rdx, qword [rbp + 0xd8]
cmp r15, r10
jne 0x140138030
test r14, r14
je 0x140137fa4
cmp r14, 4
lea r15, [rbp - 0x58]
jae 0x140137fb0
mov r10, r15
mov rax, r8
xor ebx, ebx
mov esi, r14d
and esi, 3
jne 0x14013800d
jmp 0x140138030
lea r15, [rbp - 0x58]
mov r10, r15
jmp 0x140138030
mov rsi, r14
and rsi, 0xfffffffffffffffc
mov r10, r15
mov rax, r8
xor ebx, ebx
nop
mov edi, ebx
mov byte [r10], bl
cmp dword [rax], ecx
sbb r10, 0xffffffffffffffff
lea r15d, [rdi + 1]
mov byte [r10], r15b
cmp dword [rax + 8], ecx
sbb r10, 0xffffffffffffffff
lea r15d, [rdi + 2]
cmp dword [rax + 0x10], ecx
mov byte [r10], r15b
sbb r10, 0xffffffffffffffff
add rbx, 4
add edi, 3
mov byte [r10], dil
cmp dword [rax + 0x18], ecx
sbb r10, 0xffffffffffffffff
add rax, 0x20
cmp rsi, rbx
jne 0x140137fc0
lea r15, [rbp - 0x58]
mov esi, r14d
and esi, 3
je 0x140138030
xor edi, edi
nop
lea r15d, [rbx + rdi]
mov byte [r10], r15b
cmp dword [rax + rdi*8], ecx
sbb r10, 0xffffffffffffffff
inc rdi
cmp rsi, rdi
jne 0x140138010
lea r15, [rbp - 0x58]
nop word [rax + rax]
cmp r13, r11
mov qword [rbp + 0xd8], rdx
je 0x140138090
mov rax, r10
sub rax, r15
mov rbx, r11
sub rbx, r13
cmp rax, rbx
cmovb rbx, rax
test rbx, rbx
je 0x140137ed2
movzx edx, byte [r15]
movsd xmm0, qword [r8 + rdx*8]
movzx edi, byte [r13]
mov rax, rdi
not rax
mov rsi, qword [r9 + rax*8]
mov qword [r8 + rdx*8], rsi
cmp rbx, 1
je 0x140137ec0
lea rsi, [rbx - 1]
cmp rbx, 2
jne 0x1401380b1
jmp 0x140138112
test rdx, rdx
je 0x14013814b
cmp rdx, 4
jae 0x140138157
lea r11, [rbp + 0x28]
xor eax, eax
mov rsi, r9
jmp 0x1401381d6
mov rbx, rsi
and rbx, 0xfffffffffffffffe
nop dword [rax + rax]
movzx eax, byte [r15 + 1]
movzx edx, dil
not rdx
mov rdi, qword [r8 + rax*8]
mov qword [r9 + rdx*8], rdi
movzx edx, byte [r13 + 1]
not rdx
mov rdi, qword [r9 + rdx*8]
mov qword [r8 + rax*8], rdi
movzx ecx, byte [r15 + 2]
add r15, 2
mov rax, qword [r8 + rcx*8]
mov qword [r9 + rdx*8], rax
movzx edi, byte [r13 + 2]
add r13, 2
mov rax, rdi
not rax
mov rdx, qword [r9 + rax*8]
mov qword [r8 + rcx*8], rdx
add rbx, 0xfffffffffffffffe
jne 0x1401380c0
test sil, 1
je 0x140137ec0
movzx edx, byte [r15 + 1]
inc r15
movzx eax, dil
not rax
mov rsi, qword [r8 + rdx*8]
mov qword [r9 + rax*8], rsi
movzx eax, byte [r13 + 1]
inc r13
not rax
mov rsi, qword [r9 + rax*8]
mov qword [r8 + rdx*8], rsi
jmp 0x140137ec0
lea r13, [rbp + 0x28]
mov r11, r13
jmp 0x14013803c
mov rbx, rdx
and rbx, 0xfffffffffffffffc
lea r11, [rbp + 0x28]
xor r13d, r13d
mov rdi, r9
xor eax, eax
nop word [rax + rax]
mov byte [r11], r13b
xor esi, esi
cmp dword [rdi - 8], ecx
setb sil
lea edx, [r13 + 1]
mov rcx, qword [rbp + 0xf8]
cmp dword [rdi - 0x10], ecx
mov byte [r11 + rsi], dl
adc r11, rsi
lea edx, [r13 + 2]
mov byte [r11], dl
xor edx, edx
mov rcx, qword [rbp + 0xf8]
cmp dword [rdi - 0x18], ecx
setb dl
add rax, 4
lea esi, [r13 + 3]
mov byte [r11 + rdx], sil
mov rcx, qword [rbp + 0xf8]
cmp dword [rdi - 0x20], ecx
adc r11, rdx
mov rcx, qword [rbp + 0xf8]
lea rsi, [rdi - 0x20]
mov r13, rax
mov rdi, rsi
cmp rbx, rax
jne 0x140138170
mov rdx, qword [rbp + 0xd8]
mov edi, edx
lea r13, [rbp + 0x28]
and edi, 3
je 0x14013803c
neg rdi
xor ebx, ebx
nop word cs:[rax + rax]
mov byte [r11], al
cmp dword [rsi + rbx*8 - 8], ecx
adc r11, 0
inc al
dec rbx
cmp rdi, rbx
jne 0x140138200
lea r13, [rbp + 0x28]
jmp 0x14013803c
mov rdx, r15
sub rdx, r10
jae 0x140138280
mov r11d, r10d
sub r11d, r15d
and r11d, 3
je 0x1401382bd
nop dword [rax + rax]
movzx ecx, byte [r10 - 1]
dec r10
lea rax, [r9 - 8]
mov rsi, qword [r8 + rcx*8]
mov rdi, qword [r9 - 8]
mov qword [r8 + rcx*8], rdi
mov qword [r9 - 8], rsi
mov r9, rax
dec r11
jne 0x140138240
mov r12, rax
cmp rdx, 0xfffffffffffffffc
mov r11, qword [rbp + 0xc8]
jbe 0x1401382e0
jmp 0x1401383c0
cmp r13, r11
jae 0x1401382ae
mov eax, r11d
sub eax, r13d
test al, 1
jne 0x140138346
mov rax, r11
dec r11
cmp r11, r13
mov r11, qword [rbp + 0xc8]
jne 0x140138380
jmp 0x1401383c0
mov r12, r8
mov r11, qword [rbp + 0xc8]
jmp 0x1401383c0
mov rax, r9
mov r12, rax
cmp rdx, 0xfffffffffffffffc
mov r11, qword [rbp + 0xc8]
ja 0x1401383c0
nop word cs:[rax + rax]
movzx ecx, byte [r10 - 1]
mov rdx, qword [r8 + rcx*8]
mov r9, qword [rax - 8]
mov qword [r8 + rcx*8], r9
mov qword [rax - 8], rdx
movzx ecx, byte [r10 - 2]
mov rdx, qword [r8 + rcx*8]
mov r9, qword [rax - 0x10]
mov qword [r8 + rcx*8], r9
mov qword [rax - 0x10], rdx
movzx ecx, byte [r10 - 3]
mov rdx, qword [r8 + rcx*8]
mov r9, qword [rax - 0x18]
mov qword [r8 + rcx*8], r9
mov qword [rax - 0x18], rdx
movzx ecx, byte [r10 - 4]
add r10, 0xfffffffffffffffc
lea r12, [rax - 0x20]
mov rdx, qword [r8 + rcx*8]
mov r9, qword [rax - 0x20]
mov qword [r8 + rcx*8], r9
mov qword [rax - 0x20], rdx
mov rax, r12
cmp r15, r10
jb 0x1401382e0
jmp 0x1401383c0
lea rax, [r11 - 1]
movzx ecx, byte [r11 - 1]
not rcx
mov rdx, qword [r8]
mov r10, qword [r9 + rcx*8]
mov qword [r8], r10
mov qword [r9 + rcx*8], rdx
add r8, 8
mov r12, r8
dec r11
cmp r11, r13
mov r11, qword [rbp + 0xc8]
je 0x1401383c0
nop word cs:[rax + rax]
movzx ecx, byte [rax - 1]
not rcx
mov rdx, qword [r8]
mov r10, qword [r9 + rcx*8]
mov qword [r8], r10
mov qword [r9 + rcx*8], rdx
movzx ecx, byte [rax - 2]
add rax, 0xfffffffffffffffe
not rcx
mov rdx, qword [r8 + 8]
mov r10, qword [r9 + rcx*8]
mov qword [r8 + 8], r10
mov qword [r9 + rcx*8], rdx
add r8, 0x10
cmp r13, rax
jb 0x140138380
mov r12, r8
nop dword [rax]
sub r12, qword [rbp + 0xa8]
shr r12, 3
add r12, r11
mov rcx, qword [rbp + 0xb8]
shl rcx, 0x20
add rcx, qword [rbp + 0xf8]
mov rsi, qword [rbp + 0xe8]
mov qword [rsi], rcx
mov rdx, qword [rbp + 0xe0]
mov r14, rdx
sub r14, r12
jbe 0x14013850c
cmp r11, qword [rbp + 0xc0]
setae r13b
lea r15, [rsi + r12*8]
mov rax, qword [rsi + r12*8]
mov qword [rsi], rax
mov qword [rsi + r12*8], rcx
cmp r12, r14
mov rax, r14
cmovb rax, r12
shr rdx, 3
cmp rax, rdx
setae byte [rbp + 0xf8]
lea rbx, [rsi + r12*8]
add rbx, 8
dec r14
cmp r12, r14
jae 0x140138480
mov eax, dword [rbp + 0xf4]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, qword [rbp + 0xb0]
mov r9, qword [rbp + 0xd0]
call fcn.1401379b0
mov qword [rbp + 0xd0], r15
mov r12, r14
mov r14, rbx
jmp 0x1401384a2
mov eax, dword [rbp + 0xf4]
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov rdx, r14
mov r8, qword [rbp + 0xb0]
mov r9, r15
call fcn.1401379b0
mov r14, rsi
mov qword [rbp + 0xe0], r12
mov qword [rbp + 0xe8], r14
cmp r12, 0x15
movabs rbx, 0x1ffffffffffffffe
jae 0x140137a4a
jmp 0x1401379f0
mov rcx, r14
mov rdx, r15
call fcn.140331b10
jmp 0x140137a07
lea r8, [0x140352d50]
mov rcx, r12
mov rdx, r15
call fcn.1403393b0
lea r8, [0x140352d68]
mov rdx, r15
call fcn.1403396e0
lea r8, [0x140352dc8]
mov rcx, r12
mov rdx, r15
call fcn.1403393b0
lea r8, [0x140352df8]
mov rcx, r12
call fcn.1403393b0
lea r8, [0x140352de0]
mov rcx, r10
mov rdx, qword [rbp + 0xc0]
call fcn.1403397c0
ud2