Function at 0x1403ba8e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov qword [rsp + 0x40], r9
mov r15, r8
mov rsi, rdx
mov rdi, rcx
mov rbx, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xb0]
mov ecx, 1
call fcn.140280fd0
bt eax, 0x19
jb 0x1403ba97f
bt eax, 9
jae 0x1403badda
mov ebp, dword [rbx]
test ebp, ebp
je 0x1403ba961
test r15, r15
je 0x1403ba961
mov eax, ebp
mov al, byte [r14 + rax]
xor al, byte [rdi]
inc rdi
mov byte [rsi], al
inc rsi
lea r12, [r15 - 1]
inc ebp
and ebp, 0xf
je 0x1403ba964
cmp r15, 1
mov r15, r12
jne 0x1403ba93b
jmp 0x1403ba964
mov r12, r15
mov ebx, dword [r13 + 0xc]
bswap ebx
cmp r12, 0x10
jb 0x1403babd6
mov r14d, 0x10000000
jmp 0x1403bab85
mov ebp, dword [rbx]
test ebp, ebp
je 0x1403ba9b0
test r15, r15
je 0x1403ba9b0
mov eax, ebp
mov al, byte [r14 + rax]
xor al, byte [rdi]
inc rdi
mov byte [rsi], al
inc rsi
lea r12, [r15 - 1]
inc ebp
and ebp, 0xf
je 0x1403ba9b3
cmp r15, 1
mov r15, r12
jne 0x1403ba98a
jmp 0x1403ba9b3
mov r12, r15
mov ebx, dword [r13 + 0xc]
bswap ebx
cmp r12, 0x10
jb 0x1403baccd
mov r14d, 0x10000000
jmp 0x1403baa83
movzx eax, byte [r13 + 0xb]
inc eax
mov byte [r13 + 0xb], al
shr eax, 8
movzx ecx, byte [r13 + 0xa]
add ecx, eax
mov byte [r13 + 0xa], cl
shr ecx, 8
movzx eax, byte [r13 + 9]
add eax, ecx
mov byte [r13 + 9], al
shr eax, 8
movzx ecx, byte [r13 + 8]
add ecx, eax
mov byte [r13 + 8], cl
shr ecx, 8
movzx eax, byte [r13 + 7]
add eax, ecx
mov byte [r13 + 7], al
shr eax, 8
movzx ecx, byte [r13 + 6]
add ecx, eax
mov byte [r13 + 6], cl
shr ecx, 8
movzx eax, byte [r13 + 5]
add eax, ecx
mov byte [r13 + 5], al
shr eax, 8
movzx ecx, byte [r13 + 4]
add ecx, eax
mov byte [r13 + 4], cl
shr ecx, 8
movzx eax, byte [r13 + 3]
add eax, ecx
mov byte [r13 + 3], al
shr eax, 8
movzx ecx, byte [r13 + 2]
add ecx, eax
mov byte [r13 + 2], cl
shr ecx, 8
movzx eax, byte [r13 + 1]
add eax, ecx
mov byte [r13 + 1], al
shr eax, 8
add byte [r13], al
shl r15, 4
sub r12, r15
add rsi, r15
add rdi, r15
cmp r12, 0xf
jbe 0x1403baccd
mov r15, r12
shr r15, 4
cmp r15, r14
cmovae r15, r14
add ebx, r15d
cmp r15, rbx
mov eax, 0
cmova rax, rbx
mov ecx, 0
cmova ebx, ecx
sub r15, rax
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, r15
mov r9, qword [rsp + 0x40]
call fcn.140001d60
mov eax, ebx
bswap eax
mov dword [r13 + 0xc], eax
test ebx, ebx
jne 0x1403baa6c
jmp 0x1403ba9ce
movzx eax, byte [r13 + 0xb]
inc eax
mov byte [r13 + 0xb], al
shr eax, 8
movzx ecx, byte [r13 + 0xa]
add ecx, eax
mov byte [r13 + 0xa], cl
shr ecx, 8
movzx eax, byte [r13 + 9]
add eax, ecx
mov byte [r13 + 9], al
shr eax, 8
movzx ecx, byte [r13 + 8]
add ecx, eax
mov byte [r13 + 8], cl
shr ecx, 8
movzx eax, byte [r13 + 7]
add eax, ecx
mov byte [r13 + 7], al
shr eax, 8
movzx ecx, byte [r13 + 6]
add ecx, eax
mov byte [r13 + 6], cl
shr ecx, 8
movzx eax, byte [r13 + 5]
add eax, ecx
mov byte [r13 + 5], al
shr eax, 8
movzx ecx, byte [r13 + 4]
add ecx, eax
mov byte [r13 + 4], cl
shr ecx, 8
movzx eax, byte [r13 + 3]
add eax, ecx
mov byte [r13 + 3], al
shr eax, 8
movzx ecx, byte [r13 + 2]
add ecx, eax
mov byte [r13 + 2], cl
shr ecx, 8
movzx eax, byte [r13 + 1]
add eax, ecx
mov byte [r13 + 1], al
shr eax, 8
add byte [r13], al
shl r15, 4
sub r12, r15
add rsi, r15
add rdi, r15
cmp r12, 0xf
jbe 0x1403babd6
mov r15, r12
shr r15, 4
cmp r15, r14
cmovae r15, r14
add ebx, r15d
cmp r15, rbx
mov eax, 0
cmova rax, rbx
mov ecx, 0
cmova ebx, ecx
sub r15, rax
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, r15
mov r9, qword [rsp + 0x40]
call fcn.140004820
mov eax, ebx
bswap eax
mov dword [r13 + 0xc], eax
test ebx, ebx
jne 0x1403bab72
jmp 0x1403baad4
test r12, r12
je 0x1403badbf
xorps xmm0, xmm0
mov r14, qword [rsp + 0xb8]
movups xmmword [r14], xmm0
mov qword [rsp + 0x20], r13
mov r8d, 1
mov rcx, r14
mov rdx, r14
mov r9, qword [rsp + 0x40]
call fcn.140004820
inc ebx
bswap ebx
mov dword [r13 + 0xc], ebx
jne 0x1403bacb5
movzx eax, byte [r13 + 0xb]
inc eax
mov byte [r13 + 0xb], al
shr eax, 8
movzx ecx, byte [r13 + 0xa]
add ecx, eax
mov byte [r13 + 0xa], cl
shr ecx, 8
movzx eax, byte [r13 + 9]
add eax, ecx
mov byte [r13 + 9], al
shr eax, 8
movzx ecx, byte [r13 + 8]
add ecx, eax
mov byte [r13 + 8], cl
shr ecx, 8
movzx eax, byte [r13 + 7]
add eax, ecx
mov byte [r13 + 7], al
shr eax, 8
movzx ecx, byte [r13 + 6]
add ecx, eax
mov byte [r13 + 6], cl
shr ecx, 8
movzx eax, byte [r13 + 5]
add eax, ecx
mov byte [r13 + 5], al
shr eax, 8
movzx ecx, byte [r13 + 4]
add ecx, eax
mov byte [r13 + 4], cl
shr ecx, 8
movzx eax, byte [r13 + 3]
add eax, ecx
mov byte [r13 + 3], al
shr eax, 8
movzx ecx, byte [r13 + 2]
add ecx, eax
mov byte [r13 + 2], cl
shr ecx, 8
movzx eax, byte [r13 + 1]
add eax, ecx
mov byte [r13 + 1], al
shr eax, 8
add byte [r13], al
mov eax, ebp
mov cl, byte [r14 + rax]
xor cl, byte [rdi + rax]
inc ebp
mov byte [rsi + rax], cl
dec r12
jne 0x1403bacb5
jmp 0x1403badbf
test r12, r12
je 0x1403badbf
xorps xmm0, xmm0
mov r14, qword [rsp + 0xb8]
movups xmmword [r14], xmm0
mov qword [rsp + 0x20], r13
mov r8d, 1
mov rcx, r14
mov rdx, r14
mov r9, qword [rsp + 0x40]
call fcn.140001d60
inc ebx
bswap ebx
mov dword [r13 + 0xc], ebx
jne 0x1403badac
movzx eax, byte [r13 + 0xb]
inc eax
mov byte [r13 + 0xb], al
shr eax, 8
movzx ecx, byte [r13 + 0xa]
add ecx, eax
mov byte [r13 + 0xa], cl
shr ecx, 8
movzx eax, byte [r13 + 9]
add eax, ecx
mov byte [r13 + 9], al
shr eax, 8
movzx ecx, byte [r13 + 8]
add ecx, eax
mov byte [r13 + 8], cl
shr ecx, 8
movzx eax, byte [r13 + 7]
add eax, ecx
mov byte [r13 + 7], al
shr eax, 8
movzx ecx, byte [r13 + 6]
add ecx, eax
mov byte [r13 + 6], cl
shr ecx, 8
movzx eax, byte [r13 + 5]
add eax, ecx
mov byte [r13 + 5], al
shr eax, 8
movzx ecx, byte [r13 + 4]
add ecx, eax
mov byte [r13 + 4], cl
shr ecx, 8
movzx eax, byte [r13 + 3]
add eax, ecx
mov byte [r13 + 3], al
shr eax, 8
movzx ecx, byte [r13 + 2]
add ecx, eax
mov byte [r13 + 2], cl
shr ecx, 8
movzx eax, byte [r13 + 1]
add eax, ecx
mov byte [r13 + 1], al
shr eax, 8
add byte [r13], al
mov eax, ebp
mov cl, byte [r14 + rax]
xor cl, byte [rdi + rax]
inc ebp
mov byte [rsi + rax], cl
dec r12
jne 0x1403badac
mov rax, qword [rsp + 0xc0]
mov dword [rax], ebp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [0x1403ba280]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, r15
mov r9, qword [rsp + 0x40]
call fcn.1403bae10
jmp 0x1403badc9