Function at 0x14006b3c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r13
sub rsp, 0x70
mov rdi, rdx
mov rbx, rcx
mov rdx, qword [rcx + 8]
lea rcx, [rsp + 0x20]
call fcn.14004aea0
mov rax, qword [rbx]
mov r13, qword [rax]
movsxd rax, dword [rax + 0x10]
shl rax, 4
add rax, r13
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0xa8], rax
cmp r13, rax
je 0x14006bfe3
mov r9d, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x28]
mov ebx, dword [rsp + 0x20]
mov qword [rsp + 0x98], rbp
mov ebp, dword [rsp + 0x2c]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r15
mov r15d, dword [rsp + 0x34]
nop word [rax + rax]
mov ecx, dword [r13]
mov edx, dword [r13 + 8]
mov esi, dword [r13 + 4]
add edx, ecx
mov r13d, dword [r13 + 0xc]
add r13d, esi
mov dword [rsp + 0x90], r13d
cmp dword [rsp + 0x38], esi
jle 0x14006bfa5
cmp r9d, r13d
jge 0x14006bfa5
cmp dword [rsp + 0x3c], ecx
jle 0x14006bfa5
cmp r15d, edx
jge 0x14006bfa5
mov r11d, dword [rsp + 0x4c]
mov eax, r8d
mov r10d, dword [rsp + 0x44]
sub eax, ebx
cmp eax, 1
jne 0x14006b7ba
lea eax, [r11 + r10]
test eax, eax
jne 0x14006b7ba
mov r11d, dword [rsp + 0x40]
test r11d, r11d
je 0x14006b5b0
cmp r9d, esi
jl 0x14006b5b0
mov r8, qword [rdi]
mov ecx, 0x100
mov eax, dword [r8 + 0xc]
imul eax, r9d
movsxd rdx, eax
add rdx, qword [r8]
mov qword [rdi + 8], rdx
mov eax, dword [r8 + 0x10]
imul eax, ebx
movsxd r10, eax
add r10, rdx
mov edx, dword [rdi + 0x10]
mov r9d, edx
and edx, 0xff00ff
imul edx, r11d
shr r9d, 8
and r9d, 0xff00ff
imul r9d, r11d
shr edx, 8
and edx, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r10]
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
imul eax, ecx
imul r8d, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr r8d, 8
add r9d, eax
and r8d, 0xff00ff
add r8d, edx
mov eax, r9d
shr eax, 8
mov edx, 0x100
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
or ecx, r8d
shr eax, 8
xor edx, ecx
shl r9d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
cmp r13d, ebp
mov r11d, ebp
cmovl r11d, r13d
cmp esi, dword [rsp + 0x24]
cmovl esi, dword [rsp + 0x24]
cmp esi, r11d
jge 0x14006b6b0
nop dword [rax]
mov r8, qword [rdi]
mov ecx, 0x100
mov eax, dword [r8 + 0xc]
imul eax, esi
inc esi
movsxd rdx, eax
add rdx, qword [r8]
mov qword [rdi + 8], rdx
mov eax, dword [r8 + 0x10]
imul eax, ebx
movsxd r10, eax
add r10, rdx
mov edx, dword [rdi + 0x10]
mov r9d, edx
and edx, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r10]
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
imul eax, ecx
imul r8d, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr r8d, 8
add r9d, eax
and r8d, 0xff00ff
add r8d, edx
mov eax, r9d
shr eax, 8
mov edx, 0x100
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
or ecx, r8d
shr eax, 8
xor edx, ecx
shl r9d, 8
and eax, 0xff00ff
and edx, 0xff00ff
mov ecx, 0x100
sub ecx, eax
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
cmp esi, r11d
jl 0x14006b5d0
mov esi, dword [rsp + 0x48]
test esi, esi
je 0x14006bf9b
cmp ebp, r13d
jge 0x14006bf9b
mov r8, qword [rdi]
mov ecx, 0x100
mov eax, dword [r8 + 0xc]
imul eax, ebp
movsxd rdx, eax
add rdx, qword [r8]
mov qword [rdi + 8], rdx
mov eax, dword [r8 + 0x10]
mov r8d, dword [rdi + 0x10]
mov r9d, r8d
imul eax, ebx
and r8d, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
imul r8d, esi
imul r9d, esi
movsxd r10, eax
add r10, rdx
shr r8d, 8
shr r9d, 8
and r8d, 0xff00ff
and r9d, 0xff00ff
mov edx, dword [r10]
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ecx
and edx, 0xff00ff
imul edx, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr edx, 8
add r8d, eax
and edx, 0xff00ff
add r9d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
or ecx, r8d
shr eax, 8
xor edx, ecx
shl r9d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
jmp 0x14006bf9b
cmp ebx, ecx
mov r14d, ebx
mov ebx, r8d
cmovl r14d, ecx
cmp edx, r8d
cmovl ebx, edx
sub ebx, r14d
test r10d, r10d
je 0x14006b7de
cmp r15d, ecx
jl 0x14006b7de
mov r15b, 1
jmp 0x14006b7e1
xor r15b, r15b
test r11d, r11d
je 0x14006b7f0
cmp r8d, edx
jge 0x14006b7f0
mov r12b, 1
jmp 0x14006b7f3
xor r12b, r12b
mov r11d, dword [rsp + 0x40]
test r11d, r11d
je 0x14006ba93
cmp r9d, esi
jl 0x14006ba93
mov rdx, qword [rdi]
mov eax, dword [rdx + 0xc]
imul eax, r9d
movsxd r9, eax
add r9, qword [rdx]
mov qword [rdi + 8], r9
test r15b, r15b
je 0x14006b914
mov eax, dword [rdx + 0x10]
mov r8d, r10d
imul eax, dword [rsp + 0x34]
mov ecx, 0x100
imul r8d, r11d
movsxd r11, eax
add r11, r9
sar r8d, 8
mov r9d, dword [rdi + 0x10]
mov r10d, r9d
shr r10d, 8
and r9d, 0xff00ff
and r10d, 0xff00ff
imul r9d, r8d
mov edx, dword [r11]
imul r10d, r8d
shr r9d, 8
and r9d, 0xff00ff
shr r10d, 8
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ecx
and edx, 0xff00ff
imul edx, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr edx, 8
add r9d, eax
and edx, 0xff00ff
add r10d, edx
mov edx, 0x100
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
or ecx, r9d
shr eax, 8
xor edx, ecx
shl r10d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
mov r11d, dword [rsp + 0x40]
test ebx, ebx
jle 0x14006b999
mov eax, dword [rdi + 0x10]
lea edx, [r11 + 1]
mov ecx, eax
mov r8d, eax
shr eax, 8
and r8d, 0xff00ff
imul r8d, edx
and eax, 0xff00ff
imul eax, edx
shr ecx, 8
and ecx, 0xffff00ff
imul ecx, edx
shr r8d, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, eax
mov rax, qword [rdi]
movsxd rcx, dword [rax + 0x10]
mov eax, ecx
imul eax, r14d
movsxd rdx, eax
mov eax, r8d
add rdx, qword [rdi + 8]
shr eax, 0x18
cmp al, 0xff
jb 0x14006b98e
mov eax, ebx
nop dword [rax + rax]
mov dword [rdx], r8d
dec eax
add rdx, rcx
test eax, eax
jg 0x14006b980
jmp 0x14006b999
mov r9d, ebx
mov rcx, rdi
call fcn.140074c10
test r12b, r12b
je 0x14006ba93
mov edx, dword [rdi + 0x10]
mov r10d, edx
mov rax, qword [rdi]
and edx, 0xff00ff
mov r8d, dword [rsp + 0x4c]
imul r8d, dword [rsp + 0x40]
shr r10d, 8
mov ecx, dword [rax + 0x10]
and r10d, 0xff00ff
imul ecx, dword [rsp + 0x28]
sar r8d, 8
imul edx, r8d
imul r10d, r8d
movsxd r11, ecx
mov ecx, 0x100
add r11, qword [rdi + 8]
shr edx, 8
and edx, 0xff00ff
shr r10d, 8
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r11]
mov r9d, eax
shr eax, 8
and eax, 0xff00ff
and r9d, 0xff00ff
imul eax, ecx
imul r9d, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr r9d, 8
add r10d, eax
and r9d, 0xff00ff
add r9d, edx
mov eax, r10d
shr eax, 8
mov edx, 0x100
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
or ecx, r9d
shr eax, 8
xor edx, ecx
shl r10d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
cmp r13d, dword [rsp + 0x2c]
cmovl ebp, r13d
cmp esi, dword [rsp + 0x24]
cmovl esi, dword [rsp + 0x24]
cmp esi, ebp
jge 0x14006bcfc
mov r13d, dword [rsp + 0x44]
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rdi]
mov eax, dword [rdx + 0xc]
imul eax, esi
movsxd r8, eax
add r8, qword [rdx]
mov qword [rdi + 8], r8
test r15b, r15b
je 0x14006bbb9
mov eax, dword [rdx + 0x10]
mov ecx, 0x100
imul eax, dword [rsp + 0x34]
movsxd r10, eax
add r10, r8
mov r8d, dword [rdi + 0x10]
mov r9d, r8d
and r8d, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
imul r8d, r13d
mov edx, dword [r10]
imul r9d, r13d
shr r8d, 8
and r8d, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ecx
and edx, 0xff00ff
imul edx, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr edx, 8
add r8d, eax
and edx, 0xff00ff
add r9d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
or ecx, r8d
shr eax, 8
xor edx, ecx
shl r9d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
test ebx, ebx
jle 0x14006bbfc
mov rax, qword [rdi]
movsxd r8, dword [rax + 0x10]
mov eax, r8d
imul eax, r14d
movsxd rdx, eax
add rdx, qword [rdi + 8]
cmp byte [rdi + 0x13], 0xff
jb 0x14006bbed
mov eax, dword [rdi + 0x10]
mov ecx, ebx
nop dword [rax]
mov dword [rdx], eax
dec ecx
add rdx, r8
test ecx, ecx
jg 0x14006bbe0
jmp 0x14006bbfc
mov r8d, dword [rdi + 0x10]
mov r9d, ebx
mov rcx, rdi
call fcn.140074c10
test r12b, r12b
je 0x14006bcea
mov r8d, dword [rdi + 0x10]
mov r9d, r8d
mov rax, qword [rdi]
and r8d, 0xff00ff
imul r8d, dword [rsp + 0x4c]
shr r9d, 8
and r9d, 0xff00ff
mov ecx, dword [rax + 0x10]
imul ecx, dword [rsp + 0x28]
imul r9d, dword [rsp + 0x4c]
shr r8d, 8
and r8d, 0xff00ff
movsxd r10, ecx
mov ecx, 0x100
add r10, qword [rdi + 8]
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
mov edx, dword [r10]
shr eax, 0x10
sub ecx, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ecx
and edx, 0xff00ff
imul edx, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr edx, 8
add r8d, eax
and edx, 0xff00ff
add r9d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
or ecx, r8d
shr eax, 8
xor edx, ecx
shl r9d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
inc esi
cmp esi, ebp
jl 0x14006bac0
mov r13d, dword [rsp + 0x90]
mov esi, dword [rsp + 0x48]
mov ebp, dword [rsp + 0x2c]
test esi, esi
je 0x14006bf92
cmp ebp, r13d
jge 0x14006bf92
mov rdx, qword [rdi]
mov eax, dword [rdx + 0xc]
imul eax, ebp
movsxd r9, eax
add r9, qword [rdx]
test r15b, r15b
mov qword [rdi + 8], r9
mov r15d, dword [rsp + 0x34]
je 0x14006be20
mov eax, dword [rdx + 0x10]
mov ecx, 0x100
mov edx, dword [rdi + 0x10]
mov r10d, edx
mov r8d, dword [rsp + 0x44]
and edx, 0xff00ff
imul eax, r15d
shr r10d, 8
and r10d, 0xff00ff
imul r8d, esi
movsxd r11, eax
add r11, r9
sar r8d, 8
imul edx, r8d
imul r10d, r8d
shr edx, 8
and edx, 0xff00ff
shr r10d, 8
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r11]
mov r9d, eax
shr eax, 8
and eax, 0xff00ff
and r9d, 0xff00ff
imul eax, ecx
imul r9d, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr r9d, 8
add r10d, eax
and r9d, 0xff00ff
add r9d, edx
mov eax, r10d
shr eax, 8
mov edx, 0x100
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
or ecx, r9d
shr eax, 8
xor edx, ecx
shl r10d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
test ebx, ebx
jle 0x14006be99
mov eax, dword [rdi + 0x10]
lea edx, [rsi + 1]
mov ecx, eax
mov r8d, eax
shr eax, 8
and r8d, 0xff00ff
imul r8d, edx
and eax, 0xff00ff
imul eax, edx
shr ecx, 8
and ecx, 0xffff00ff
imul ecx, edx
shr r8d, 8
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, eax
mov rax, qword [rdi]
movsxd rcx, dword [rax + 0x10]
mov eax, ecx
imul eax, r14d
movsxd rdx, eax
mov eax, r8d
add rdx, qword [rdi + 8]
shr eax, 0x18
cmp al, 0xff
jb 0x14006be8e
mov dword [rdx], r8d
dec ebx
add rdx, rcx
test ebx, ebx
jg 0x14006be80
jmp 0x14006be99
mov r9d, ebx
mov rcx, rdi
call fcn.140074c10
test r12b, r12b
je 0x14006bf97
mov r9d, dword [rdi + 0x10]
mov r10d, r9d
mov rax, qword [rdi]
and r9d, 0xff00ff
mov r8d, dword [rsp + 0x4c]
shr r10d, 8
and r10d, 0xff00ff
imul r8d, esi
mov ecx, dword [rax + 0x10]
imul ecx, dword [rsp + 0x28]
sar r8d, 8
imul r10d, r8d
movsxd r11, ecx
mov ecx, 0x100
add r11, qword [rdi + 8]
imul r9d, r8d
shr r10d, 8
mov edx, dword [r11]
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
shr r9d, 8
mov eax, edx
and r9d, 0xff00ff
and eax, 0xff00ff
shr edx, 8
imul eax, ecx
and edx, 0xff00ff
imul edx, ecx
mov ecx, 0x100
shr eax, 8
and eax, 0xff00ff
shr edx, 8
add r9d, eax
and edx, 0xff00ff
add r10d, edx
mov edx, 0x100
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
or ecx, r9d
shr eax, 8
xor edx, ecx
shl r10d, 8
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
jmp 0x14006bf97
mov r15d, dword [rsp + 0x34]
mov ebx, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x30]
mov r13, qword [rsp + 0xa0]
add r13, 0x10
mov qword [rsp + 0xa0], r13
cmp r13, qword [rsp + 0xa8]
jne 0x14006b440
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x98]
add rsp, 0x70
pop r13
pop rdi
pop rbx
ret