Function at 0x180047bd0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe0
vmovaps xmmword [rax - 0x38], xmm6
vmovaps xmmword [rax - 0x48], xmm7
vmovaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x1803c8040]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov rbx, rcx
mov qword [rsp + 0x78], rcx
xor edi, edi
mov dword [rsp + 0x30], edi
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
vmovups ymm0, ymmword [str.g_knbitqo]
vmovups ymmword [rsp + 0x38], ymm0
vmovups xmm1, xmmword [0x1803be8e8]
vmovups xmmword [rsp + 0x58], xmm1
vmovsd xmm0, qword [0x1803be8f8]
vmovsd qword [rsp + 0x68], xmm0
mov eax, dword [0x1803be900]
mov dword [rsp + 0x70], eax
movzx eax, word [0x1803be904]
mov word [rsp + 0x74], ax
movzx eax, byte [0x1803be906]
mov byte [rsp + 0x76], al
vmovdqu xmm6, xmmword [0x1803bed80]
mov ecx, edi
vmovdqu xmm5, xmmword [0x1803bf0f0]
vmovdqu xmm7, xmmword [str.3333]
vmovdqu xmm0, xmmword [0x1803bedf0]
vmovdqu xmmword [rsp + 0x80], xmm0
lea rdx, [rsp + 0x3c]
vmovdqu xmm8, xmmword [0x1803bed30]
mov r8d, dword [rsp + 0x80]
nop word [rax + rax]
vmovd xmm0, ecx
vpshufd xmm0, xmm0, 0
vpaddd xmm4, xmm0, xmm6
vpunpckldq xmm0, xmm4, xmm4
vpmuldq xmm3, xmm0, xmm5
vpunpckhdq xmm1, xmm4, xmm4
vpmuldq xmm2, xmm1, xmm5
vshufps xmm0, xmm3, xmm2, 0xdd
vpaddd xmm3, xmm0, xmm4
vpsrad xmm1, xmm3, 5
vpsrld xmm0, xmm1, 0x1f
vpaddd xmm1, xmm0, xmm1
vpmulld xmm2, xmm1, xmm7
vpsubd xmm3, xmm4, xmm2
vpshufb xmm1, xmm3, xmm8
vmovd xmm0, r8d
vpaddb xmm2, xmm1, xmm0
vmovd xmm0, dword [rdx - 4]
vpxor xmm1, xmm2, xmm0
vmovd dword [rdx - 4], xmm1
lea eax, [rcx + 4]
vmovd xmm0, eax
vpshufd xmm0, xmm0, 0
vpaddd xmm4, xmm0, xmm6
vpunpckldq xmm0, xmm4, xmm4
vpmuldq xmm3, xmm0, xmm5
vpunpckhdq xmm1, xmm4, xmm4
vpmuldq xmm2, xmm1, xmm5
vshufps xmm0, xmm3, xmm2, 0xdd
vpaddd xmm3, xmm0, xmm4
vpsrad xmm1, xmm3, 5
vpsrld xmm0, xmm1, 0x1f
vpaddd xmm1, xmm0, xmm1
vpmulld xmm2, xmm1, xmm7
vpsubd xmm3, xmm4, xmm2
vpshufb xmm1, xmm3, xmm8
vmovd xmm0, r8d
vpaddb xmm2, xmm1, xmm0
vmovd xmm0, dword [rdx]
vpxor xmm1, xmm2, xmm0
vmovd dword [rdx], xmm1
add ecx, 8
lea rdx, [rdx + 8]
cmp ecx, 0x38
jl 0x180047cc0
cmp ecx, 0x3f
jge 0x180047dce
movsxd rax, ecx
lea r8, [rsp + 0x38]
add r8, rax
nop word [rax + rax]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x33
movzx eax, cl
sub al, dl
add al, 0x36
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x3f
jl 0x180047da0
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x98], rdi
lea rax, [rsp + 0x38]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], dil
jne 0x180047df7
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x80]
vzeroupper
call fcn.180051fc0
nop
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov r13d, 1
mov dword [rsp + 0x30], r13d
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdqe
mov rcx, qword [rsp + 0x90]
inc rcx
xor edx, edx
div rcx
movsxd r8, edx
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x38]
call fcn.1800511f0
or r13d, 2
mov dword [rsp + 0x30], r13d
lea r9, [rsp + 0x38]
mov rdi, qword [rsp + 0x38]
mov r14, qword [rsp + 0x50]
cmp r14, 0xf
cmova r9, rdi
mov r15, qword [rbx + 0x10]
mov rcx, qword [rbx + 0x18]
mov rax, rcx
sub rax, r15
mov rsi, qword [rsp + 0x48]
cmp rsi, rax
ja 0x180047ecb
lea rax, [rsi + r15]
mov qword [rbx + 0x10], rax
mov r12, rbx
cmp rcx, 0xf
jbe 0x180047eb1
mov r12, qword [rbx]
lea rcx, [r12 + r15]
mov r8, rsi
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
lea rax, [rsi + r12]
mov byte [rax + r15], 0
jmp 0x180047ee5
mov qword [rsp + 0x20], rsi
mov rdx, rsi
mov rcx, rbx
call fcn.1800522d0
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x38]
cmp r14, 0xf
jbe 0x180047f18
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x180047f10
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180047f64
mov rcx, rdi
call fcn.180053660
cmp qword [rbx + 0x10], 5
jne 0x180047e38
mov rdx, qword [rsp + 0x98]
cmp rdx, 0xf
jbe 0x180047f70
inc rdx
mov rcx, qword [rsp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180047f6b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180047f6b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.180053660
mov rax, rbx
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.180053570
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret