Function at 0x140203780
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r12, qword [rcx + 0x178]
mov r13, qword [rcx + 0x180]
mov rbx, rcx
mov qword [rsp + 0xa0], r8
mov r8, qword [rcx + 0x160]
mov r10, rdx
mov rcx, qword [rcx + 0x168]
mov rdx, r9
mov rax, r9
movabs r9, 0xfffffffe0
mov qword [rsp + 0x20], rcx
xor ecx, ecx
add rdx, qword [rbx + 0x38]
setb cl
cmp r9, rdx
jb 0x140203be0
test rcx, rcx
jne 0x140203be0
mov qword [rbx + 0x38], rdx
mov edx, dword [rbx + 0x174]
mov r9d, dword [rbx + 0x170]
test edx, edx
je 0x140203b00
test rax, rax
je 0x140203bb8
movdqu xmm1, xmmword [rbx + 0x40]
pxor xmm0, xmm0
mov edx, 1
mov esi, dword [rbx + 0xc]
mov dword [rbx + 0x174], 0
mov edi, 0x10
movups xmmword [rbx + 0x188], xmm1
movups xmmword [rbx + 0x40], xmm0
bswap esi
cmp rax, 0xf
jbe 0x14020387e
test dl, dl
je 0x14020387e
mov qword [rsp + 0xa8], rax
mov r9d, edi
mov rax, qword [rsp + 0x20]
lea rdx, [rbx + 0x60]
mov qword [rsp + 0x98], r10
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x188]
xor edi, edi
call rax
mov r10, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa8]
cmp rax, 0xbff
jbe 0x14020398b
lea rcx, [rbx + 0x60]
mov dword [rsp + 0x3c], edi
lea ebp, [rsi + 0xc0]
mov rsi, rbx
mov qword [rsp + 0x28], rcx
lea rcx, [rbx + 0x40]
lea r14, [rbx + 0x10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x98], r10
mov qword [rsp + 0xa8], rax
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov r9d, 0xc00
lea r15d, [rbp - 0xc0]
mov r8, qword [rsp + 0x98]
mov rax, qword [rsp + 0x20]
call rax
mov rdi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
nop dword [rax + rax]
add r15d, 1
mov rdx, r14
mov r8, r13
mov rcx, rsi
call r12
mov edx, r15d
add rbx, 0x10
add rdi, 0x10
bswap edx
mov dword [rsi + 0xc], edx
mov rdx, qword [rdi - 0x10]
xor rdx, qword [rsi + 0x10]
mov qword [rbx - 0x10], rdx
mov rdx, qword [rdi - 8]
xor rdx, qword [rsi + 0x18]
mov qword [rbx - 8], rdx
cmp ebp, r15d
jne 0x1402038f8
add qword [rsp + 0xa0], 0xc00
add ebp, 0xc0
add qword [rsp + 0x98], 0xc00
sub qword [rsp + 0xa8], 0xc00
cmp qword [rsp + 0xa8], 0xbff
ja 0x1402038bd
mov edi, dword [rsp + 0x3c]
mov r10, qword [rsp + 0x98]
mov rbx, rsi
mov esi, r15d
mov rax, qword [rsp + 0xa8]
mov r9, rax
and r9, 0xfffffffffffffff0
je 0x140203a79
lea rdx, [rbx + 0x60]
mov r8, r10
lea rcx, [rbx + 0x40]
mov r15d, esi
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x98], r10
call rax
mov rbp, qword [rsp + 0xa0]
mov dword [rsp + 0x20], esi
lea rdx, [rbx + 0x10]
mov rax, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x98]
lea r11, [rbp + rax]
mov r14, r10
mov rsi, r11
add r15d, 1
mov qword [rsp + 0x28], rdx
mov rcx, rbx
mov r8, r13
mov qword [rsp + 0xa8], rax
add rbp, 0x10
add r14, 0x10
mov qword [rsp + 0x98], r10
call r12
mov ecx, r15d
mov rdx, qword [rsp + 0x28]
mov r10, qword [rsp + 0x98]
bswap ecx
mov dword [rbx + 0xc], ecx
mov rcx, qword [r14 - 0x10]
xor rcx, qword [rbx + 0x10]
mov rax, qword [rsp + 0xa8]
mov qword [rbp - 0x10], rcx
mov rcx, qword [r14 - 8]
xor rcx, qword [rbx + 0x18]
mov qword [rbp - 8], rcx
mov rcx, rsi
sub rcx, rbp
cmp rcx, 0xf
ja 0x1402039e8
lea rdx, [rax - 0x10]
mov esi, dword [rsp + 0x20]
and eax, 0xf
shr rdx, 4
lea esi, [rsi + rdx + 1]
add rdx, 1
shl rdx, 4
add qword [rsp + 0xa0], rdx
add r10, rdx
test rax, rax
mov qword [rsp + 0x98], r10
mov qword [rsp + 0xa8], rax
je 0x140203ae7
lea rdx, [rbx + 0x10]
mov r8, r13
mov rcx, rbx
call r12
mov rax, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x98]
lea edx, [rsi + 1]
bswap edx
lea r8, [rax - 1]
mov dword [rbx + 0xc], edx
xor edx, edx
movzx ecx, byte [r10 + rdx]
lea r9d, [rdi + rdx]
mov rsi, qword [rsp + 0xa0]
mov byte [rbx + r9 + 0x188], cl
xor cl, byte [rbx + rdx + 0x10]
mov byte [rsi + rdx], cl
add rdx, 1
cmp rdx, rax
jne 0x140203ab9
lea edi, [rdi + r8 + 1]
mov dword [rbx + 0x170], edi
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, r9d
mov esi, dword [rbx + 0xc]
bswap esi
and edi, 0xf
je 0x140203bd2
test rax, rax
je 0x140203bac
mov r8, qword [rsp + 0xa0]
jmp 0x140203b2d
test rax, rax
je 0x140203ba0
movzx edx, byte [r10]
mov ecx, r9d
add r8, 1
add r10, 1
add r9d, 1
sub rax, 1
mov byte [rbx + rcx + 0x188], dl
mov ecx, edi
add edi, 1
xor dl, byte [rbx + rcx + 0x10]
mov byte [r8 - 1], dl
and edi, 0xf
jne 0x140203b28
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xa8], rax
lea rdx, [rbx + 0x60]
mov rax, qword [rsp + 0x20]
lea rcx, [rbx + 0x40]
mov qword [rsp + 0x98], r10
lea r8, [rbx + 0x188]
call rax
mov r10, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa8]
jmp 0x14020387e
mov qword [rsp + 0xa0], r8
test edi, edi
je 0x140203b65
mov dword [rbx + 0x170], r9d
jmp 0x140203aed
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r8
mov dword [rbx + 0x174], 0
jmp 0x140203aed
test r9d, r9d
mov edi, r9d
setne dl
jmp 0x140203839
mov eax, 0xffffffff
jmp 0x140203aef