Function at 0x14004bc00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rdi
push r13
push r14
sub rsp, 0x38
mov rax, qword [rdx + 0x18]
mov rbx, r8
mov r13, rdx
mov rdi, rcx
test rax, rax
je 0x14004bc46
mov r14, qword [rdx + 0x20]
test r14, r14
je 0x14004bc46
lea rax, [rax + r14*4]
add rax, 0xfffffffffffffffc
cmp dword [rax], 0
jne 0x14004bc49
sub rax, 4
sub r14, 1
jne 0x14004bc37
xor r14d, r14d
mov rax, qword [r8 + 0x18]
mov qword [rsp + 0x28], rsi
test rax, rax
je 0x14004bc77
mov rsi, qword [r8 + 0x20]
test rsi, rsi
je 0x14004bc77
lea rax, [rax + rsi*4]
add rax, 0xfffffffffffffffc
cmp dword [rax], 0
jne 0x14004bc79
sub rax, 4
sub rsi, 1
jne 0x14004bc68
xor esi, esi
test r14, r14
jne 0x14004bcef
test rsi, rsi
je 0x14004bcc0
mov eax, dword [r8 + 0x28]
mov rdx, rbx
mov dword [rcx + 0x28], eax
call fcn.14004c170
test al, al
je 0x14004bcae
mov eax, dword [rbx + 0x28]
mov dword [rdi + 0x28], eax
mov al, 1
mov rsi, qword [rsp + 0x28]
add rsp, 0x38
pop r14
pop r13
pop rdi
pop rbx
ret
xor al, al
mov rsi, qword [rsp + 0x28]
add rsp, 0x38
pop r14
pop r13
pop rdi
pop rbx
ret
mov dword [rcx + 0x28], 1
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x14004bcdd
mov rdx, qword [rdi + 0x20]
shl rdx, 2
call fcn.14003f5e0
mov al, 1
mov rsi, qword [rsp + 0x28]
add rsp, 0x38
pop r14
pop r13
pop rdi
pop rbx
ret
test rsi, rsi
jne 0x14004bd1c
mov eax, dword [rdx + 0x28]
mov dword [rcx + 0x28], eax
call fcn.14004c170
test al, al
je 0x14004bcae
mov eax, dword [r13 + 0x28]
mov dword [rdi + 0x28], eax
mov al, 1
mov rsi, qword [rsp + 0x28]
add rsp, 0x38
pop r14
pop r13
pop rdi
pop rbx
ret
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x20], r15
cmp r13, rdi
jne 0x14004bd30
mov r15, r14
jmp 0x14004bd42
cmp rbx, rdi
jne 0x14004bd3a
mov r15, rsi
jmp 0x14004bd42
call fcn.14004ce00
mov r15, rax
cmp r14, rsi
mov rbp, rsi
mov rcx, rdi
cmovbe rbx, r13
cmovbe rbp, r14
cmovbe r13, qword [rsp + 0x70]
mov qword [rsp + 0x78], rbx
mov rbx, r14
cmovbe rbx, rsi
mov rdx, rbx
call fcn.14004cea0
test al, al
je 0x14004bf62
xor r8d, r8d
test rbp, rbp
je 0x14004beb0
cmp rbp, 0x10
jb 0x14004be84
mov rcx, qword [rdi + 0x18]
lea r14, [r13 + 0x18]
mov r10, qword [r14]
lea rsi, [rdi + 0x18]
lea rax, [rbp - 1]
lea rdx, [rcx - 4]
lea rax, [r10 + rax*4]
lea rdx, [rdx + rbp*4]
cmp rcx, rax
ja 0x14004bdb8
cmp rdx, r10
jae 0x14004be84
mov r9, qword [rsp + 0x78]
mov r11, qword [r9 + 0x18]
lea rax, [r11 - 4]
lea rax, [rax + rbp*4]
cmp rcx, rax
ja 0x14004bdd7
cmp rdx, r11
jae 0x14004be90
cmp rcx, rsi
ja 0x14004bde5
cmp rdx, rsi
jae 0x14004be90
cmp rcx, r14
ja 0x14004bdf3
cmp rdx, r14
jae 0x14004be90
lea rax, [r9 + 0x18]
cmp rcx, rax
ja 0x14004be05
cmp rdx, rax
jae 0x14004be90
mov rdx, rbp
and rdx, 0xfffffffffffffff0
mov eax, 0x20
movdqu xmm0, xmmword [rax + r11 - 0x20]
add r8, 0x10
movdqu xmm1, xmmword [rax + r10 - 0x20]
movdqu xmm2, xmmword [rax + r10]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax + r11 - 0x50]
movdqu xmmword [rax + rcx - 0x60], xmm1
movdqu xmm1, xmmword [rax + r10 - 0x50]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax + r11 - 0x40]
movdqu xmmword [rax + rcx - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax + r11 - 0x30]
movdqu xmm1, xmmword [rax + r10 - 0x30]
movdqu xmmword [rax + rcx - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmmword [rax + rcx - 0x30], xmm1
cmp r8, rdx
jb 0x14004be11
cmp r8, rbp
jae 0x14004beb0
jmp 0x14004be90
mov r9, qword [rsp + 0x78]
nop dword [rax]
mov rax, qword [r9 + 0x18]
mov rcx, qword [r13 + 0x18]
mov edx, dword [rcx + r8*4]
xor edx, dword [rax + r8*4]
mov rax, qword [rdi + 0x18]
mov dword [rax + r8*4], edx
inc r8
cmp r8, rbp
jb 0x14004be90
cmp rbp, rbx
jae 0x14004bed6
nop word [rax + rax]
mov rax, qword [r13 + 0x18]
mov rcx, qword [rdi + 0x18]
mov eax, dword [rax + rbp*4]
mov dword [rcx + rbp*4], eax
inc rbp
cmp rbp, rbx
jb 0x14004bec0
mov rcx, r15
sub rcx, rbx
cmp rbx, r15
jae 0x14004bf53
cmp rcx, 4
jb 0x14004bf40
mov r9, qword [rdi + 0x18]
lea rdx, [rdi + 0x18]
lea rax, [r9 + rbx*4]
lea r8, [r9 - 4]
lea r8, [r8 + r15*4]
cmp rax, rdx
ja 0x14004bf05
cmp r8, rdx
jae 0x14004bf40
and ecx, 3
mov r8, r15
sub r8, rcx
mov rax, rbx
add rbx, 4
cmp rbx, r8
jb 0x14004bf11
sub r8, rax
lea rcx, [r9 + rax*4]
add r8, 3
xor edx, edx
shr r8, 2
shl r8, 4
and r8, 0xfffffffffffffffc
call fcn.14005c570
cmp rbx, r15
jae 0x14004bf53
nop dword [rax]
mov rax, qword [rdi + 0x18]
mov dword [rax + rbx*4], 0
inc rbx
cmp rbx, r15
jb 0x14004bf40
mov rax, qword [rsp + 0x68]
mov eax, dword [rax + 0x28]
mov dword [rdi + 0x28], eax
mov al, 1
jmp 0x14004bf64
xor al, al
mov rbp, qword [rsp + 0x30]
mov r15, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
add rsp, 0x38
pop r14
pop r13
pop rdi
pop rbx
ret