Function at 0x4b43b4
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 0x4b43bc
push ebx
push esi
push edi
mov eax, 0x4b3f94
call fcn.0040714c
mov esi, dword [0x4b7f9c]
xor eax, eax
push ebp
push 0x4b4dca
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4b4de4
call fcn.00427358
mov eax, dword [0x4b8024]
xor ecx, ecx
mov edx, 0x105
call fcn.0040362c
mov eax, dword [0x4b8024]
push eax
push 0x104
call sub.kernel32.dll_GetTempPathA
mov edx, dword [0x4b8150]
xor eax, eax
call fcn.00402ff8
mov eax, dword [0x4b8150]
mov eax, dword [eax]
call fcn.00404e74
test eax, eax
jne 0x4b443b
mov eax, dword [0x4b8150]
mov edx, 0x4b4dfc
call fcn.00404c08
mov eax, dword [0x4b7fb4]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4b8020]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4b8198]
xor edx, edx
mov dword [eax], edx
mov byte [0x4bb350], 0
xor ebx, ebx
mov byte [0x4bb351], 0
mov eax, dword [0x4b7c3c]
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.0040a060
mov edx, dword [ebp - 0x14]
mov eax, 0x4bb348
mov ecx, 0x4b4e10
call fcn.00404ec0
mov eax, dword [0x4bb348]
call fcn.00409dcc
test al, al
je 0x4b44b3
mov eax, dword [0x4bb348]
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, 0x4bb34c
mov edx, 0x4b4e28
call fcn.0045e2c4
mov edx, dword [0x4b7b98]
mov byte [edx], al
mov eax, dword [0x4b7b98]
cmp byte [eax], 0
jne 0x4b4b03
mov edx, 0x4bb348
mov eax, 1
call fcn.00402ff8
mov eax, dword [0x4bb348]
call fcn.00404e74
test eax, eax
je 0x4b4daf
xor eax, eax
push ebp
push 0x4b453d
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x20]
mov edx, 0x4b4e50
mov eax, dword [0x4bb348]
call fcn.004271cc
mov edx, dword [ebp - 0x20]
mov eax, 0x4bb348
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b4551
mov edx, 0x4b4e6c
mov eax, dword [0x4bb348]
call fcn.004093f0
test al, al
je 0x4b4608
mov edx, 0x4bb348
mov eax, 2
call fcn.00402ff8
mov edx, dword [0x4b7cac]
mov eax, 3
call fcn.00402ff8
mov eax, 0x4bb354
mov edx, 0x44
call fcn.00407e9c
push 0x4bb398
push 0x4bb354
push 0
push 0
push 0x40
push 0xffffffffffffffff
push 0
push 0
push 0x4b4e7c
push dword [0x4bb348]
push 0x4b4e88
mov eax, dword [0x4b7cac]
push dword [eax]
push 0x4b4e7c
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 0x4b4daf
mov eax, dword [0x4bb39c]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4bb398]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x4b4daf
mov edx, 0x4b4e94
mov eax, dword [0x4bb348]
call fcn.004093f0
test al, al
je 0x4b47cd
mov byte [0x4bb350], 1
mov edx, 0x4bb348
mov eax, 2
call fcn.00402ff8
xor eax, eax
push ebp
push 0x4b466c
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4b4e50
lea ecx, [ebp - 0x28]
mov eax, dword [0x4bb348]
call fcn.004271cc
mov edx, dword [ebp - 0x28]
mov eax, dword [0x4b7cac]
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b4680
mov edx, 0x4bb348
mov eax, 3
call fcn.00402ff8
mov eax, dword [0x4bb348]
call fcn.00404e74
cmp eax, 0xa
je 0x4b46b1
mov eax, dword [0x4bb348]
call fcn.00404e74
cmp eax, 0xc
jne 0x4b4b03
mov eax, dword [0x4b7eb0]
mov byte [eax], 1
mov eax, dword [0x4bb348]
call fcn.00404e74
cmp eax, 0xc
jne 0x4b46d0
mov eax, dword [0x4b80b4]
mov byte [eax], 1
mov edx, 0x4bb348
mov eax, 4
call fcn.00402ff8
mov eax, dword [0x4bb348]
mov edx, 0x4b4ea8
call fcn.00404fc0
mov eax, dword [0x4b7acc]
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 0x4b475d
mov edx, 0x4bb348
mov eax, 5
call fcn.00402ff8
mov al, byte [0x4b4eac]
push eax
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
mov edx, 0x4b4eb8
mov eax, dword [0x4bb348]
call fcn.0040ef34
mov edx, dword [ebp - 0x30]
mov eax, 0x4bb348
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b7c80]
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 0x4b4b03
mov edx, 0x4bb348
mov eax, 6
call fcn.00402ff8
mov al, byte [0x4b4eac]
push eax
lea eax, [ebp - 0x38]
push eax
xor ecx, ecx
mov edx, 0x4b4ec4
mov eax, dword [0x4bb348]
call fcn.0040ef34
mov edx, dword [ebp - 0x38]
mov eax, 0x4bb348
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b7da0]
mov dword [edx], eax
jmp 0x4b4b03
mov edx, 0x4b4ed0
mov eax, dword [0x4bb348]
call fcn.004093f0
test al, al
je 0x4b4901
mov byte [0x4bb350], 1
mov byte [0x4bb351], 1
lea edx, [ebp - 0x3c]
mov eax, 2
call fcn.00402ff8
mov eax, dword [ebp - 0x3c]
call fcn.00404e74
test eax, eax
jle 0x4b482a
lea edx, [ebp - 0x40]
mov eax, 2
call fcn.00402ff8
mov eax, dword [ebp - 0x40]
xor edx, edx
call fcn.00409a3c
mov edx, dword [0x4b7bb8]
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 0x4b4891
mov edx, 0x4bb348
mov eax, 3
call fcn.00402ff8
mov al, byte [0x4b4eac]
push eax
lea eax, [ebp - 0x48]
push eax
xor ecx, ecx
mov edx, 0x4b4eb8
mov eax, dword [0x4bb348]
call fcn.0040ef34
mov edx, dword [ebp - 0x48]
mov eax, 0x4bb348
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b7c80]
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 0x4b4b03
mov edx, 0x4bb348
mov eax, 4
call fcn.00402ff8
mov al, byte [0x4b4eac]
push eax
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
mov edx, 0x4b4ec4
mov eax, dword [0x4bb348]
call fcn.0040ef34
mov edx, dword [ebp - 0x50]
mov eax, 0x4bb348
call fcn.00404c08
mov edx, 0x270f
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b7da0]
mov dword [edx], eax
jmp 0x4b4b03
mov edx, 0x4b4ee0
mov eax, dword [0x4bb348]
call fcn.004093f0
test al, al
je 0x4b49ca
mov bl, 1
mov edx, 0x4bb348
mov eax, 2
call fcn.00402ff8
xor eax, eax
push ebp
push 0x4b4960
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4b4e50
lea ecx, [ebp - 0x54]
mov eax, dword [0x4bb348]
call fcn.004271cc
mov edx, dword [ebp - 0x54]
mov eax, dword [0x4b7cac]
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b4974
call fcn.00402f90
cmp eax, 3
jne 0x4b49a6
mov edx, 0x4bb348
mov eax, 3
call fcn.00402ff8
mov edx, 1
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b7fa8]
mov dword [edx], eax
jmp 0x4b49b1
mov eax, dword [0x4b7fa8]
mov dword [eax], 1
mov eax, dword [0x4b7cac]
mov eax, dword [eax]
call fcn.00404e74
test eax, eax
je 0x4b4daf
jmp 0x4b4b03
xor edx, edx
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b8198]
mov dword [edx], eax
mov eax, dword [0x4b8198]
cmp dword [eax], 0
je 0x4b4daf
mov edx, 0x4bb348
mov eax, 2
call fcn.00402ff8
mov eax, dword [0x4bb348]
call fcn.00404e74
test eax, eax
je 0x4b4daf
xor eax, eax
push ebp
push 0x4b4a44
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x4b4e50
lea ecx, [ebp - 0x58]
mov eax, dword [0x4bb348]
call fcn.004271cc
mov edx, dword [ebp - 0x58]
mov eax, 0x4bb348
call fcn.00404c08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b4a58
xor edx, edx
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b8020]
mov dword [edx], eax
mov eax, dword [0x4b8020]
cmp dword [eax], 0
je 0x4b4daf
mov edx, 0x4bb348
mov eax, 3
call fcn.00402ff8
mov eax, dword [0x4bb348]
call fcn.00404e74
test eax, eax
jle 0x4b4ab0
mov edx, 0x14
mov eax, dword [0x4bb348]
call fcn.00409a3c
mov edx, dword [0x4b7fb4]
mov dword [edx], eax
jmp 0x4b4abb
mov eax, dword [0x4b7fb4]
mov dword [eax], 0x14
mov eax, dword [0x4b7fb4]
cmp dword [eax], 0x64
jg 0x4b4acf
mov eax, dword [0x4b7fb4]
cmp dword [eax], 0
jge 0x4b4ada
mov eax, dword [0x4b7fb4]
mov dword [eax], 0x14
mov edx, 0x4bb348
mov eax, 4
call fcn.00402ff8
mov edx, 0x4b4ef0
mov eax, dword [0x4bb348]
call fcn.004093f0
test al, al
je 0x4b4b03
mov byte [0x4b7ac8], 0
xor edx, edx
push ebp
push 0x4b4d94
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [esi]
call fcn.00443924
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.0044350c
cmp byte [0x4bb350], 0
jne 0x4b4c62
test bl, bl
jne 0x4b4c62
mov ecx, dword [0x4b81cc]
mov eax, dword [esi]
mov edx, dword [0x4aa738]
call fcn.0044393c
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
xor edx, edx
call fcn.0043cebc
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.004ab384
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.004aadec
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
xor edx, edx
call fcn.0043de9c
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
xor edx, edx
call fcn.0043d83c
mov eax, dword [0x4b8198]
cmp dword [eax], 0
jbe 0x4b4c3b
push 0
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.00458778
push eax
push 0x4c8
mov eax, dword [0x4b8020]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x4b8198]
mov eax, dword [eax]
push eax
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_SetParent
cmp byte [0x4b7ac8], 0
je 0x4b4c19
push 0xffffffffffffffff
push 0xb4
push 0x104
push 2
push 2
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_MoveWindow
jmp 0x4b4c3b
push 0xffffffffffffffff
push 0xb4
push 0x104
push 0
push 0
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_MoveWindow
push 4
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4b81cc]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cebc
jmp 0x4b4d71
test bl, bl
je 0x4b4ca0
mov ecx, dword [0x4b8104]
mov eax, dword [esi]
mov edx, dword [0x4b3a48]
call fcn.0044393c
push 4
mov eax, dword [0x4b8104]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4b8104]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cebc
jmp 0x4b4d71
cmp byte [0x4bb351], 0
je 0x4b4cef
mov ecx, dword [0x4b7b84]
mov eax, dword [esi]
mov edx, dword [0x4b3480]
call fcn.0044393c
mov eax, dword [0x4b7b84]
mov eax, dword [eax]
call fcn.004b3984
push 4
mov eax, dword [0x4b7b84]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4b7b84]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cebc
jmp 0x4b4d71
mov eax, dword [0x4b7eb0]
cmp byte [eax], 0
je 0x4b4d3c
mov ecx, dword [0x4b7e0c]
mov eax, dword [esi]
mov edx, dword [0x4b13f4]
call fcn.0044393c
mov eax, dword [0x4b7e0c]
mov eax, dword [eax]
call fcn.004b177c
push 4
mov eax, dword [0x4b7e0c]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4b7e0c]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cebc
jmp 0x4b4d71
mov ecx, dword [0x4b7f84]
mov eax, dword [esi]
mov edx, dword [0x4abf20]
call fcn.0044393c
push 4
mov eax, dword [0x4b7f84]
mov eax, dword [eax]
call fcn.00458778
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4b7f84]
mov eax, dword [eax]
mov dl, 1
call fcn.0043cebc
mov eax, dword [esi]
call fcn.004439bc
cmp byte [0x4bb350], 0
jne 0x4b4d8a
test bl, bl
jne 0x4b4d8a
call fcn.0045e114
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b4daf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b4dd1
lea eax, [ebp - 0x58]
mov edx, 0x12
call fcn.00404bd8
ret