Function at 0x4b8730
Capabilities:
Create process on windows
Create process suspended
Get common file path
Get number of processors
Self delete

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb
push 0
push 0
dec ecx
jne 0x4b8738
push ebx
push esi
push edi
mov eax, 0x4b8310
call fcn.0040714c
mov esi, dword [0x4bcf84]
xor eax, eax
push ebp
push 0x4b9146
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4b9160
call fcn.0042738c
mov eax, dword [0x4bd00c]
xor ecx, ecx
mov edx, 0x105
call fcn.0040362c
mov eax, dword [0x4bd00c]
push eax
push 0x104
call sub.kernel32.dll_GetTempPathA
mov edx, dword [0x4bd134]
xor eax, eax
call fcn.00402ff8
mov eax, dword [0x4bd134]
mov eax, dword [eax]
call fcn.00404e74
test eax, eax
jne 0x4b87b7
mov eax, dword [0x4bd134]
mov edx, 0x4b9178
call fcn.00404c08
mov eax, dword [0x4bcf9c]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4bd008]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4bd17c]
xor edx, edx
mov dword [eax], edx
mov byte [0x4c0368], 0
xor ebx, ebx
mov byte [0x4c0369], 0
mov eax, dword [0x4bcc28]
mov byte [eax], 1
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402ff8
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
call fcn.0040a080
mov edx, dword [ebp - 0x14]
mov eax, 0x4c0360
mov ecx, 0x4b918c
call fcn.00404ec0
mov eax, dword [0x4c0360]
call fcn.00409dec
test al, al
je 0x4b882f
mov eax, dword [0x4c0360]
call fcn.00405074
push eax
call sub.kernel32.dll_LoadLibraryA
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402ff8
mov eax, dword [ebp - 0x1c]
mov ecx, 0x4c0364
mov edx, 0x4b91a4
call fcn.0045e3b8
mov edx, dword [0x4bcb84]
mov byte [edx], al
mov eax, dword [0x4bcb84]
cmp byte [eax], 0
jne 0x4b8e7f
mov edx, 0x4c0360
mov eax, 1
call fcn.00402ff8
mov eax, dword [0x4c0360]
call fcn.00404e74
test eax, eax
je 0x4b912b
xor eax, eax
push ebp
push 0x4b88b9
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x20]
mov edx, 0x4b91cc
mov eax, dword [0x4c0360]
call fcn.00427200
mov edx, dword [ebp - 0x20]
mov eax, 0x4c0360
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b88cd
mov edx, 0x4b91e8
mov eax, dword [0x4c0360]
call fcn.00409410
test al, al
je 0x4b8984
mov edx, 0x4c0360
mov eax, 2
call fcn.00402ff8
mov edx, dword [0x4bcc98]
mov eax, 3
call fcn.00402ff8
mov eax, 0x4c036c
mov edx, 0x44
call fcn.00407ebc
push 0x4c03b0
push 0x4c036c
push 0
push 0
push 0x40
push 0xffffffffffffffff
push 0
push 0
push 0x4b91f8
push dword [0x4c0360]
push 0x4b9204
mov eax, dword [0x4bcc98]
push dword [eax]
push 0x4b91f8
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.00404f34
mov eax, dword [ebp - 0x24]
call fcn.00405074
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
je 0x4b912b
mov eax, dword [0x4c03b4]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4c03b0]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x4b912b
mov edx, 0x4b9210
mov eax, dword [0x4c0360]
call fcn.00409410
test al, al
je 0x4b8b49
mov byte [0x4c0368], 1
mov edx, 0x4c0360
mov eax, 2
call fcn.00402ff8
xor eax, eax
push ebp
push 0x4b89e8
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4b91cc
lea ecx, [ebp - 0x28]
mov eax, dword [0x4c0360]
call fcn.00427200
mov edx, dword [ebp - 0x28]
mov eax, dword [0x4bcc98]
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b89fc
mov edx, 0x4c0360
mov eax, 3
call fcn.00402ff8
mov eax, dword [0x4c0360]
call fcn.00404e74
cmp eax, 0xa
je 0x4b8a2d
mov eax, dword [0x4c0360]
call fcn.00404e74
cmp eax, 0xc
jne 0x4b8e7f
mov eax, dword [0x4bce98]
mov byte [eax], 1
mov eax, dword [0x4c0360]
call fcn.00404e74
cmp eax, 0xc
jne 0x4b8a4c
mov eax, dword [0x4bd098]
mov byte [eax], 1
mov edx, 0x4c0360
mov eax, 4
call fcn.00402ff8
mov eax, dword [0x4c0360]
mov edx, 0x4b9224
call fcn.00404fc0
mov eax, dword [0x4bcabc]
sete byte [eax]
lea edx, [ebp - 0x2c]
mov eax, 5
call fcn.00402ff8
mov eax, dword [ebp - 0x2c]
call fcn.00404e74
test eax, eax
jle 0x4b8ad9
mov edx, 0x4c0360
mov eax, 5
call fcn.00402ff8
mov al, byte [0x4b9228]
push eax
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
mov edx, 0x4b9234
mov eax, dword [0x4c0360]
call fcn.0040ef54
mov edx, dword [ebp - 0x30]
mov eax, 0x4c0360
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bcc6c]
mov dword [edx], eax
lea edx, [ebp - 0x34]
mov eax, 6
call fcn.00402ff8
mov eax, dword [ebp - 0x34]
call fcn.00404e74
test eax, eax
jle 0x4b8e7f
mov edx, 0x4c0360
mov eax, 6
call fcn.00402ff8
mov al, byte [0x4b9228]
push eax
lea eax, [ebp - 0x38]
push eax
xor ecx, ecx
mov edx, 0x4b9240
mov eax, dword [0x4c0360]
call fcn.0040ef54
mov edx, dword [ebp - 0x38]
mov eax, 0x4c0360
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bcd8c]
mov dword [edx], eax
jmp 0x4b8e7f
mov edx, 0x4b924c
mov eax, dword [0x4c0360]
call fcn.00409410
test al, al
je 0x4b8c7d
mov byte [0x4c0368], 1
mov byte [0x4c0369], 1
lea edx, [ebp - 0x3c]
mov eax, 2
call fcn.00402ff8
mov eax, dword [ebp - 0x3c]
call fcn.00404e74
test eax, eax
jle 0x4b8ba6
lea edx, [ebp - 0x40]
mov eax, 2
call fcn.00402ff8
mov eax, dword [ebp - 0x40]
xor edx, edx
call fcn.00409a5c
mov edx, dword [0x4bcba4]
mov dword [edx], eax
lea edx, [ebp - 0x44]
mov eax, 3
call fcn.00402ff8
mov eax, dword [ebp - 0x44]
call fcn.00404e74
test eax, eax
jle 0x4b8c0d
mov edx, 0x4c0360
mov eax, 3
call fcn.00402ff8
mov al, byte [0x4b9228]
push eax
lea eax, [ebp - 0x48]
push eax
xor ecx, ecx
mov edx, 0x4b9234
mov eax, dword [0x4c0360]
call fcn.0040ef54
mov edx, dword [ebp - 0x48]
mov eax, 0x4c0360
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bcc6c]
mov dword [edx], eax
lea edx, [ebp - 0x4c]
mov eax, 4
call fcn.00402ff8
mov eax, dword [ebp - 0x4c]
call fcn.00404e74
test eax, eax
jle 0x4b8e7f
mov edx, 0x4c0360
mov eax, 4
call fcn.00402ff8
mov al, byte [0x4b9228]
push eax
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
mov edx, 0x4b9240
mov eax, dword [0x4c0360]
call fcn.0040ef54
mov edx, dword [ebp - 0x50]
mov eax, 0x4c0360
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bcd8c]
mov dword [edx], eax
jmp 0x4b8e7f
mov edx, 0x4b925c
mov eax, dword [0x4c0360]
call fcn.00409410
test al, al
je 0x4b8d46
mov bl, 1
mov edx, 0x4c0360
mov eax, 2
call fcn.00402ff8
xor eax, eax
push ebp
push 0x4b8cdc
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4b91cc
lea ecx, [ebp - 0x54]
mov eax, dword [0x4c0360]
call fcn.00427200
mov edx, dword [ebp - 0x54]
mov eax, dword [0x4bcc98]
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b8cf0
call fcn.00402f90
cmp eax, 3
jne 0x4b8d22
mov edx, 0x4c0360
mov eax, 3
call fcn.00402ff8
mov edx, 1
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bcf90]
mov dword [edx], eax
jmp 0x4b8d2d
mov eax, dword [0x4bcf90]
mov dword [eax], 1
mov eax, dword [0x4bcc98]
mov eax, dword [eax]
call fcn.00404e74
test eax, eax
je 0x4b912b
jmp 0x4b8e7f
xor edx, edx
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bd17c]
mov dword [edx], eax
mov eax, dword [0x4bd17c]
cmp dword [eax], 0
je 0x4b912b
mov edx, 0x4c0360
mov eax, 2
call fcn.00402ff8
mov eax, dword [0x4c0360]
call fcn.00404e74
test eax, eax
je 0x4b912b
xor eax, eax
push ebp
push 0x4b8dc0
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4b91cc
lea ecx, [ebp - 0x58]
mov eax, dword [0x4c0360]
call fcn.00427200
mov edx, dword [ebp - 0x58]
mov eax, 0x4c0360
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b8dd4
xor edx, edx
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bd008]
mov dword [edx], eax
mov eax, dword [0x4bd008]
cmp dword [eax], 0
je 0x4b912b
mov edx, 0x4c0360
mov eax, 3
call fcn.00402ff8
mov eax, dword [0x4c0360]
call fcn.00404e74
test eax, eax
jle 0x4b8e2c
mov edx, 0x14
mov eax, dword [0x4c0360]
call fcn.00409a5c
mov edx, dword [0x4bcf9c]
mov dword [edx], eax
jmp 0x4b8e37
mov eax, dword [0x4bcf9c]
mov dword [eax], 0x14
mov eax, dword [0x4bcf9c]
cmp dword [eax], 0x64
jg 0x4b8e4b
mov eax, dword [0x4bcf9c]
cmp dword [eax], 0
jge 0x4b8e56
mov eax, dword [0x4bcf9c]
mov dword [eax], 0x14
mov edx, 0x4c0360
mov eax, 4
call fcn.00402ff8
mov edx, 0x4b926c
mov eax, dword [0x4c0360]
call fcn.00409410
test al, al
je 0x4b8e7f
mov byte [0x4bcab8], 0
xor edx, edx
push ebp
push 0x4b9110
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [esi]
call fcn.00443958
push 0x80
push 0xffffffffffffffec
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SetWindowLongA
mov eax, dword [esi]
mov byte [eax + 0x5b], 0
mov eax, dword [esi]
xor edx, edx
call fcn.00443540
cmp byte [0x4c0368], 0
jne 0x4b8fde
test bl, bl
jne 0x4b8fde
mov ecx, dword [0x4bd1b0]
mov eax, dword [esi]
mov edx, dword [0x4ad830]
call fcn.00443970
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
xor edx, edx
call fcn.0043cef0
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004ae47c
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004adee4
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
xor edx, edx
call fcn.0043ded0
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
xor edx, edx
call fcn.0043d870
mov eax, dword [0x4bd17c]
cmp dword [eax], 0
jbe 0x4b8fb7
push 0
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004587ac
push eax
push 0x4c8
mov eax, dword [0x4bd008]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x4bd17c]
mov eax, dword [eax]
push eax
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_SetParent
cmp byte [0x4bcab8], 0
je 0x4b8f95
push 0xffffffffffffffff
push 0xb4
push 0x104
push 2
push 2
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_MoveWindow
jmp 0x4b8fb7
push 0xffffffffffffffff
push 0xb4
push 0x104
push 0
push 0
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_MoveWindow
push 4
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4bd1b0]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cef0
jmp 0x4b90ed
test bl, bl
je 0x4b901c
mov ecx, dword [0x4bd0e8]
mov eax, dword [esi]
mov edx, dword [0x4b7dc4]
call fcn.00443970
push 4
mov eax, dword [0x4bd0e8]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4bd0e8]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cef0
jmp 0x4b90ed
cmp byte [0x4c0369], 0
je 0x4b906b
mov ecx, dword [0x4bcb70]
mov eax, dword [esi]
mov edx, dword [0x4b77ec]
call fcn.00443970
mov eax, dword [0x4bcb70]
mov eax, dword [eax]
call fcn.004b7d00
push 4
mov eax, dword [0x4bcb70]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4bcb70]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cef0
jmp 0x4b90ed
mov eax, dword [0x4bce98]
cmp byte [eax], 0
je 0x4b90b8
mov ecx, dword [0x4bcdf4]
mov eax, dword [esi]
mov edx, dword [0x4b56a4]
call fcn.00443970
mov eax, dword [0x4bcdf4]
mov eax, dword [eax]
call fcn.004b5a2c
push 4
mov eax, dword [0x4bcdf4]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4bcdf4]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cef0
jmp 0x4b90ed
mov ecx, dword [0x4bcf6c]
mov eax, dword [esi]
mov edx, dword [0x4af018]
call fcn.00443970
push 4
mov eax, dword [0x4bcf6c]
mov eax, dword [eax]
call fcn.004587ac
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4bcf6c]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cef0
mov eax, dword [esi]
call fcn.004439f0
cmp byte [0x4c0368], 0
jne 0x4b9106
test bl, bl
jne 0x4b9106
call fcn.0045e208
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b912b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b914d
lea eax, [ebp - 0x58]
mov edx, 0x12
call fcn.00404bd8
ret