Function at 0x48b5f4
Capabilities:
Check os version
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe1c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1e0], ebx
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x1d8], ebx
mov dword [ebp - 0x1dc], ebx
mov dword [ebp - 0x1d0], ebx
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 4]
call fcn.004059f4
mov eax, dword [ebp - 8]
call fcn.004059f4
xor eax, eax
push ebp
push 0x48ba19
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
cmp dword [ebp + 0x10], 0
je 0x48b668
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp + 0xc], 0
je 0x48b675
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
test esi, esi
je 0x48b67d
xor eax, eax
mov dword [esi], eax
lea edx, [ebp - 0x1d4]
mov eax, dword [ebp - 4]
call fcn.0040b78c
mov eax, dword [ebp - 0x1d4]
lea ecx, [ebp - 0x1d0]
mov edx, 0x48ba38
call fcn.004916c0
mov eax, dword [ebp - 0x1d0]
lea edx, [ebp - 0xc]
call fcn.0048a150
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0040b78c
cmp dword [ebp - 0xc], 0
jne 0x48b6ca
cmp dword [ebp - 0x10], 0
je 0x48b9ee
xor edi, edi
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x13c], 0x114
lea eax, [ebp - 0x13c]
push eax
call sub.kernel32.dll_GetVersionExW
movzx ebx, byte [ebp + 0x18]
cmp dword [ebp - 0xc], 0
jne 0x48b712
lea eax, [ebp - 0x14]
xor edx, edx
call fcn.00405a60
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.00405a60
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00405a60
jmp 0x48b759
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0040c97c
push 0x48ba38
push dword [ebp - 0xc]
push 0x48ba38
lea eax, [ebp - 0x1dc]
mov edx, 3
call fcn.00405fc4
mov eax, dword [ebp - 0x1dc]
lea edx, [ebp - 0x1d8]
call fcn.0040b78c
mov edx, dword [ebp - 0x1d8]
lea eax, [ebp - 0xc]
call fcn.00405a60
lea eax, [ebp - 0x14]
call fcn.0040647c
cmp dword [ebp - 0x14], 0
jne 0x48b76e
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x48b779
mov eax, dword [ebp - 0x14]
call fcn.00405a98
mov dword [ebp - 0x24], eax
cmp bl, 1
je 0x48b787
cmp bl, 2
jne 0x48b891
lea eax, [ebp - 0xc]
call fcn.0040647c
lea eax, [ebp - 0x10]
call fcn.0040647c
cmp dword [ebp - 0xc], 0
jne 0x48b7a4
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x48b7af
mov eax, dword [ebp - 0xc]
call fcn.00405a98
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x10], 0
jne 0x48b7bc
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x48b7c7
mov eax, dword [ebp - 0x10]
call fcn.00405a98
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x178]
xor ecx, ecx
mov edx, 0x3c
call fcn.00403614
mov dword [ebp - 0x178], 0x3c
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x174], 0x540
cmp byte [ebp + 0x1c], 0
je 0x48b803
or dword [ebp - 0x174], 0x40
cmp dword [ebp - 0x138], 6
jb 0x48b81e
cmp bl, 2
jne 0x48b81e
mov eax, 0x48ba3c
mov dword [ebp - 0x16c], eax
jmp 0x48b829
mov eax, 0x48ba48
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x178]
push eax
call sub.shell32.dll_ShellExecuteExW
cmp eax, 1
sbb ebx, ebx
inc ebx
test bl, bl
je 0x48b86d
cmp dword [ebp - 0x158], 0x20
seta bl
test bl, bl
je 0x48b877
mov edi, dword [ebp - 0x140]
cmp dword [ebp + 0xc], 0
je 0x48b970
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x158]
mov dword [eax], edx
jmp 0x48b970
push dword [ebp - 0xc]
push 0x48ba60
push dword [ebp - 0x10]
lea eax, [ebp - 0x1e4]
mov edx, 3
call fcn.00405fc4
mov eax, dword [ebp - 0x1e4]
lea edx, [ebp - 0x1e0]
call fcn.0040b78c
mov edx, dword [ebp - 0x1e0]
lea eax, [ebp - 0x10]
call fcn.00405a60
lea eax, [ebp - 0x10]
call fcn.0040647c
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x10], 0
jne 0x48b8e5
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x48b8f0
mov eax, dword [ebp - 0x10]
call fcn.00405a98
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x184], eax
xor eax, eax
mov dword [ebp - 0x188], eax
xor eax, eax
mov dword [ebp - 0x17c], eax
xor eax, eax
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x1cc]
push eax
call sub.kernel32.dll_GetStartupInfoW
mov dword [ebp - 0x1a0], 1
movzx eax, word [ebp - 0x18]
mov word [ebp - 0x19c], ax
mov ebx, 0x4000230
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x1cc]
push eax
mov eax, dword [ebp - 0x24]
push eax
push 0
push ebx
push 0
push 0
push 0
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
push eax
call sub.kernel32.dll_CreateProcessW
cmp eax, 1
sbb eax, eax
inc eax
mov ebx, eax
test bl, bl
je 0x48b970
mov edi, dword [ebp - 0x188]
cmp dword [ebp + 0x10], 0
je 0x48b97b
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
test bl, bl
je 0x48b9ee
test edi, edi
je 0x48b9ee
cmp byte [ebp + 0x1c], 0
jne 0x48b999
test esi, esi
je 0x48b9ee
jmp 0x48b999
mov eax, 1
call fcn.00483ca8
push 2
push edi
call sub.user32.dll_WaitForInputIdle
cmp eax, 0x102
je 0x48b98f
test esi, esi
je 0x48b9ee
jmp 0x48b9b8
mov eax, 1
call fcn.00483ca8
push 0
push 2
push edi
call sub.kernel32.dll_WaitForSingleObjectEx
cmp eax, 0x102
je 0x48b9ae
lea eax, [ebp - 0x28]
push eax
push edi
call sub.kernel32.dll_GetExitCodeProcess
test eax, eax
je 0x48b9ee
cmp dword [ebp - 0x28], 0x103
je 0x48b9e5
mov eax, dword [ebp - 0x28]
mov dword [esi], eax
cmp dword [ebp - 0x28], 0x103
je 0x48b9b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48ba20
lea eax, [ebp - 0x1e4]
mov edx, 6
call fcn.00405a04
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00405a04
ret