Function at 0x140047aa0
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, 0x120
vmovaps xmmword [rax - 0x38], xmm6
vmovaps xmmword [rax - 0x48], xmm7
vmovaps xmmword [rax - 0x58], xmm8
vmovaps xmmword [rax - 0x68], xmm9
vmovaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x1403ca010]
xor rax, rsp
mov qword [rsp + 0xc8], rax
mov rdi, rcx
mov qword [rsp + 0xa0], rcx
xor ebx, ebx
mov dword [rsp + 0x30], ebx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
vmovups ymm0, ymmword [str.g_knbitqo]
vmovups ymmword [rsp + 0x60], ymm0
vmovups xmm1, xmmword [0x1403c0b90]
vmovups xmmword [rsp + 0x80], xmm1
vmovsd xmm0, qword [0x1403c0ba0]
vmovsd qword [rsp + 0x90], xmm0
mov eax, dword [0x1403c0ba8]
mov dword [rsp + 0x98], eax
movzx eax, word [0x1403c0bac]
mov word [rsp + 0x9c], ax
movzx eax, byte [0x1403c0bae]
mov byte [rsp + 0x9e], al
vmovdqu xmm7, xmmword [0x1403c1050]
mov r8d, ebx
vmovdqu xmm6, xmmword [0x1403c1220]
mov eax, 4
vmovd xmm8, eax
vmovdqu xmm9, xmmword [0x1403c1080]
mov eax, 0x1f
vmovd xmm10, eax
vmovdqu xmm0, xmmword [0x1403c1090]
vmovdqu xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x64]
mov edx, dword [rsp + 0x40]
nop word [rax + rax]
vmovd xmm0, r8d
vpshufd xmm0, xmm0, 0
vpaddd xmm5, xmm0, xmm7
vpunpckldq xmm0, xmm5, xmm5
vpmuldq xmm3, xmm0, xmm6
vpunpckhdq xmm1, xmm5, xmm5
vpmuldq xmm2, xmm1, xmm6
vshufps xmm0, xmm3, xmm2, 0xdd
vpsrad xmm4, xmm0, xmm8
vpsrld xmm0, xmm4, xmm10
vpaddd xmm1, xmm0, xmm4
vpmulld xmm2, xmm1, xmm9
vpsubd xmm3, xmm5, xmm2
vpshufb xmm4, xmm3, xmmword [0x1403c1010]
vmovd xmm1, edx
vpaddb xmm2, xmm4, xmm1
vmovd xmm0, dword [rcx - 4]
vpxor xmm1, xmm2, xmm0
vmovd dword [rcx - 4], xmm1
lea eax, [r8 + 4]
vmovd xmm0, eax
vpshufd xmm0, xmm0, 0
vpaddd xmm5, xmm0, xmm7
vpunpckldq xmm0, xmm5, xmm5
vpmuldq xmm3, xmm0, xmm6
vpunpckhdq xmm1, xmm5, xmm5
vpmuldq xmm2, xmm1, xmm6
vshufps xmm0, xmm3, xmm2, 0xdd
vpsrad xmm4, xmm0, xmm8
vpsrld xmm1, xmm4, xmm10
vpaddd xmm0, xmm1, xmm4
vpmulld xmm2, xmm0, xmm9
vpsubd xmm3, xmm5, xmm2
vpshufb xmm4, xmm3, xmmword [0x1403c1010]
vmovd xmm0, edx
vpaddb xmm1, xmm4, xmm0
vmovd xmm0, dword [rcx]
vpxor xmm1, xmm1, xmm0
vmovd dword [rcx], xmm1
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x38
jl 0x140047bb0
cmp r8d, 0x3f
jge 0x140047cc0
movsxd rax, r8d
lea r9, [rsp + 0x60]
add r9, rax
nop word [rax + rax]
mov eax, 0x5397829d
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
sub al, cl
add al, 0x36
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x3f
jl 0x140047c90
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], rbx
lea rax, [rsp + 0x60]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], bl
jne 0x140047cf0
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0xa8]
vzeroupper
call fcn.140053ed0
nop
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 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 + 0xb8]
inc rcx
xor edx, edx
div rcx
movsxd r8, edx
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x40]
call fcn.140052950
or r13d, 2
mov dword [rsp + 0x30], r13d
lea r9, [rsp + 0x40]
mov rbx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x58]
cmp r14, 0x10
cmovae r9, rbx
mov r15, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
mov rax, rcx
sub rax, r15
mov rsi, qword [rsp + 0x50]
cmp rsi, rax
ja 0x140047dc4
lea rax, [rsi + r15]
mov qword [rdi + 0x10], rax
mov r12, rdi
cmp rcx, 0x10
jb 0x140047daa
mov r12, qword [rdi]
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 0x140047dde
mov qword [rsp + 0x20], rsi
mov rdx, rsi
mov rcx, rdi
call fcn.140054300
mov r14, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x40]
cmp r14, 0x10
jb 0x140047e11
lea rdx, [r14 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140047e09
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047e5d
mov rcx, rbx
call fcn.140055710
cmp qword [rdi + 0x10], 5
jne 0x140047d31
mov rdx, qword [rsp + 0xc0]
cmp rdx, 0x10
jb 0x140047e69
inc rdx
mov rcx, qword [rsp + 0xa8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140047e64
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140047e64
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.140055710
mov rax, rdi
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.140055620
lea r11, [rsp + 0x120]
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]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret