Function at 0x140018f40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, r9
mov r12d, r8d
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x28], rcx
call fcn.140019ca0
test rax, rax
je 0x1400191fa
mov r15, rax
mov eax, edx
mov esi, 0xaaaaaaab
imul rsi, rax
mov rax, rsi
shr rax, 0x23
mov qword [rsp + 0x38], rax
call fcn.140021840
mov rcx, rax
shr rsi, 0x24
movabs r9, 0xa0761d6478bd642f
lea rdx, [rax + r9]
movabs r10, 0xe7037ed1a0b428db
mov rax, rdx
xor rax, r10
mul rdx
mov r14, rdx
xor r14d, eax
imul r14, rsi
cmp esi, r14d
jbe 0x14001900b
mov eax, esi
neg eax
xor edx, edx
div esi
cmp edx, r14d
jbe 0x14001900b
mov r8d, edx
movabs rax, 0x40ec3ac8f17ac85e
add rcx, rax
nop word cs:[rax + rax]
mov rax, rcx
xor rax, r10
mul rcx
mov r14, rdx
xor r14d, eax
imul r14, rsi
add rcx, r9
cmp r8d, r14d
ja 0x140018ff0
shr r14, 0x20
cmp dword [rsp + 0x38], r14d
jbe 0x1400191fa
lea rax, [r14 + r14*2]
lea rbp, [r15 + rax*4]
mov rax, qword [rsp + 0x28]
add rax, 0xfffffffffffffffd
mov qword [rsp + 0x40], rax
mov rax, qword [rdi + 8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x58], rdi
mov rax, qword [rdi + 0x10]
test r12d, r12d
mov qword [rsp + 0x50], rax
je 0x14001910e
lea rax, [rax*8]
mov qword [rsp + 0x60], rax
jmp 0x140019072
add rbp, 0xc
inc r14d
cmp r14d, dword [rsp + 0x38]
je 0x1400191fa
mov edi, dword [rbp]
mov esi, dword [rbp + 4]
mov r12, rdi
add r12, qword [rsp + 0x28]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
nop word [rax + rax]
test rax, rax
je 0x1400190b0
mov rdx, rcx
add rcx, 8
add rax, 0xfffffffffffffff8
cmp edi, dword [rdx]
jne 0x140019090
cmp esi, dword [rdx + 4]
jne 0x140019090
jmp 0x140019060
mov rax, qword [rsp + 0x40]
lea r13, [rax + rsi]
cmp r13, r12
jbe 0x140019060
lea rbx, [r12 + 4]
mov r15, r12
jmp 0x1400190de
inc r15
inc r12
inc rbx
cmp r13, r12
jbe 0x140019060
cmp dword [rbx - 4], 0x58c48348
jne 0x1400190d0
cmp byte [rbx], 0xc3
jne 0x1400190d0
mov edx, dword [rbp + 8]
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x27]
call fcn.140019220
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
test eax, eax
je 0x1400190d0
jmp 0x1400191c3
lea r12, [rax*8]
jmp 0x140019132
add rbp, 0xc
inc r14d
cmp r14d, dword [rsp + 0x38]
je 0x1400191fa
mov edi, dword [rbp]
mov esi, dword [rbp + 4]
mov r13, rdi
add r13, qword [rsp + 0x28]
mov rax, r12
mov rcx, qword [rsp + 0x30]
nop dword [rax + rax]
test rax, rax
je 0x140019170
mov rdx, rcx
add rcx, 8
add rax, 0xfffffffffffffff8
cmp edi, dword [rdx]
jne 0x140019150
cmp esi, dword [rdx + 4]
jne 0x140019150
jmp 0x140019120
mov rax, qword [rsp + 0x40]
lea rbx, [rax + rsi]
cmp rbx, r13
jbe 0x140019120
mov r15, r13
jmp 0x14001919b
inc r15
inc r13
cmp rbx, r13
jbe 0x140019120
movzx eax, word [r15]
cmp eax, 0x23ff
jne 0x140019190
mov edx, dword [rbp + 8]
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x27]
call fcn.140019220
mov rcx, qword [rsp + 0x48]
mov dword [rcx], eax
test eax, eax
je 0x140019190
mov rbx, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
cmp r14, qword [rbx]
jne 0x1400191e3
mov rcx, rbx
call fcn.14001a310
mov rax, qword [rbx + 8]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov dword [rax + r14*8], edi
mov dword [rax + r14*8 + 4], esi
inc r14
mov qword [rbx + 0x10], r14
jmp 0x1400191fd
xor r15d, r15d
mov rax, r15
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret