Function at 0x14000c980
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r13
push r14
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov rdi, qword [rcx + 0x318]
xor r14d, r14d
mov r13, rcx
mov r8d, r14d
movzx r11d, word [rdi + 0x14]
movzx ebx, word [rdi + 6]
add r11, rdi
mov r10d, dword [rdi + 0x90]
test ebx, ebx
je 0x14000c9e7
mov edx, r14d
nop
mov r9d, dword [r11 + rdx + 0x24]
cmp r10d, r9d
jb 0x14000c9db
mov ecx, dword [r11 + rdx + 0x28]
add ecx, r9d
cmp r10d, ecx
jb 0x14000caca
inc r8d
add rdx, 0x28
cmp r8d, ebx
jl 0x14000c9c0
mov rcx, r14
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0x120], r12
mov qword [rsp + 0x128], r15
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm7
movaps xmmword [rsp + 0xb0], xmm8
movaps xmmword [rsp + 0xa0], xmm9
movaps xmmword [rsp + 0x90], xmm10
test r10d, r10d
je 0x14000cfe2
cmp dword [rdi + 0x94], r14d
je 0x14000cfe2
mov r12d, dword [0x140036010]
lea rdi, [rcx + 0x10]
movdqa xmm8, xmmword [0x140030d70]
movdqa xmm7, xmmword [0x140030d90]
movdqa xmm9, xmmword [str.111133335555::::]
movdqa xmm6, xmmword [0x140030dc0]
movdqa xmm10, xmmword [0x140030cd0]
mov rcx, qword [r13 + 0x318]
mov r9d, r14d
mov r10d, dword [rdi - 4]
mov qword [rbp + 0x67], rdi
movzx r11d, word [rcx + 0x14]
movzx ebx, word [rcx + 6]
add r11, rcx
cmp r14w, bx
jae 0x14000cac3
mov rdx, r14
mov r8d, dword [r11 + rdx + 0x24]
cmp r10d, r8d
jb 0x14000cab7
mov ecx, dword [r11 + rdx + 0x28]
add ecx, r8d
cmp r10d, ecx
jb 0x14000cae1
inc r9d
add rdx, 0x28
cmp r9d, ebx
jl 0x14000caa0
mov al, 1
jmp 0x14000cfe4
mov ecx, dword [r11 + rdx + 0x2c]
add rcx, qword [r13 + 0x320]
sub rcx, r9
add rcx, r10
jmp 0x14000c9ea
mov r15d, dword [r11 + rdx + 0x2c]
add r15, qword [r13 + 0x320]
sub r15, r8
add r15, r10
je 0x14000cac3
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x14000cfe2
mov rcx, qword [r13 + 0x318]
mov r9d, r14d
mov r10d, dword [rdi]
movzx r11d, word [rcx + 0x14]
movzx ebx, word [rcx + 6]
add r11, rcx
cmp r14w, bx
jae 0x14000cb53
mov rdx, r14
nop dword [rax]
mov r8d, dword [r11 + rdx + 0x24]
cmp r10d, r8d
jb 0x14000cb47
mov ecx, dword [r11 + rdx + 0x28]
add ecx, r8d
cmp r10d, ecx
jb 0x14000cbad
inc r9d
add rdx, 0x28
cmp r9d, ebx
jl 0x14000cb30
mov rsi, r14
mov rax, qword [rsi]
test rax, rax
je 0x14000cfc2
jns 0x14000cd72
mov rbx, r14
xor edx, edx
movzx r14d, word [rsi]
mov r8d, 1
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov rdi, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x14000cbc1
mov edx, r14d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
sub rbx, rdi
setne al
jmp 0x14000cbc3
mov esi, dword [r11 + rdx + 0x2c]
add rsi, qword [r13 + 0x320]
sub rsi, r8
add rsi, r10
jmp 0x14000cb56
xor al, al
test al, al
jne 0x14000cfa4
mov eax, dword [0x1400290a0]
movups xmm0, xmmword [0x140029078]
movzx r10d, word [rsi]
movups xmm1, xmmword [0x140029088]
mov dword [rbp - 0x21], eax
movzx eax, word [0x1400290a4]
mov word [rbp - 0x1d], ax
movzx eax, byte [0x1400290a6]
mov byte [rbp - 0x1b], al
xor eax, eax
mov r8d, eax
movups xmmword [rbp - 0x49], xmm0
movsd xmm0, qword [0x140029098]
movsd qword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x39], xmm1
cmp r12d, 2
jl 0x14000cd1f
movdqa xmmword [rsp + 0x20], xmm7
lea rcx, [rbp - 0x45]
mov edx, dword [rsp + 0x20]
nop dword [rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm10
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm6
pmuldq xmm1, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
xorps xmm2, xmm0
movd dword [rcx - 0xc], xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm6
pmuldq xmm1, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
movd xmm0, edx
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
xorps xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x28
jl 0x14000cc30
cmp r8d, 0x2f
jge 0x14000cd61
movsxd rax, r8d
lea r9, [rbp - 0x49]
add r9, rax
nop dword [rax]
mov eax, 0x5397829d
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x39
xor byte [r9 - 1], al
cmp r8d, 0x2f
jl 0x14000cd30
mov rdx, r10
lea rcx, [rbp - 0x49]
call fcn.1400021c0
jmp 0x14000cfa4
mov rcx, qword [r13 + 0x318]
mov r9d, r14d
mov r10d, dword [rsi]
movzx r11d, word [rcx + 0x14]
movzx ebx, word [rcx + 6]
add r11, rcx
cmp r14w, bx
jae 0x14000cdbb
mov rdx, r14
mov r8d, dword [r11 + rdx + 0x24]
cmp r10d, r8d
jb 0x14000cdaf
mov ecx, dword [r11 + rdx + 0x28]
add ecx, r8d
cmp r10d, ecx
jb 0x14000cfcb
inc r9d
add rdx, 0x28
cmp r9d, ebx
jl 0x14000cd94
mov rbx, r14
xor edx, edx
mov r8d, 1
mov rcx, r15
mov rdi, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov r14, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x14000ce01
lea rdx, [rbx + 2]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r14
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
sub rdi, r14
jne 0x14000cf9a
mov eax, dword [0x1400290a0]
movups xmm0, xmmword [0x140029078]
mov dword [rbp - 0x51], eax
movzx eax, word [0x1400290a4]
movups xmm1, xmmword [0x140029088]
mov word [rbp - 0x4d], ax
movzx eax, byte [0x1400290a6]
mov byte [rbp - 0x4b], al
xor eax, eax
mov ecx, eax
movups xmmword [rbp - 0x79], xmm0
movsd xmm0, qword [0x140029098]
movsd qword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x69], xmm1
cmp r12d, 2
jl 0x14000cf4c
movdqa xmmword [rsp + 0x20], xmm7
lea rdx, [rbp - 0x75]
mov r8d, dword [rsp + 0x20]
nop
movd xmm2, ecx
lea eax, [rcx + 4]
pshufd xmm2, xmm2, 0
lea rdx, [rdx + 8]
paddd xmm2, xmm10
add ecx, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm6
pmuldq xmm1, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
movd xmm0, r8d
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 0xc]
xorps xmm2, xmm0
movd dword [rdx - 0xc], xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm6
pmuldq xmm1, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
movd xmm0, r8d
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 8]
xorps xmm2, xmm0
movd dword [rdx - 8], xmm2
cmp ecx, 0x28
jl 0x14000ce60
cmp ecx, 0x2f
jge 0x14000cf8d
movsxd rax, ecx
lea r8, [rbp - 0x79]
add r8, rax
nop word [rax + rax]
mov eax, 0x5397829d
lea r8, [r8 + 1]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x31
movzx eax, cl
inc ecx
sub al, dl
add al, 0x39
xor byte [r8 - 1], al
cmp ecx, 0x2f
jl 0x14000cf60
lea rdx, [rbx + 2]
lea rcx, [rbp - 0x79]
call fcn.1400021c0
mov rbx, qword [r13 + 0x320]
add rbx, rdi
mov qword [rsi], rbx
mov r14d, 0
mov rax, qword [rsi + 8]
add rsi, 8
test rax, rax
jne 0x14000cb62
mov rdi, qword [rbp + 0x67]
add rdi, 0x14
jmp 0x14000ca79
mov ebx, dword [r11 + rdx + 0x2c]
sub rbx, r8
add rbx, r10
add rbx, qword [r13 + 0x320]
jmp 0x14000cdbe
xor al, al
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0xd0]
mov r15, qword [rsp + 0x128]
mov r12, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x118]
add rsp, 0xe0
pop r14
pop r13
pop rdi
pop rbx
pop rbp
ret