Function at 0x14004523c
Capabilities:
Delete file
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x200
mov rax, qword [0x140093028]
xor rax, rsp
mov qword [rbp + 0xf0], rax
movups xmm0, xmmword [0x1400850e0]
movdqu xmmword [rsp + 0x40], xmm0
movabs r13, 0x97b425ed097b425f
pextrw eax, xmm0, 7
xor r12d, r12d
test ax, ax
je 0x1400452c4
mov r8d, r12d
mov rax, r13
mul r8
shr rdx, 5
movzx eax, dx
imul ecx, eax, 0x36
movzx eax, r8w
sub ax, cx
add ax, 0x32
xor word [rsp + r8*2 + 0x40], ax
inc r8
cmp r8, 8
jb 0x14004529a
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x140045308
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or rax, 0xffffffffffffffff
jmp 0x14004579a
xor edx, edx
lea r8d, [rdx + 0x64]
lea rcx, [0x140094fc0]
call sub.VCRUNTIME140.dll_memset
movups xmm0, xmmword [str.SQWQSQ_QSQWQSQ_1317131_131_r]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [0x140085130]
movups xmmword [rsp + 0x60], xmm1
movups xmm0, xmmword [0x140085140]
movups xmmword [rsp + 0x70], xmm0
mov eax, dword [0x140085150]
mov dword [rbp - 0x80], eax
mov al, byte [0x140085154]
mov byte [rbp - 0x7c], al
mov r8, r12
mov rax, r13
mul r8
shr rdx, 5
movsx eax, dl
imul ecx, eax, 0x36
mov al, r8b
sub al, cl
add al, 0x32
xor byte [rsp + r8 + 0x50], al
inc r8
cmp r8, 0x35
jb 0x140045353
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x30], r12
lea rax, [rsp + 0x50]
or rdi, 0xffffffffffffffff
mov r8, rdi
inc r8
cmp byte [rax + r8], r12b
jne 0x140045393
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x48]
call fcn.14004bc48
nop
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
shl ecx, 2
sub r8d, ecx
add r8d, 0xa
movsxd r14, r8d
mov r15, qword [rbp - 0x30]
mov rsi, qword [rbp - 0x48]
test r8d, r8d
jle 0x14004543f
mov rbx, r12
lea r13, [0x140094fc0]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movsxd rcx, eax
movabs rax, 0x842108421084211
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0x1f
sub rcx, rax
lea rax, [rbp - 0x48]
cmp r15, 0x10
cmovae rax, rsi
mov al, byte [rax + rcx]
mov byte [rbx + r13], al
inc rbx
cmp rbx, r14
jl 0x1400453ed
movabs r13, 0x97b425ed097b425f
lea rcx, [rbp - 0x68]
call fcn.140045000
nop
mov r14d, 0x1000
cmp qword [rbp - 0x58], r12
je 0x140045754
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wremove]
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp - 0x20]
call sub.VCRUNTIME140.dll_memset
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rdx, qword [rbp - 0x68]
lea rcx, [rbp - 0x20]
call fcn.140049358
nop
mov r8d, 0x8708
lea rdx, [0x140072ff0]
lea rcx, [rbp - 0x20]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::write_char_const____ptr64__long_long___int64_____ptr64]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
lea rcx, [rbp - 0x18]
test al, al
je 0x140045537
call fcn.140049850
test rax, rax
jne 0x1400454ec
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x20]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x20], rax
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x24], edx
lea rcx, [rbp - 0x18]
call fcn.1400492ec
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x88]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
jmp 0x140045754
call fcn.140049850
test rax, rax
jne 0x14004555e
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x20]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x20], rax
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x24], edx
lea rcx, [rbp - 0x18]
call fcn.1400492ec
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x88]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp - 0x68]
call fcn.14004e290
test al, al
jne 0x1400455ca
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wremove]
jmp 0x140045754
movups xmm0, xmmword [0x1400850e0]
movdqu xmmword [rbp - 0x78], xmm0
pextrw eax, xmm0, 7
test ax, ax
je 0x14004560d
mov r8, r12
mov rax, r13
mul r8
shr rdx, 5
movzx eax, dx
imul ecx, eax, 0x36
movzx eax, r8w
sub ax, cx
add ax, 0x32
xor word [rbp + r8*2 - 0x78], ax
inc r8
cmp r8, 8
jb 0x1400455e3
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
lea rcx, [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x14004574c
movsd xmm0, qword [str.G_F_EVU]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [0x1400853c0]
mov dword [rsp + 0x48], eax
mov al, byte [0x1400853c4]
mov byte [rsp + 0x4c], al
mov r8, r12
mov rax, r13
mul r8
shr rdx, 5
movsx eax, dl
imul ecx, eax, 0x36
mov al, r8b
sub al, cl
add al, 0x32
xor byte [rsp + r8 + 0x40], al
inc r8
cmp r8, 0xd
jb 0x14004566c
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
lea rax, [rsp + 0x40]
mov r8, rdi
inc r8
cmp byte [rax + r8], r12b
jne 0x1400456aa
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.14004bc48
nop
lea rcx, [rsp + 0x50]
call fcn.14004ef6c
mov qword [0x140095028], rax
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x140045717
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, r14
jb 0x14004570b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004570b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140069480
mov rax, qword [0x140095028]
mov rcx, rbx
test rax, rax
je 0x14004574f
call fcn.140047c08
mov rcx, rbx
test al, al
je 0x14004574f
call fcn.1400482ec
mov rcx, rbx
test al, al
je 0x14004574f
call fcn.140046f88
mov rcx, rbx
test al, al
je 0x14004574f
call fcn.1400457cc
test al, al
jne 0x140045757
mov rcx, rbx
call fcn.140045e1c
mov rbx, rdi
lea rcx, [rbp - 0x68]
call fcn.1400494ec
nop
cmp r15, 0x10
jb 0x140045797
lea rdx, [r15 + 1]
mov rax, rsi
cmp rdx, r14
jb 0x14004578f
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004578f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.140069480
mov rax, rbx
mov rcx, qword [rbp + 0xf0]
xor rcx, rsp
call fcn.140069020
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret