Function at 0x180029200
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
sub rsp, 0xa8
mov rax, qword [0x180034580]
xor rax, rsp
mov qword [rsp + 0x80], rax
cmp byte [rcx + 0x1668], 0
mov rsi, rcx
jne 0x18002922d
xor r9d, r9d
jmp 0x18002924c
mov rcx, qword [rcx + 0x16a8]
mov r9, qword [rsi + 0x1670]
shl r9, cl
and r9, qword [rsi + 0x1678]
or r9, qword [rsi + 0x1680]
mov rcx, qword [rsi + 0x288]
lea rdx, [rsp + 0x30]
call fcn.180028af0
lea rbx, [rsi + 0x188]
mov r8d, 0x50
mov rcx, rbx
lea rdx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x180029938
movups xmm0, xmmword [rsp + 0x30]
mov eax, 9
movups xmm1, xmmword [rsp + 0x40]
inc qword [rsi + 0x180]
movups xmmword [rbx], xmm0
mov qword [rsp + 0xc8], rbp
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x10], xmm1
mov qword [rsp + 0xd0], rdi
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rbx + 0x20], xmm0
mov qword [rsp + 0xd8], r12
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rbx + 0x30], xmm1
mov qword [rsp + 0xa0], r13
movups xmmword [rbx + 0x40], xmm0
cmp dword [0x1800345c8], 2
mov qword [rsp + 0x98], r14
mov qword [rsp + 0x90], r15
jl 0x180029310
movdqu xmm0, xmmword [rbx + rax*4]
pshufb xmm0, xmmword [0x1800315d0]
movdqu xmmword [rbx + rax*4], xmm0
add rax, 4
cmp rax, 0x11
jb 0x1800292f0
jmp 0x180029321
mov ecx, dword [rbx + rax*4]
bswap ecx
mov dword [rbx + rax*4], ecx
inc rax
cmp rax, 0x11
jb 0x180029310
lea rcx, [rsi + 0x21c]
mov edx, 0xa
nop dword [rax]
mov eax, dword [rcx - 0x90]
mov dword [rcx - 4], eax
mov eax, dword [rcx - 0x94]
mov dword [rcx], eax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x180029330
movabs rax, 0x22312194fc2bf72c
lea r14, [0x180031280]
mov qword [rsi + 0x1d8], rax
lea r15, [0x180031288]
movabs rax, 0x9f555fa3c84c64c2
lea r12, [0x180031290]
mov qword [rsi + 0x1e0], rax
lea ebp, [rdx + 6]
movabs rax, 0x2393b86b6f53b151
lea r13, [rsi + 0x220]
mov qword [rsi + 0x1e8], rax
sub r14, rsi
movabs rax, 0x963877195940eabd
sub r15, rsi
mov qword [rsi + 0x1f0], rax
sub r12, rsi
movabs rax, 0x96283ee2a88effe3
mov qword [rsi + 0x1f8], rax
movabs rax, 0xbe5e1e2553863992
mov qword [rsi + 0x200], rax
movabs rax, 0x2b0199fc2c85b8aa
mov qword [rsi + 0x208], rax
movabs rax, 0xeb72ddc81c52ca2
mov qword [rsi + 0x210], rax
nop dword [rax + rax]
mov r11, rbp
lea rax, [rbp - 2]
and eax, 7
and r11d, 7
mov r8, qword [rsi + rax*8 + 0x1d8]
lea rax, [rbp + 1]
mov rdx, qword [rsi + r11*8 + 0x1d8]
and eax, 7
mov rcx, rdx
mov r9, r8
ror r9, 0x29
lea rbx, [rsi + rax*8]
mov rax, r8
ror rax, 0x12
xor r9, rax
mov rax, r8
ror rax, 0xe
xor r9, rax
lea rax, [rbp - 1]
and eax, 7
xor rcx, qword [rsi + rax*8 + 0x1d8]
lea rax, [rbp - 3]
and eax, 7
and rcx, r8
xor rcx, rdx
add rcx, r9
add rcx, qword [r14 + r13 - 0x220]
add rcx, qword [r13 - 8]
add rcx, qword [rbx + 0x1d8]
mov qword [rbx + 0x1d8], rcx
add qword [rsi + rax*8 + 0x1d8], rcx
lea rax, [rbp + 2]
and eax, 7
lea rcx, [rbp - 4]
and ecx, 7
lea rdi, [rsi + rax*8]
mov rdx, qword [rsi + rcx*8 + 0x1d8]
lea rax, [rbp + 3]
mov r9, qword [rdi + 0x1d8]
and eax, 7
mov r10, r9
ror r10, 0x27
mov r8, qword [rsi + rax*8 + 0x1d8]
mov rax, r9
ror rax, 0x22
xor r10, rax
mov rax, r9
ror rax, 0x1c
xor r10, rax
mov rax, r8
or rax, r9
and r8, r9
and rdx, rax
lea rax, [rbp - 3]
and eax, 7
or rdx, r8
add r10, rdx
add qword [rbx + 0x1d8], r10
mov r8, qword [rsi + rax*8 + 0x1d8]
lea rax, [rbp - 1]
and eax, 7
mov r9, r8
ror r9, 0x29
mov rdx, qword [rsi + rax*8 + 0x1d8]
mov rax, r8
ror rax, 0x12
mov rcx, rdx
xor r9, rax
mov rax, r8
ror rax, 0xe
xor r9, rax
lea rax, [rbp - 2]
and eax, 7
xor rcx, qword [rsi + rax*8 + 0x1d8]
and rcx, r8
xor rcx, rdx
add rcx, r9
add rcx, qword [r15 + r13 - 0x220]
add rcx, qword [rsi + r11*8 + 0x1d8]
add rcx, qword [r13]
mov qword [rsi + r11*8 + 0x1d8], rcx
lea rax, [rbp - 4]
and eax, 7
lea r13, [r13 + 0x18]
add qword [rsi + rax*8 + 0x1d8], rcx
lea rcx, [rbp + 3]
mov r8, qword [rbx + 0x1d8]
and ecx, 7
mov r9, qword [rdi + 0x1d8]
mov r10, r8
mov rax, r8
ror r10, 0x27
ror rax, 0x22
mov rdx, qword [rsi + rcx*8 + 0x1d8]
xor r10, rax
mov rax, r8
ror rax, 0x1c
xor r10, rax
mov rax, r9
or rax, r8
and r9, r8
and rdx, rax
lea rax, [rbp - 4]
and eax, 7
or rdx, r9
add r10, rdx
add qword [rsi + r11*8 + 0x1d8], r10
mov r8, qword [rsi + rax*8 + 0x1d8]
lea rax, [rbp - 2]
and eax, 7
mov r9, r8
ror r9, 0x29
mov rdx, qword [rsi + rax*8 + 0x1d8]
lea rax, [rbp - 1]
and eax, 7
mov rcx, rdx
lea r10, [rsi + rax*8]
mov rax, r8
ror rax, 0x12
xor r9, rax
mov rax, r8
ror rax, 0xe
xor r9, rax
lea rax, [rbp - 3]
and eax, 7
xor rcx, qword [rsi + rax*8 + 0x1d8]
lea rax, [rbp + 3]
and rcx, r8
and eax, 7
xor rcx, rdx
add rcx, r9
add rcx, qword [r12 + r13 - 0x238]
add rcx, qword [r13 - 0x10]
add rcx, qword [r10 + 0x1d8]
mov qword [r10 + 0x1d8], rcx
add qword [rsi + rax*8 + 0x1d8], rcx
lea rax, [rbp + 1]
mov rdx, qword [rsi + r11*8 + 0x1d8]
and eax, 7
mov r8, rdx
add rbp, 0x15
ror r8, 0x27
mov rcx, qword [rsi + rax*8 + 0x1d8]
mov rax, rdx
ror rax, 0x22
xor r8, rax
mov rax, rdx
ror rax, 0x1c
xor r8, rax
mov rax, rcx
or rax, rdx
and rcx, rdx
and rax, qword [rdi + 0x1d8]
or rax, rcx
add r8, rax
add qword [r10 + 0x1d8], r8
cmp rbp, 0x45
jb 0x180029400
mov rdx, qword [rsi + 0x220]
movabs r9, 0x805000000000140a
mov r8, qword [rsi + 0x228]
mov rcx, rdx
mov r10, qword [rsi + 0x238]
mov rax, rdx
mov r15, qword [rsp + 0x90]
mov r11, r10
mov r14, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
ror rax, 1
ror rcx, 8
xor rcx, rax
ror r11, 8
mov rax, rdx
shr rax, 7
xor rcx, rax
mov rax, r8
add qword [rsi + 0x218], rcx
mov rcx, r8
ror rax, 1
ror rcx, 8
xor rcx, rax
mov rax, r8
shr rax, 7
xor rcx, rax
add r9, rcx
add r9, rdx
mov rdx, qword [rsi + 0x230]
mov rcx, rdx
mov qword [rsi + 0x220], r9
ror rcx, 8
mov rax, rdx
ror rax, 1
xor rcx, rax
mov rax, rdx
shr rax, 7
xor rcx, rax
mov rax, r9
ror rax, 0x13
add rcx, r8
mov r8, qword [rsi + 0x240]
mov qword [rsi + 0x228], rcx
mov rcx, r9
ror rcx, 0x3d
xor rcx, rax
shr r9, 6
xor rcx, r9
mov rax, r10
mov r9, qword [rsi + 0x248]
ror rax, 1
xor r11, rax
mov rax, r10
shr rax, 7
xor r11, rax
lea rax, [rdx + rcx]
add r11, rax
mov rcx, r8
ror rcx, 8
mov rdx, r11
ror rdx, 0x3d
mov rax, r8
ror rax, 1
xor rcx, rax
mov qword [rsi + 0x230], r11
mov rax, r8
shr rax, 7
xor rcx, rax
mov rax, r11
ror rax, 0x13
add rcx, r10
xor rdx, rax
shr r11, 6
mov qword [rsi + 0x238], rcx
xor rdx, r11
mov rcx, r9
mov rax, r9
ror rcx, 8
mov r11, qword [rsi + 0x200]
movabs r10, 0x12835b0145706fbe
ror rax, 1
xor rcx, rax
mov rax, r9
shr rax, 7
xor rcx, rax
lea rax, [r8 + rdx]
add rcx, rax
mov r8, qword [rsi + 0x250]
mov qword [rsi + 0x240], rcx
mov rax, r8
ror rax, 1
mov rcx, r8
ror rcx, 8
xor rcx, rax
mov rax, r8
shr rax, 7
xor rcx, rax
lea rax, [r9 + 0x280]
mov r9, qword [rsi + 0x1d8]
add rax, rcx
mov rcx, qword [rsi + 0x258]
mov qword [rsi + 0x248], rax
mov rdx, rcx
mov rax, rcx
ror rdx, 8
ror rax, 1
xor rdx, rax
shr rcx, 7
xor rdx, rcx
mov rcx, qword [rsi + 0x1f8]
add rdx, r8
mov qword [rsi + 0x250], rdx
mov rdx, qword [rsi + 0x1f0]
mov rax, rdx
mov r8, rdx
xor rax, rcx
ror r8, 0x29
mov qword [rsi + 0x268], rax
mov rax, rdx
ror rax, 0x12
xor r8, rax
mov rax, rdx
ror rax, 0xe
xor r8, rax
mov rax, r11
xor rax, rcx
mov rcx, r9
and rax, rdx
mov rdx, qword [rsi + 0x210]
xor rax, r11
or rcx, rdx
and rcx, qword [rsi + 0x1e0]
add r8, rax
add r10, r8
and r9, rdx
add r10, qword [rsi + 0x208]
or rcx, r9
add qword [rsi + 0x1e8], r10
mov r8, rdx
ror r8, 0x27
mov rax, rdx
ror rax, 0x22
xor r8, rax
mov rax, rdx
ror rax, 0x1c
xor rax, r8
add rax, r10
add rcx, rax
movabs rax, 0xa43185be4ee4b28c
add rax, r11
mov qword [rsi + 0x208], rcx
mov qword [rsi + 0x200], rax
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.18002a170
add rsp, 0xa8
pop rsi
pop rbx
ret