Function at 0x4b2e50
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54678a
mov eax, dword fs:[0]
push eax
sub esp, 0xd4
mov eax, dword [0x595c60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [esi], 0x56a67c
xor eax, eax
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], 0
mov dword [ebp - 0x34], esi
mov word [esi + 4], ax
mov dword [ebp - 4], eax
call fcn.004939e0
call fcn.00493cc0
call fcn.00494300
mov ecx, esi
call fcn.00493970
mov dword [ebp - 4], 1
xor eax, eax
mov dword [esi], 0x573bc4
mov dword [esi + 0x30], 7
mov dword [esi + 0x2c], 0
mov word [esi + 0x1c], ax
mov dword [esi + 0x48], 7
mov dword [esi + 0x44], eax
mov word [esi + 0x34], ax
mov dword [esi + 0x60], 7
mov dword [esi + 0x5c], eax
mov word [esi + 0x4c], ax
mov dword [esi + 0x78], 7
mov dword [esi + 0x74], eax
mov word [esi + 0x64], ax
mov dword [esi + 0x90], 7
mov dword [esi + 0x8c], eax
mov word [esi + 0x7c], ax
mov dword [esi + 0xa8], 7
mov dword [esi + 0xa4], eax
mov word [esi + 0x94], ax
lea ecx, [esi + 0xb4]
mov dword [esi + 0xac], eax
mov dword [esi + 0xb0], eax
call fcn.004b1310
mov byte [ebp - 4], 8
mov eax, dword [0x59e598]
test al, 1
jne 0x4b2f75
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 9
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 8
mov eax, dword [0x596f88]
test byte [eax + 0x1c], 2
je 0x4b2f8a
cmp byte [eax + 0x19], 6
jb 0x4b2f8a
mov al, 1
jmp 0x4b2f8c
xor al, al
cmp byte [0x59e5a8], 0
jne 0x4b2fa6
cmp byte [0x59e5a9], 0
jne 0x4b2fa6
test al, al
je 0x4b30e0
sub esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xe0]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xe0]
call fcn.0047eed0
mov edx, str..MMService.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0x24
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a46c
mov ecx, eax
call fcn.0047f130
mov edx, 0x573798
mov ecx, eax
call fcn.0047f130
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x18], 0x10
jb 0x4b3034
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b3034
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xe0]
call fcn.0047b6a0
mov edi, eax
mov byte [ebp - 4], 0xd
cmp dword [edi + 0x14], 0x10
jb 0x4b3051
mov edi, dword [edi]
mov eax, dword [0x59e598]
test al, 1
jne 0x4b307c
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 0xe
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 0xd
push edi
push 6
mov ecx, 0x59e5a8
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x4b309f
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b309f
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xa
call fcn.0047b620
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
mov dword [ebp - 4], 8
jmp 0x4b30e0
push 0x43
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cmp eax, 1
je 0x4b328d
push 8
mov byte [ebp - 4], 0x10
call fcn.00507c0d
add esp, 4
test eax, eax
jne 0x4b312d
push 1
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], str.bad_allocation
push eax
lea ecx, [ebp - 0x44]
call fcn.00506ce8
push 0x591d2c
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], vtable.std::bad_alloc.0
push eax
call fcn.0053e44f
mov dword [ebp - 0x30], eax
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.004f8c30
mov dword [esi + 0xac], eax
mov dword [ebp - 4], 8
jmp 0x4b327e
push 1
push 0x5737dc
lea ecx, [esi + 0x7c]
call fcn.0047c530
mov eax, dword [0x59e598]
test al, 1
jne 0x4b32b8
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 0x18
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 8
mov eax, dword [0x596f88]
test byte [eax + 0x1c], 2
je 0x4b32cd
cmp byte [eax + 0x19], 6
jb 0x4b32cd
mov al, 1
jmp 0x4b32cf
xor al, al
cmp byte [0x59e5a8], 0
jne 0x4b32e9
cmp byte [0x59e5a9], 0
jne 0x4b32e9
test al, al
je 0x4b3415
sub esp, 8
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xe0]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1a
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0xe0]
call fcn.0047eed0
mov edx, str..MMService.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0x30
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a498
mov ecx, eax
call fcn.0047f130
mov edx, 0x573798
mov ecx, eax
call fcn.0047f130
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x18], 0x10
jb 0x4b3377
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b3377
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xe0]
call fcn.0047b6a0
mov edi, eax
mov byte [ebp - 4], 0x1c
cmp dword [edi + 0x14], 0x10
jb 0x4b3394
mov edi, dword [edi]
mov eax, dword [0x59e598]
test al, 1
jne 0x4b33bf
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 0x1d
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 0x1c
push edi
push 6
mov ecx, 0x59e5a8
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x4b33e2
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b33e2
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x19
call fcn.0047b620
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
jmp 0x4b3415
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00506c7d
mov esp, ebp
pop ebp
ret