Function at 0x1800118a0
Capabilities:
Encode data using xor

Disassembly:
test rcx, rcx
je 0x18001242f
mov r11, rsp
push rbp
push rbx
lea rbp, [r11 - 0x268]
sub rsp, 0x358
mov rax, qword [0x1800a5010]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
movups xmm0, xmmword [0x180095160]
xor r8d, r8d
movups xmm1, xmmword [0x180095170]
mov rbx, rcx
mov eax, dword [0x1800951b0]
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov edi, dword [0x1800a5018]
mov qword [r11 + 0x20], r12
mov qword [r11 - 0x18], r13
lea r13d, [r8 + 0x1f]
mov qword [r11 - 0x20], r14
lea r14d, [r8 + 4]
mov qword [r11 - 0x28], r15
movaps xmmword [r11 - 0x38], xmm6
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [0x180095180]
movaps xmmword [r11 - 0x48], xmm7
movups xmmword [rbp - 0x80], xmm1
movups xmm1, xmmword [0x180095190]
movups xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [0x1800951a0]
mov dword [rbp - 0x40], eax
movzx eax, word [0x1800951b4]
movaps xmmword [r11 - 0x58], xmm8
movaps xmmword [r11 - 0x68], xmm9
mov qword [rsp + 0x50], rcx
movups xmmword [rbp - 0x60], xmm1
movups xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x3c], ax
cmp edi, 2
jl 0x180011a93
movdqa xmm5, xmmword [0x18009d8f0]
lea rcx, [rsp + 0x70]
movdqa xmm4, xmmword [0x18009dd00]
movdqa xmm7, xmmword [0x18009d930]
movdqa xmm9, xmmword [0x18009d9d0]
movd xmm6, r14d
movd xmm8, r13d
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
pxor xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
pxor xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp r8d, 0x28
jl 0x1800119a0
cmp r8d, 0x2b
jge 0x180011ad5
movsxd rax, r8d
lea r9, [rsp + 0x70]
lea r9, [r9 + rax*2]
nop
mov eax, 0x51eb851f
lea r9, [r9 + 2]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x32
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x30
xor word [r9 - 2], ax
cmp r8d, 0x2b
jl 0x180011aa0
xor r9d, r9d
lea r8, [rsp + 0x70]
xor edx, edx
xor ecx, ecx
call qword [0x1800a7758]
movups xmm0, xmmword [0x1800950e0]
xor r8d, r8d
movups xmm1, xmmword [0x1800950f0]
mov r12, rax
mov eax, dword [0x180095158]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [0x180095100]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [0x180095110]
movups xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [0x180095120]
movups xmmword [rbp], xmm1
movups xmm1, xmmword [str.7_r]
movups xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [0x180095140]
movups xmmword [rbp + 0x20], xmm1
movsd xmm1, qword [0x180095150]
mov dword [rbp + 0x48], eax
movzx eax, word [0x18009515c]
movups xmmword [rbp + 0x30], xmm0
movsd qword [rbp + 0x40], xmm1
mov word [rbp + 0x4c], ax
cmp edi, 2
jl 0x180011c93
movdqa xmm5, xmmword [0x18009d8f0]
lea rcx, [rbp - 0x30]
movdqa xmm4, xmmword [0x18009dd00]
movdqa xmm7, xmmword [0x18009d930]
movdqa xmm9, xmmword [0x18009d9d0]
movd xmm6, r14d
movd xmm8, r13d
nop dword [rax]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
pxor xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
pxor xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp r8d, 0x38
jl 0x180011ba0
cmp r8d, 0x3f
jge 0x180011cd5
movsxd rax, r8d
lea r9, [rbp - 0x30]
lea r9, [r9 + rax*2]
nop
mov eax, 0x51eb851f
lea r9, [r9 + 2]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x32
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x30
xor word [r9 - 2], ax
cmp r8d, 0x3f
jl 0x180011ca0
xor r9d, r9d
lea r8, [rbp - 0x30]
xor edx, edx
xor ecx, ecx
call qword [0x1800a7758]
lea rdx, [rbp + 0x110]
xor r8d, r8d
lea rdx, [rdx + 0x80]
mov r15, rax
lea rax, [0x180000000]
lea rcx, [rax + 0x95020]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
mov rax, qword [rcx + 0x30]
movups xmmword [rdx - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x30], xmm1
movups xmm1, xmmword [rcx]
movups xmmword [rdx - 0x20], xmm0
movups xmm0, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x10], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rdx], xmm1
movups xmm1, xmmword [rcx + 0x20]
movups xmmword [rdx + 0x10], xmm0
movups xmmword [rdx + 0x20], xmm1
mov qword [rdx + 0x30], rax
mov eax, dword [rcx + 0x38]
mov dword [rdx + 0x38], eax
movzx eax, word [rcx + 0x3c]
mov word [rdx + 0x3c], ax
cmp edi, 2
jl 0x180011eb3
movdqa xmm5, xmmword [0x18009d8f0]
lea rcx, [rbp + 0x110]
movdqa xmm4, xmmword [0x18009dd00]
movdqa xmm7, xmmword [0x18009d930]
movdqa xmm9, xmmword [0x18009d9d0]
movd xmm6, r14d
movd xmm8, r13d
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
pxor xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
pxor xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp r8d, 0x58
jl 0x180011dc0
cmp r8d, 0x5f
jge 0x180011ef6
movsxd rax, r8d
lea r9, [rbp + 0x110]
lea r9, [r9 + rax*2]
mov eax, 0x51eb851f
lea r9, [r9 + 2]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x32
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x30
xor word [r9 - 2], ax
cmp r8d, 0x5f
jl 0x180011ec1
xor r9d, r9d
lea r8, [rbp + 0x110]
xor edx, edx
xor ecx, ecx
call qword [0x1800a7758]
lea rdx, [rbp + 0x50]
mov qword [rsp + 0x68], rax
lea rdx, [rdx + 0x80]
xor r8d, r8d
lea rcx, [0x180000000]
mov rsi, rax
lea rcx, [rcx + 0x94f60]
mov rax, qword [rcx + 0xb0]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rdx - 0x80], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rdx - 0x70], xmm1
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rdx - 0x60], xmm0
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rdx - 0x50], xmm1
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rdx - 0x40], xmm0
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rdx - 0x30], xmm1
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rdx - 0x20], xmm0
movups xmm0, xmmword [rcx + 0x80]
movups xmmword [rdx - 0x10], xmm1
movups xmm1, xmmword [rcx + 0x90]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx + 0x20], xmm0
mov qword [rdx + 0x30], rax
movzx eax, word [rcx + 0xb8]
mov word [rdx + 0x38], ax
cmp edi, 2
jl 0x1800120d3
movdqa xmm5, xmmword [0x18009d8f0]
lea rcx, [rbp + 0x50]
movdqa xmm4, xmmword [0x18009dd00]
movdqa xmm7, xmmword [0x18009d930]
movdqa xmm9, xmmword [0x18009d9d0]
movd xmm6, r14d
movd xmm8, r13d
nop dword [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
pxor xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm9
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
pxor xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp r8d, 0x58
jl 0x180011fe0
cmp r8d, 0x5d
jge 0x180012115
movsxd rax, r8d
lea r9, [rbp + 0x50]
lea r9, [r9 + rax*2]
nop
mov eax, 0x51eb851f
lea r9, [r9 + 2]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x32
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x30
xor word [r9 - 2], ax
cmp r8d, 0x5d
jl 0x1800120e0
xor r9d, r9d
lea r8, [rbp + 0x50]
xor edx, edx
xor ecx, ecx
call qword [0x1800a7758]
movaps xmm9, xmmword [rsp + 0x300]
mov r14, rax
movaps xmm8, xmmword [rsp + 0x310]
movaps xmm7, xmmword [rsp + 0x320]
movaps xmm6, xmmword [rsp + 0x330]
mov qword [rsp + 0x38], rax
mov eax, dword [0x1800a60bc]
test eax, eax
jne 0x18001215f
mov r8, r12
jmp 0x18001216b
cmp eax, 1
jne 0x1800123e7
mov r8, r15
mov rdx, qword [0x1800a7670]
lea rcx, [rbp + 0x1e0]
call fcn.18005daa0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x1d0], xmm0
mov edi, dword [rbp + 0x1d8]
test edi, edi
jle 0x1800123e7
mov rcx, rbx
xor r12d, r12d
xor r13d, r13d
call fcn.180071a40
test rax, rax
je 0x1800121b5
mov rdx, qword [0x1800a7a20]
add rdx, rax
jmp 0x1800121b7
xor edx, edx
movups xmm0, xmmword [rdx]
movups xmmword [rbp + 0x1e0], xmm0
mov r8, qword [rbp + 0x1e0]
psrldq xmm0, 8
movd ebx, xmm0
mov dword [rsp + 0x30], ebx
test ebx, ebx
jle 0x180012239
mov rdi, r8
mov r15d, ebx
nop
mov rbx, qword [rdi]
test rbx, rbx
je 0x18001221e
mov rdx, rsi
mov rcx, rbx
call fcn.18005ccf0
test al, al
je 0x180012204
mov rax, qword [0x1800a7a30]
mov r12d, dword [rax + rbx]
jmp 0x18001221e
mov rdx, r14
mov rcx, rbx
call fcn.18005ccf0
test al, al
je 0x18001221e
mov rcx, qword [0x1800a7a30]
mov r13d, dword [rcx + rbx]
add rdi, 8
sub r15, 1
jne 0x1800121e0
mov ebx, dword [rsp + 0x30]
mov edi, dword [rbp + 0x1d8]
mov r8, qword [rbp + 0x1e0]
mov eax, r12d
cdq
idiv edi
mov r9d, eax
mov dword [rsp + 0x40], eax
mov eax, r13d
cdq
idiv edi
mov dword [rsp + 0x44], eax
mov r10d, eax
movsxd rax, edi
mov qword [rsp + 0x58], rax
test edi, edi
jle 0x1800123da
mov rcx, qword [rbp + 0x1d0]
xor eax, eax
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x60], rax
nop word [rax + rax]
mov r13, qword [rcx + rax*8]
test r13, r13
je 0x1800123be
xor r12d, r12d
mov edi, r9d
mov esi, r10d
test ebx, ebx
jle 0x1800123be
mov eax, dword [rsp + 0x30]
mov r15, r8
nop word [rax + rax]
mov rbx, qword [r15]
test rbx, rbx
je 0x18001238e
test edi, edi
jle 0x180012320
mov rdx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.18005ccf0
test al, al
je 0x180012320
mov rax, qword [0x1800a7a30]
mov edx, edi
mov ecx, dword [rbx + rax]
call fcn.180065d80
mov r14d, eax
test eax, eax
jle 0x18001231b
mov rcx, qword [0x1800a7930]
mov rdx, qword [rbx + rcx]
mov rcx, r13
mov qword [rsp + 0x48], rdx
call fcn.180076730
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x48]
mov rdx, rax
mov dword [rsp + 0x20], r14d
call fcn.180073560
sub edi, r14d
mov r14, qword [rsp + 0x38]
test esi, esi
jle 0x18001237d
mov rdx, r14
mov rcx, rbx
call fcn.18005ccf0
test al, al
je 0x18001237d
mov rax, qword [0x1800a7a30]
mov edx, esi
mov ecx, dword [rbx + rax]
call fcn.180065d80
mov r14d, eax
test eax, eax
jle 0x18001237d
mov rcx, qword [0x1800a7930]
mov rdx, qword [rbx + rcx]
mov rcx, r13
mov qword [rsp + 0x48], rdx
call fcn.180076730
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x48]
mov rdx, rax
mov dword [rsp + 0x20], r14d
call fcn.180073560
sub esi, r14d
test edi, edi
jg 0x180012385
test esi, esi
jle 0x18001239e
mov r14, qword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
inc r12d
add r15, 8
cmp r12d, eax
jl 0x1800122b0
mov r14, qword [rsp + 0x38]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rbp + 0x1d0]
mov rdx, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x44]
mov ebx, dword [rsp + 0x30]
inc rax
mov r8, qword [rbp + 0x1e0]
mov qword [rsp + 0x60], rax
cmp rax, rdx
jl 0x180012280
mov rcx, qword [rbp + 0x1d0]
call qword [0x1800a7760]
mov r14, qword [rsp + 0x348]
mov r13, qword [rsp + 0x350]
mov r12, qword [rsp + 0x388]
mov rdi, qword [rsp + 0x380]
mov rsi, qword [rsp + 0x378]
mov r15, qword [rsp + 0x340]
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.180079a30
add rsp, 0x358
pop rbx
pop rbp
ret