Function at 0x140a70e50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rdi, r9
movzx ebx, r8b
mov r13d, edx
mov r12, rcx
mov r15, qword [rbp + 0x60]
sub r15, r9
call fcn.140c48d30
mov r8, rax
movabs rax, 0xd6bf94d5e57a42bd
imul r8
add rdx, r8
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 r14d, r14d
mov qword [rbp - 0x10], r14
mov byte [rbp + 0x50], r14b
movzx eax, byte [r12 + 0x20]
nop
neg al
sbb rdx, rdx
and edx, 4
mov eax, r14d
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.140a72050
mov rcx, qword [rbp - 0x20]
mov byte [rcx], r13b
movzx eax, r13b
test bl, bl
je 0x140a70f1e
or al, 0x80
mov byte [rcx], al
cmp byte [rbp + 0x68], 0
je 0x140a70f2d
test r13d, r13d
je 0x140a70f2d
or al, 0x40
mov byte [rcx], al
movzx eax, byte [r12 + 0x20]
nop
cmp r15, 0x7e
jae 0x140a70f83
neg al
sbb cl, cl
and cl, 0x80
or cl, r15b
mov rax, qword [rbp - 0x20]
mov byte [rax + 1], cl
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x140a71074
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 0x140a71078
mov r8, r15
shr r8, 8
cmp r15, 0x10000
jae 0x140a70fe9
mov ecx, 0x7e
mov edx, 0xfe
test al, al
cmovne ecx, edx
mov rax, qword [rbp - 0x20]
mov byte [rax + 1], cl
mov byte [rax + 2], r8b
mov byte [rax + 3], r15b
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x140a71074
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 0x140a71078
mov ecx, 0x7f
mov edx, 0xff
test al, al
cmovne ecx, edx
mov rdx, qword [rbp - 0x20]
mov byte [rdx + 1], cl
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 0x140a71074
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 0x140a71078
mov r13, qword [rbp - 0x20]
lea rbx, [r12 + 0x70]
mov qword [rbp + 0x40], rbx
mov rcx, rbx
call fcn.140c489fc
test eax, eax
jne 0x140a7116d
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x140a71178
mov r9, qword [rbp - 0x18]
sub r9, r13
mov rdx, qword [r12 + 0x60]
mov r8, r13
lea rcx, [r12 + 0x58]
call fcn.140a708d0
mov r9, r15
cmp rdi, qword [rbp + 0x60]
cmove r9, r14
mov rdx, qword [r12 + 0x60]
mov r8, rdi
lea rcx, [r12 + 0x58]
call fcn.140a70b20
movzx eax, byte [r12 + 0x20]
nop
test al, al
je 0x140a7110f
test r15, r15
je 0x140a7110f
nop word [rax + rax]
mov rax, qword [r12 + 0x60]
sub rax, r15
mov rcx, r14
and ecx, 3
movzx ecx, byte [rbp + rcx + 0x48]
xor byte [rax + r14], cl
inc r14
cmp r14, r15
jne 0x140a710f0
mov rcx, qword [rbp + 0x40]
call fcn.140c48a04
mov rcx, r12
call fcn.140a75c80
movzx ebx, al
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x20]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140a7114f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140a71167
call fcn.140c4bba0
movzx eax, bl
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
call fcn.140c5acfc
nop
mov ecx, 5
call fcn.140c48748
int3
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call fcn.140c48748
int3