Function at 0x140090de8
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 [0x1400d1090]
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.14008feec
mov rcx, rax
mov r8, rbx
lea rdx, [rsp + 0x68]
call fcn.14008ffc0
nop
xor r13d, r13d
cmp qword [rsp + 0x78], r13
jne 0x140090eac
call fcn.14008feec
mov rcx, rax
lea r8, [rsp + 0x68]
mov rdx, rbx
call fcn.140090068
mov edi, eax
test eax, eax
jne 0x140090e94
cmp qword [rsp + 0x78], r13
jne 0x140090eac
cmp qword [rbp - 0x80], 0x10
jb 0x140090ea5
mov rcx, qword [rsp + 0x68]
call fcn.14009f17c
mov eax, edi
jmp 0x14009127f
mov rax, qword [0x1400c37e0]
mov qword [rbp - 0x18], rax
mov eax, dword [0x1400c37e8]
mov dword [rbp - 0x10], eax
movzx eax, word [0x1400c37ec]
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 0x140090ed0
xor byte [rbp - 0x18], 0xf4
movabs rax, 0x9fbfcda8dabbde
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 0x140090ef7
xor byte [rbp - 0x20], 0xbc
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.14007df84
nop
lea r8, [rsp + 0x68]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.140086460
mov rdi, rax
lea rdx, [rbp - 0x48]
mov rcx, r14
call fcn.140085e90
mov rcx, rax
mov rdx, rdi
call fcn.140080dac
nop
cmp qword [rbp - 0x58], 0x10
jb 0x140090f79
mov rcx, qword [rbp - 0x70]
call fcn.14009f17c
mov qword [rbp - 0x58], 0xf
mov qword [rbp - 0x60], r13
mov byte [rbp - 0x70], r13b
cmp qword [rbp - 0x30], 0x10
jb 0x140090f99
mov rcx, qword [rbp - 0x48]
call fcn.14009f17c
mov ecx, r13d
mov r13, rsi
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
test ecx, ecx
je 0x140090fc3
mov edx, 0x5a2bc0
mov ecx, 0xb9f5b9c
call fcn.14009de44
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.140099980
test eax, eax
je 0x140091269
mov eax, dword [r12]
cmp eax, 0x191
jne 0x140091224
call fcn.14008feec
mov rcx, rax
mov r8, rbx
lea rdx, [rbp - 0x70]
call fcn.14008ffc0
nop
mov rsi, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009102c
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.1400a7730
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 0x140091089
mov rcx, qword [rbp - 0x70]
call fcn.14009f17c
test dil, dil
je 0x1400910b8
call fcn.14008feec
mov rcx, rax
lea r8, [rsp + 0x68]
mov rdx, rbx
call fcn.140090068
mov edi, eax
test eax, eax
jne 0x140091235
cmp qword [rsp + 0x78], rsi
je 0x140091235
call fcn.14008feec
mov rcx, rax
mov r8, rbx
lea rdx, [rbp - 0x70]
call fcn.14008ffc0
nop
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140080dac
nop
cmp qword [rbp - 0x58], 0x10
jb 0x1400910eb
mov rcx, qword [rbp - 0x70]
call fcn.14009f17c
mov rax, qword [str.n]
mov qword [rbp - 0x18], rax
mov eax, dword [0x1400c37f8]
mov dword [rbp - 0x10], eax
movzx eax, word [0x1400c37fc]
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 0x14009110f
xor byte [rbp - 0x18], 0xbb
movabs rax, 0x2e0e7c196b0a6f
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 0x140091136
xor byte [rbp - 0x20], 0x2d
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.14007df84
nop
lea r8, [rsp + 0x68]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x70]
call fcn.140086460
mov rdi, rax
lea rdx, [rbp - 0x48]
mov rcx, r14
call fcn.140085e90
mov rcx, rax
mov rdx, rdi
call fcn.140080dac
nop
cmp qword [rbp - 0x58], 0x10
jb 0x1400911b8
mov rcx, qword [rbp - 0x70]
call fcn.14009f17c
mov qword [rbp - 0x58], 0xf
mov qword [rbp - 0x60], rsi
mov byte [rbp - 0x70], sil
cmp qword [rbp - 0x30], 0x10
jb 0x1400911d8
mov rcx, qword [rbp - 0x48]
call fcn.14009f17c
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.140099980
test eax, eax
je 0x140091252
mov eax, dword [r12]
cmp eax, 0x191
je 0x14009123a
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov ecx, 1
cmp eax, 0x1ad
jne 0x140091254
jmp 0x140090fa9
jmp 0x140090e94
cmp qword [rbp - 0x80], 0x10
jb 0x14009124b
mov rcx, qword [rsp + 0x68]
call fcn.14009f17c
mov eax, 4
jmp 0x14009127f
jmp 0x140091269
cmp qword [rbp - 0x80], 0x10
jb 0x140091265
mov rcx, qword [rsp + 0x68]
call fcn.14009f17c
xor eax, eax
jmp 0x14009127f
cmp qword [rbp - 0x80], 0x10
jb 0x14009127a
mov rcx, qword [rsp + 0x68]
call fcn.14009f17c
mov eax, 2
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14009e400
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret