Function at 0x14037ba90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov esi, r8d
movabs rax, 0xcdefa4c93ec99f49
add rax, qword [0x140589e80]
mov rbx, rdx
cmp qword [rdx + 0x18], rax
jbe 0x14037bacd
mov rbx, qword [rdx]
mov rdi, qword [rcx + 0x10]
lea rax, [rbp - 0x20]
mov r12, qword [rdx + 0x10]
mov rcx, qword [0x140589828]
movsxd rdx, dword [rcx]
add rdx, rcx
movabs r14, 0xed4859bebf6bb645
add r14, rdx
nop word cs:[rax + rax]
mov ecx, dword [0x1405a9d58]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x14037bb4f
nop word cs:[rax + rax]
mov ecx, dword [0x1405a9d58]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140589e78]
mov r8d, ecx
xor r8d, 0x5981ce33
and ecx, 0x5981ce33
lea ecx, [r8 + rcx*2]
cmp edx, ecx
jne 0x14037bb20
jmp 0x14037bb00
mov r15d, dword [0x140481984]
cmp r12, 0x10
jae 0x14037bb6d
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
mov r13d, 0xf
jmp 0x14037bc3c
mov r13, r12
or r13, 0xf
movabs rax, 0x7fffffffffffffff
cmp r13, rax
cmovae r13, rax
cmp byte [0x1405a6dbc], 0
jne 0x14037bbc9
cmp r13, 0xfff
jae 0x14037bbc9
mov rax, qword [0x140589e80]
add rax, r13
movabs rcx, 0xcdefa4c93ec99f3b
add rcx, rax
mov edx, 0x9e4c4c74
mov r8d, 0xad646527
mov r9d, 0xae3a62e
call fcn.1401081c0
mov rcx, rax
jmp 0x14037bc2b
mov rax, qword [0x140589e80]
movabs rcx, 0xcdefa4c93ec99f62
xor rcx, rax
movabs rdx, 0x4defa4c93ec99f62
and rdx, rax
lea rcx, [rcx + rdx*2]
add rcx, r13
mov r9d, dword [0x140589e78]
lea edx, [r9 - 0x831e559]
lea r8d, [r9 + 0x6e6335a]
add r9d, 0x64657461
call fcn.1401081c0
lea rdx, [rax + 0x27]
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
mov qword [rbp - 0x20], rcx
lea r8, [r12 + 1]
mov rdx, rbx
call fcn.140440940
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], r13
lea rax, [0x14045cff8]
mov qword [rbp - 0x28], rax
lea r8, [rbp - 0x28]
mov edx, 0x28
mov rcx, rdi
call fcn.1403f5a30
movabs rax, 0x12b7a641409449bb
add r14, rax
mov rax, qword [rbp - 8]
cmp rax, 0x10
setae cl
or cl, byte [0x1405a6d98]
mov edx, dword [0x1405a9d58]
nop word cs:[rax + rax]
mov edx, dword [0x140589824]
mov r8d, dword [0x1405a9d5c]
cmp r8d, 0x26
jg 0x14037bc90
lea r8d, [rdx + 1]
mov dword [0x140589824], r8d
xor edx, r8d
not edx
test r8d, edx
jne 0x14037bcc1
test r15d, r15d
jg 0x14037bdd5
xor r9d, r9d
test cl, 1
je 0x14037bdc1
mov r10, qword [0x1404819a0]
and r8d, edx
mov rcx, qword [0x140589e80]
cmp r8d, 1
adc rcx, 0xffffffffffffffff
movabs rdx, 0x32105b36c13660c5
sub rdx, rcx
sub r10, r9
and r10, rdx
sete r8b
setne cl
movzx edx, byte [0x1405a6dbc]
mov r9d, edx
not r9b
and r9b, r8b
xor cl, dl
or cl, r9b
mov r8d, dword [0x1405a9d5c]
cmp r8d, 0x11
xor cl, 1
test r10, r10
sete r8b
setne r9b
xor r8b, r9b
and r8b, dl
xor r8b, r9b
mov edx, dword [0x1405a9d5c]
cmp edx, 0x50
jl 0x14037bd57
mov dword [0x1405a9d58], 1
mov edx, ecx
and dl, 1
mov byte [0x1405a6dbc], dl
or cl, r8b
and cl, 1
mov byte [0x1405a6dbc], cl
mov rcx, qword [rbp - 0x20]
lea rdx, [rax + 1]
cmp rdx, 0xfff
jbe 0x14037bd9f
mov r8, qword [rcx - 8]
sub rcx, qword [0x140589e80]
sub rcx, r8
movabs rdx, 0x32105b36c13660be
add rdx, rcx
cmp rdx, 0x20
jae 0x14037be00
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov eax, dword [0x140589e78]
lea r8d, [rax + 0x6e6335a]
lea r9d, [rax + 0x3c54908c]
add eax, 0x38794d02
mov dword [rsp + 0x20], eax
call fcn.1400ad790
mov dword [rdi + 0x20], esi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r10d, 8
xor r9d, r9d
nop
lea r11d, [r10 - 8]
movsxd r11, r11d
mov ebx, dword [0x1405a9d58]
xor r9, qword [r14 + r11]
cmp r10d, r15d
jge 0x14037bcc4
add r10d, 8
jmp 0x14037bde0
call fcn.1403f89dc
int3