Function at 0x40b81d
Capabilities:
Create process on windows
Get comspec environment variable
Query environment variable
Self delete

Disassembly:
push ebp
lea ebp, [esp - 0x4b0]
sub esp, 0x530
mov eax, dword [0x44e4f8]
xor eax, ebp
mov dword [ebp + 0x4ac], eax
mov eax, dword [ebp + 0x4b8]
push ebx
push esi
push edi
mov esi, 0x208
xor ebx, ebx
push esi
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0x2a2]
push ebx
push eax
mov word [ebp + 0x2a0], bx
call fcn.004324b0
push esi
lea eax, [ebp + 0x96]
push ebx
push eax
mov word [ebp + 0x94], bx
call fcn.004324b0
add esp, 0x18
mov esi, 0x104
push esi
lea eax, [ebp + 0x2a0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x40bb88
push esi
lea eax, [ebp + 0x94]
push eax
push str.COMSPEC
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x40bb88
lea eax, [ebp - 0x18]
call fcn.004095f7
push 7
pop esi
lea edx, [ebp + 0x40]
lea ecx, [ebp - 0x18]
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x54], ebx
mov word [ebp + 0x44], bx
call fcn.0040ea19
test al, al
jne 0x40b8db
push ebx
push 1
jmp 0x40bb78
lea eax, [ebp + 0x78]
push str..bat
push eax
lea eax, [ebp + 0x40]
call fcn.00401f94
pop ecx
pop ecx
lea eax, [ebp + 0x78]
lea ecx, [ebp + 0x40]
call fcn.0040d547
test al, al
jne 0x40b90a
push ebx
push 1
lea esi, [ebp + 0x78]
call fcn.00401432
jmp 0x40b8d3
lea eax, [ebp - 0x18]
call fcn.0040ea01
push str.if_not_exist__
lea eax, [ebp + 0x5c]
push eax
mov dword [ebp + 0x74], esi
mov dword [ebp + 0x70], ebx
mov word [ebp + 0x60], bx
call fcn.00401ffd
lea eax, [ebp + 0x2a0]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.00401ffd
push str.___del__0___else__ping_127.0.0.1__n_2del__
lea eax, [ebp + 0x5c]
push eax
call fcn.00401ffd
lea eax, [ebp + 0x2a0]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.00401ffd
push str.__0_
lea eax, [ebp + 0x5c]
push eax
call fcn.00401ffd
lea esi, [ebp - 0x1c]
call fcn.0040ec47
lea eax, [ebp + 0x78]
call fcn.0040ec84
test al, al
jne 0x40b991
mov eax, esi
call fcn.0040ec5f
push ebx
push 1
lea esi, [ebp + 0x5c]
call fcn.00401432
jmp 0x40b8fd
lea ecx, [ebp + 0x5c]
lea eax, [ebp + 0x24]
call fcn.0040f3d2
mov edi, dword [ebp + 0x38]
cmp edi, ebx
je 0x40bb4d
cmp dword [ebp + 0x3c], 0x10
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x20], ebx
jae 0x40b9b6
lea eax, [ebp + 0x28]
push eax
lea esi, [ebp - 0x20]
lea eax, [ebp - 0x1c]
call fcn.0040ecbc
test al, al
je 0x40bb4d
mov eax, edi
cmp dword [ebp - 0x20], eax
jne 0x40bb4d
lea esi, [ebp - 0x1c]
call fcn.0040ecee
test al, al
je 0x40bb4d
push 0x3c
pop esi
push esi
lea eax, [ebp - 0x64]
push ebx
push eax
call fcn.004324b0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x80]
push eax
mov eax, str._c__
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x58], str.Open
call fcn.00405102
add esp, 0x14
push 0xffffffffffffffff
lea ecx, [ebp + 0x78]
push ecx
xor ebx, ebx
call fcn.004016c9
xor edi, edi
push edi
push 1
lea esi, [ebp - 0x80]
call fcn.00401432
push 0x442ef0
lea eax, [ebp + 0x78]
push eax
call fcn.00401ffd
cmp dword [ebp + 0x90], 8
mov eax, dword [ebp + 0x7c]
jae 0x40ba49
lea eax, [ebp + 0x7c]
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x50], eax
lea eax, [ebp + 0x94]
add ebx, 0x344
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x60], 0x8040
call fcn.00406712
mov eax, ebx
call fcn.0040670e
mov esi, eax
xor ebx, ebx
call fcn.004011a7
test eax, eax
jbe 0x40ba9a
push ebx
call fcn.00408ef3
push eax
call fcn.0040db97
pop ecx
mov eax, esi
inc ebx
call fcn.004011a7
cmp ebx, eax
jb 0x40ba81
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x40bad8
xor ebx, ebx
push edi
inc ebx
push ebx
lea ecx, [ebp + 0x24]
call fcn.004012cd
lea eax, [ebp - 0x1c]
call fcn.0040ec5f
push edi
push ebx
lea esi, [ebp + 0x5c]
call fcn.00401432
push edi
push ebx
lea esi, [ebp + 0x78]
call fcn.00401432
push edi
push ebx
jmp 0x40bb78
mov esi, dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push 0x40
push dword [ebp - 0x2c]
call esi
test eax, eax
je 0x40baa8
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
je 0x40baa8
push 0xf
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
xor ebx, ebx
inc ebx
test eax, eax
push edi
lea ecx, [ebp + 0x24]
push ebx
je 0x40bab0
call fcn.004012cd
lea eax, [ebp - 0x1c]
call fcn.0040ec5f
push edi
push ebx
lea esi, [ebp + 0x5c]
call fcn.00401432
push edi
push ebx
lea esi, [ebp + 0x78]
call fcn.00401432
push edi
push ebx
lea esi, [ebp + 0x40]
call fcn.00401432
lea edi, [ebp - 0x18]
call fcn.0040e9df
mov al, bl
jmp 0x40bb8a
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp + 0x24]
call fcn.004012cd
lea eax, [ebp - 0x1c]
call fcn.0040ec5f
push ebx
push edi
lea esi, [ebp + 0x5c]
call fcn.00401432
push ebx
push edi
lea esi, [ebp + 0x78]
call fcn.00401432
push ebx
push edi
lea esi, [ebp + 0x40]
call fcn.00401432
lea edi, [ebp - 0x18]
call fcn.0040e9df
xor al, al
mov ecx, dword [ebp + 0x4ac]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043228b
add ebp, 0x4b0
leave
ret 4