Function at 0x140015c7c
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x140046180]
xor rax, rsp
mov qword [rbp - 8], rax
mov esi, r9d
mov qword [rsp + 0x48], r8
mov r15, rdx
mov rbx, rcx
mov rax, qword [rbp + 0x70]
mov qword [rsp + 0x40], rax
mov r14, qword [rbp + 0x78]
mov r12, qword [rbp + 0x80]
mov rax, qword [rbp + 0x88]
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x58], rax
call fcn.140014e34
mov rcx, rax
mov r8, rbx
lea rdx, [rsp + 0x68]
call fcn.140014f00
nop
xor r13d, r13d
cmp qword [rsp + 0x78], r13
jne 0x140015d40
call fcn.140014e34
mov rcx, rax
lea r8, [rsp + 0x68]
mov rdx, rbx
call fcn.140014fa8
mov edi, eax
test eax, eax
jne 0x140015d28
cmp qword [rsp + 0x78], r13
jne 0x140015d40
cmp qword [rbp - 0x80], 0x10
jb 0x140015d39
mov rcx, qword [rsp + 0x68]
call fcn.1400233e4
mov eax, edi
jmp 0x140016113
mov rax, qword [0x14003a8a0]
mov qword [rbp - 0x18], rax
mov eax, dword [0x14003a8a8]
mov dword [rbp - 0x10], eax
movzx eax, word [0x14003a8ac]
mov word [rbp - 0xc], ax
mov ecx, 0xc
mov al, byte [rbp + rcx - 0x19]
xor byte [rbp + rcx - 0x18], al
dec rcx
test rcx, rcx
jg 0x140015d64
xor byte [rbp - 0x18], 0xd2
movabs rax, 0x3b1b690c7e1f7a
mov qword [rbp - 0x20], rax
mov ecx, 6
mov al, byte [rbp + rcx - 0x21]
xor byte [rbp + rcx - 0x20], al
dec rcx
test rcx, rcx
jg 0x140015d8b
xor byte [rbp - 0x20], 0x18
mov qword [rbp - 0x30], 0xf
mov qword [rbp - 0x38], r13
mov byte [rbp - 0x48], r13b
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp - 0x18]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x48]
call fcn.140002348
nop
lea r8, [rsp + 0x68]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.14000b0d0
mov rdi, rax
lea rdx, [rbp - 0x48]
mov rcx, r14
call fcn.14000a560
mov rcx, rax
mov rdx, rdi
call fcn.1400052c0
nop
cmp qword [rbp - 0x58], 0x10
jb 0x140015e0d
mov rcx, qword [rbp - 0x70]
call fcn.1400233e4
mov qword [rbp - 0x58], 0xf
mov qword [rbp - 0x60], r13
mov byte [rbp - 0x70], r13b
cmp qword [rbp - 0x30], 0x10
jb 0x140015e2d
mov rcx, qword [rbp - 0x48]
call fcn.1400233e4
mov ecx, r13d
mov r13, rsi
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
test ecx, ecx
je 0x140015e57
mov edx, 0x5a2bc0
mov ecx, 0xb9f5b9c
call fcn.140022154
mov ecx, 0x1388
call rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
mov r9, rsi
mov r8, r13
mov rdx, rdi
mov rcx, r15
call fcn.14001decc
test eax, eax
je 0x1400160fd
mov eax, dword [r12]
cmp eax, 0x191
jne 0x1400160b8
call fcn.140014e34
mov rcx, rax
mov r8, rbx
lea rdx, [rbp - 0x70]
call fcn.140014f00
nop
mov rsi, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x140015ec0
mov rax, qword [rax]
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rcx, qword [rsp + 0x68]
mov r8, rsi
mov rdi, qword [rsp + 0x78]
cmp rdi, rsi
cmovb r8, rdi
mov rdx, rax
call fcn.14002bec0
movsxd rcx, eax
xor eax, eax
cmp rdi, rsi
setne al
cmp rdi, rsi
mov rdx, 0xffffffffffffffff
cmovb eax, edx
xor esi, esi
test rcx, rcx
cmovne eax, ecx
test eax, eax
sete dil
cmp qword [rbp - 0x58], 0x10
jb 0x140015f1d
mov rcx, qword [rbp - 0x70]
call fcn.1400233e4
test dil, dil
je 0x140015f4c
call fcn.140014e34
mov rcx, rax
lea r8, [rsp + 0x68]
mov rdx, rbx
call fcn.140014fa8
mov edi, eax
test eax, eax
jne 0x1400160c9
cmp qword [rsp + 0x78], rsi
je 0x1400160c9
call fcn.140014e34
mov rcx, rax
mov r8, rbx
lea rdx, [rbp - 0x70]
call fcn.140014f00
nop
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1400052c0
nop
cmp qword [rbp - 0x58], 0x10
jb 0x140015f7f
mov rcx, qword [rbp - 0x70]
call fcn.1400233e4
mov rax, qword [0x14003a8b0]
mov qword [rbp - 0x18], rax
mov eax, dword [0x14003a8b8]
mov dword [rbp - 0x10], eax
movzx eax, word [0x14003a8bc]
mov word [rbp - 0xc], ax
mov ecx, 0xc
mov al, byte [rbp + rcx - 0x19]
xor byte [rbp + rcx - 0x18], al
dec rcx
test rcx, rcx
jg 0x140015fa3
xor byte [rbp - 0x18], 0x9a
movabs rax, 0x46661471036207
mov qword [rbp - 0x20], rax
mov ecx, 6
mov al, byte [rbp + rcx - 0x21]
xor byte [rbp + rcx - 0x20], al
dec rcx
test rcx, rcx
jg 0x140015fca
xor byte [rbp - 0x20], 0x45
mov qword [rbp - 0x30], 0xf
mov qword [rbp - 0x38], rsi
mov byte [rbp - 0x48], sil
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp - 0x18]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x48]
call fcn.140002348
nop
lea r8, [rsp + 0x68]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.14000b0d0
mov rdi, rax
lea rdx, [rbp - 0x48]
mov rcx, r14
call fcn.14000a560
mov rcx, rax
mov rdx, rdi
call fcn.1400052c0
nop
cmp qword [rbp - 0x58], 0x10
jb 0x14001604c
mov rcx, qword [rbp - 0x70]
call fcn.1400233e4
mov qword [rbp - 0x58], 0xf
mov qword [rbp - 0x60], rsi
mov byte [rbp - 0x70], sil
cmp qword [rbp - 0x30], 0x10
jb 0x14001606c
mov rcx, qword [rbp - 0x48]
call fcn.1400233e4
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
mov r9, qword [rsp + 0x40]
mov r8, r13
mov rdx, qword [rsp + 0x48]
mov rcx, r15
call fcn.14001decc
test eax, eax
je 0x1400160e6
mov eax, dword [r12]
cmp eax, 0x191
je 0x1400160ce
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov ecx, 1
cmp eax, 0x1ad
jne 0x1400160e8
jmp 0x140015e3d
jmp 0x140015d28
cmp qword [rbp - 0x80], 0x10
jb 0x1400160df
mov rcx, qword [rsp + 0x68]
call fcn.1400233e4
mov eax, 4
jmp 0x140016113
jmp 0x1400160fd
cmp qword [rbp - 0x80], 0x10
jb 0x1400160f9
mov rcx, qword [rsp + 0x68]
call fcn.1400233e4
xor eax, eax
jmp 0x140016113
cmp qword [rbp - 0x80], 0x10
jb 0x14001610e
mov rcx, qword [rsp + 0x68]
call fcn.1400233e4
mov eax, 2
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140022ee0
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret