Function at 0x140059010
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rbx, r9
movzx r14d, r8b
mov r13d, edx
mov r12, rcx
mov r15, qword [rbp + 0x60]
sub r15, r9
call fcn.14003b988
mov r10, rax
movabs rax, 0xd6bf94d5e57a42bd
imul r10
add rdx, r10
sar rdx, 0x17
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, edx
shr eax, 0x18
mov byte [rbp + 0x48], al
mov eax, edx
shr eax, 0x10
mov byte [rbp + 0x49], al
mov eax, edx
shr eax, 8
mov byte [rbp + 0x4a], al
mov byte [rbp + 0x4b], dl
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
xor esi, esi
mov qword [rbp - 0x10], rsi
mov byte [rbp + 0x50], sil
movzx eax, byte [r12 + 0x20]
nop
neg al
sbb rdx, rdx
and edx, 4
mov eax, esi
mov ecx, 2
cmp r15, 0x7e
cmovae eax, ecx
add rdx, rax
mov eax, 8
cmp r15, 0x10000
cmovae ecx, eax
add rdx, rcx
lea r8, [rbp + 0x50]
lea rcx, [rbp - 0x20]
call fcn.14005a540
mov rcx, qword [rbp - 0x20]
mov byte [rcx], r13b
movzx eax, r13b
test r14b, r14b
je 0x1400590dd
or al, 0x80
mov byte [rcx], al
cmp byte [rbp + 0x68], 0
je 0x1400590ec
test r13d, r13d
je 0x1400590ec
or al, 0x40
mov byte [rcx], al
cmp r15, 0x7e
jae 0x140059141
movzx eax, byte [r12 + 0x20]
nop
mov rcx, qword [rbp - 0x20]
neg al
sbb al, al
and al, 0x80
or al, r15b
mov byte [rcx + 1], al
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x140059239
mov r13, qword [rbp - 0x20]
movzx eax, byte [rbp + 0x48]
mov byte [r13 + 2], al
movzx eax, byte [rbp + 0x49]
mov byte [r13 + 3], al
movzx eax, byte [rbp + 0x4a]
mov byte [r13 + 4], al
movzx eax, byte [rbp + 0x4b]
mov byte [r13 + 5], al
jmp 0x14005923d
mov r8, r15
shr r8, 8
movzx ecx, byte [r12 + 0x20]
nop
mov rdx, qword [rbp - 0x20]
cmp r15, 0x10000
jae 0x1400591b0
mov eax, 0x7e
mov r9d, 0xfe
test cl, cl
cmovne eax, r9d
mov byte [rdx + 1], al
mov byte [rdx + 2], r8b
mov byte [rdx + 3], r15b
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x140059239
mov r13, qword [rbp - 0x20]
movzx eax, byte [rbp + 0x48]
mov byte [r13 + 4], al
movzx eax, byte [rbp + 0x49]
mov byte [r13 + 5], al
movzx eax, byte [rbp + 0x4a]
mov byte [r13 + 6], al
movzx eax, byte [rbp + 0x4b]
mov byte [r13 + 7], al
jmp 0x14005923d
mov eax, 0x7f
mov r9d, 0xff
test cl, cl
cmovne eax, r9d
mov byte [rdx + 1], al
mov rax, r15
shr rax, 0x38
mov byte [rdx + 2], al
mov rax, r15
shr rax, 0x30
mov byte [rdx + 3], al
mov rax, r15
shr rax, 0x28
mov byte [rdx + 4], al
mov rax, r15
shr rax, 0x20
mov byte [rdx + 5], al
mov rax, r15
shr rax, 0x18
mov byte [rdx + 6], al
mov rax, r15
shr rax, 0x10
mov byte [rdx + 7], al
mov byte [rdx + 8], r8b
mov byte [rdx + 9], r15b
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x140059239
mov r13, qword [rbp - 0x20]
movzx eax, byte [rbp + 0x48]
mov byte [r13 + 0xa], al
movzx eax, byte [rbp + 0x49]
mov byte [r13 + 0xb], al
movzx eax, byte [rbp + 0x4a]
mov byte [r13 + 0xc], al
movzx eax, byte [rbp + 0x4b]
mov byte [r13 + 0xd], al
jmp 0x14005923d
mov r13, qword [rbp - 0x20]
lea rcx, [r12 + 0x70]
mov qword [rbp + 0x40], rcx
call fcn.14003c860
test eax, eax
jne 0x14005931c
mov r9, qword [rbp - 0x18]
sub r9, r13
mov rdx, qword [r12 + 0x60]
mov r8, r13
lea rcx, [r12 + 0x58]
call fcn.1400586e0
mov r9, rsi
cmp rbx, qword [rbp + 0x60]
cmovne r9, r15
mov r8, rbx
mov rdx, qword [r12 + 0x60]
lea rcx, [r12 + 0x58]
call fcn.1400588d0
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x1400592be
test r15, r15
je 0x1400592be
nop dword [rax]
mov rax, qword [r12 + 0x60]
sub rax, r15
mov rcx, rsi
and ecx, 3
movzx ecx, byte [rbp + rcx + 0x48]
xor byte [rax + rsi], cl
inc rsi
cmp rsi, r15
jne 0x1400592a0
mov rcx, qword [rbp + 0x40]
call fcn.14003c884
mov rcx, r12
call fcn.14005e2d0
movzx ebx, al
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x20]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400592fe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059316
call fcn.1400b7640
movzx eax, bl
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbx
pop rbp
ret
call fcn.1400c9b5c
nop
mov ecx, eax
call fcn.14003bc48
int3