Function at 0x1800c9990
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rax, qword [0x1802e13c8]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov r10, r8
mov rdi, rdx
mov r8, qword [r8 + 8]
mov rbx, rcx
mov rax, r8
shr rax, 2
lea rax, [rax + rax*2]
add rax, 2
cmp rax, 0x80
jb 0x1800c9dcd
mov rdx, qword [r10]
lea rcx, [rbp - 0x49]
xor r9d, r9d
call fcn.1801581e0
cmp rax, 0xffffffffffffffff
je 0x1800c9dcd
mov cl, 0xa
xor edx, edx
xor byte [rbp + rdx - 0x49], cl
movzx eax, byte [rbp + rdx - 0x49]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x48], al
movzx ecx, byte [rbp + rdx - 0x48]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x47], cl
movzx eax, byte [rbp + rdx - 0x47]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x46], al
movzx ecx, byte [rbp + rdx - 0x46]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x45], cl
movzx eax, byte [rbp + rdx - 0x45]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x44], al
movzx ecx, byte [rbp + rdx - 0x44]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x43], cl
movzx eax, byte [rbp + rdx - 0x43]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x42], al
movzx ecx, byte [rbp + rdx - 0x42]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x41], cl
movzx eax, byte [rbp + rdx - 0x41]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x40], al
movzx ecx, byte [rbp + rdx - 0x40]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x3f], cl
movzx eax, byte [rbp + rdx - 0x3f]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x3e], al
movzx ecx, byte [rbp + rdx - 0x3e]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x3d], cl
movzx eax, byte [rbp + rdx - 0x3d]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x3c], al
movzx ecx, byte [rbp + rdx - 0x3c]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x3b], cl
movzx eax, byte [rbp + rdx - 0x3b]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x3a], al
movzx ecx, byte [rbp + rdx - 0x3a]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x39], cl
movzx eax, byte [rbp + rdx - 0x39]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x38], al
movzx ecx, byte [rbp + rdx - 0x38]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x37], cl
movzx eax, byte [rbp + rdx - 0x37]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x36], al
movzx ecx, byte [rbp + rdx - 0x36]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x35], cl
movzx eax, byte [rbp + rdx - 0x35]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x34], al
movzx ecx, byte [rbp + rdx - 0x34]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x33], cl
movzx eax, byte [rbp + rdx - 0x33]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x32], al
movzx ecx, byte [rbp + rdx - 0x32]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x31], cl
movzx eax, byte [rbp + rdx - 0x31]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x30], al
movzx ecx, byte [rbp + rdx - 0x30]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x2f], cl
movzx eax, byte [rbp + rdx - 0x2f]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x2e], al
movzx ecx, byte [rbp + rdx - 0x2e]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x2d], cl
movzx eax, byte [rbp + rdx - 0x2d]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x2c], al
movzx ecx, byte [rbp + rdx - 0x2c]
add cl, al
xor cl, 0xa
xor byte [rbp + rdx - 0x2b], cl
movzx eax, byte [rbp + rdx - 0x2b]
add al, cl
xor al, 0xa
xor byte [rbp + rdx - 0x2a], al
movzx ecx, byte [rbp + rdx - 0x2a]
add rdx, 0x20
add cl, al
xor cl, 0xa
cmp rdx, 0x80
jb 0x1800c99f3
movsx eax, word [rbp - 0x49]
imul rcx, rdi, 0xd
mov dword [rbx + rcx*8 + 0x10], eax
movsx eax, word [rbp - 0x31]
mov dword [rbx + rcx*8 + 0x8a0], eax
movsx eax, word [rbp - 0x47]
mov dword [rbx + rcx*8 + 0x18], eax
movsx eax, word [rbp - 0x2f]
mov dword [rbx + rcx*8 + 0x8a8], eax
movsx eax, word [rbp - 0x45]
mov dword [rbx + rcx*8 + 0x20], eax
movsx eax, word [rbp - 0x2d]
mov dword [rbx + rcx*8 + 0x8b0], eax
movsx eax, word [rbp - 0x43]
mov dword [rbx + rcx*8 + 0x28], eax
movsx eax, word [rbp - 0x2b]
mov dword [rbx + rcx*8 + 0x8b8], eax
movsx eax, word [rbp - 0x41]
mov dword [rbx + rcx*8 + 0x30], eax
movsx eax, word [rbp - 0x29]
mov dword [rbx + rcx*8 + 0x8c0], eax
movsx eax, word [rbp - 0x3f]
mov dword [rbx + rcx*8 + 0x38], eax
movsx eax, word [rbp - 0x27]
mov dword [rbx + rcx*8 + 0x8c8], eax
movsx eax, word [rbp - 0x3d]
mov dword [rbx + rcx*8 + 0x40], eax
movsx eax, word [rbp - 0x25]
mov dword [rbx + rcx*8 + 0x8d0], eax
movsx eax, word [rbp - 0x3b]
mov dword [rbx + rcx*8 + 0x48], eax
movsx eax, word [rbp - 0x23]
mov dword [rbx + rcx*8 + 0x8d8], eax
movsx eax, word [rbp - 0x39]
mov dword [rbx + rcx*8 + 0x50], eax
movsx eax, word [rbp - 0x21]
mov dword [rbx + rcx*8 + 0x8e0], eax
movsx eax, word [rbp - 0x37]
mov dword [rbx + rcx*8 + 0x58], eax
movsx eax, word [rbp - 0x1f]
mov dword [rbx + rcx*8 + 0x8e8], eax
movsx eax, word [rbp - 0x35]
mov dword [rbx + rcx*8 + 0x60], eax
movsx eax, word [rbp - 0x1d]
mov dword [rbx + rcx*8 + 0x8f0], eax
movsx eax, word [rbp - 0x33]
mov dword [rbx + rcx*8 + 0x68], eax
movsx eax, word [rbp - 0x1b]
mov dword [rbx + rcx*8 + 0x8f8], eax
lea rax, [rdi + 0x37]
lea rax, [rax + rax*4]
lea rdx, [rax + rax]
lea rax, [rdi + rdi*4]
lea rcx, [rax + rax]
movsx eax, word [rbp - 0x19]
mov dword [rbx + rdx*8], eax
movsx eax, word [rbp - 7]
mov dword [rbx + rcx*8 + 0x17c8], eax
movsx eax, word [rbp - 0x17]
mov dword [rbx + rdx*8 + 8], eax
movsx eax, word [rbp - 5]
mov dword [rbx + rcx*8 + 0x17d0], eax
movsx eax, word [rbp - 0x15]
mov dword [rbx + rdx*8 + 0x10], eax
movsx eax, word [rbp - 3]
mov dword [rbx + rcx*8 + 0x17d8], eax
movsx eax, word [rbp - 0x13]
mov dword [rbx + rdx*8 + 0x18], eax
movsx eax, word [rbp - 1]
mov dword [rbx + rcx*8 + 0x17e0], eax
movsx eax, word [rbp - 0x11]
mov dword [rbx + rdx*8 + 0x20], eax
movsx eax, word [rbp + 1]
mov dword [rbx + rcx*8 + 0x17e8], eax
movsx eax, word [rbp - 0xf]
mov dword [rbx + rdx*8 + 0x28], eax
movsx eax, word [rbp + 3]
mov dword [rbx + rcx*8 + 0x17f0], eax
movsx eax, word [rbp - 0xd]
mov dword [rbx + rdx*8 + 0x30], eax
movsx eax, word [rbp + 5]
movups xmm0, xmmword [rbp + 0x12]
mov dword [rbx + rcx*8 + 0x17f8], eax
movsx eax, word [rbp - 0xb]
movups xmm1, xmmword [rbp + 0x22]
mov dword [rbx + rdx*8 + 0x38], eax
movsx eax, word [rbp + 7]
mov dword [rbx + rcx*8 + 0x1800], eax
movsx eax, word [rbp - 9]
mov dword [rbx + rdx*8 + 0x40], eax
movsx eax, word [rbp + 9]
mov dword [rbx + rcx*8 + 0x1808], eax
movzx eax, byte [rbp + 0xb]
mov dword [rbx + rdi*8 + 0x1e58], eax
movzx eax, byte [rbp + 0xc]
mov dword [rbx + rdi*8 + 0x1f08], eax
movzx eax, byte [rbp + 0xd]
mov dword [rbx + rdi*8 + 0x1fb8], eax
movzx eax, byte [rbp + 0xe]
mov dword [rbx + rdi*8 + 0x2068], eax
movzx eax, byte [rbp + 0xf]
mov dword [rbx + rdi*8 + 0x2118], eax
movzx eax, byte [rbp + 0x10]
mov dword [rbx + rdi*8 + 0x21c8], eax
movzx eax, byte [rbp + 0x11]
mov dword [rbx + rdi*8 + 0x2278], eax
mov eax, dword [rbp + 0x33]
mov dword [rbx + rdi*8 + 0x2870], eax
shl rdi, 6
movups xmmword [rdi + rbx + 0x2328], xmm0
movups xmmword [rdi + rbx + 0x2338], xmm1
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.1801589e0
add rsp, 0xb0
pop rdi
pop rbx
pop rbp
ret