Function at 0x4b3660
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x546f8a
mov eax, dword fs:[0]
push eax
sub esp, 0xd4
mov eax, dword [0x596c60]
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], 0x56b67c
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.00493c80
call fcn.00493f60
call fcn.004945a0
mov ecx, esi
call fcn.00493c10
mov dword [ebp - 4], 1
xor eax, eax
mov dword [esi], 0x574bf4
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.004b1b30
mov byte [ebp - 4], 8
mov eax, dword [0x59f554]
test al, 1
jne 0x4b3785
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 9
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 8
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4b379a
cmp byte [eax + 0x19], 6
jb 0x4b379a
mov al, 1
jmp 0x4b379c
xor al, al
cmp byte [0x59f560], 0
jne 0x4b37b6
cmp byte [0x59f561], 0
jne 0x4b37b6
test al, al
je 0x4b38f0
sub esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xe0]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xe0]
call fcn.0047ee50
mov edx, str..MMService.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x24
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b46c
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x5747c8
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x18], 0x10
jb 0x4b3844
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b3844
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xe0]
call fcn.0047b620
mov edi, eax
mov byte [ebp - 4], 0xd
cmp dword [edi + 0x14], 0x10
jb 0x4b3861
mov edi, dword [edi]
mov eax, dword [0x59f554]
test al, 1
jne 0x4b388c
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0xe
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0xd
push edi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4b38af
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b38af
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xa
call fcn.0047b5a0
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
mov dword [ebp - 4], 8
jmp 0x4b38f0
push 0x43
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cmp eax, 1
je 0x4b3a9d
push 8
mov byte [ebp - 4], 0x10
call fcn.0050828d
add esp, 4
test eax, eax
jne 0x4b393d
push 1
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], str.bad_allocation
push eax
lea ecx, [ebp - 0x44]
call fcn.00507368
push 0x592bac
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], vtable.std::bad_alloc.0
push eax
call fcn.0053eadf
mov dword [ebp - 0x30], eax
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.004f9410
mov dword [esi + 0xac], eax
mov dword [ebp - 4], 8
jmp 0x4b3a8e
push 1
push 0x57480c
lea ecx, [esi + 0x7c]
call fcn.0047c4b0
mov eax, dword [0x59f554]
test al, 1
jne 0x4b3ac8
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0x18
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 8
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x4b3add
cmp byte [eax + 0x19], 6
jb 0x4b3add
mov al, 1
jmp 0x4b3adf
xor al, al
cmp byte [0x59f560], 0
jne 0x4b3af9
cmp byte [0x59f561], 0
jne 0x4b3af9
test al, al
je 0x4b3c25
sub esp, 8
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xe0]
call fcn.0047b4d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1a
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0xe0]
call fcn.0047ee50
mov edx, str..MMService.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x30
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b498
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x5747c8
mov ecx, eax
call fcn.0047f0b0
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x18], 0x10
jb 0x4b3b87
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b3b87
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xe0]
call fcn.0047b620
mov edi, eax
mov byte [ebp - 4], 0x1c
cmp dword [edi + 0x14], 0x10
jb 0x4b3ba4
mov edi, dword [edi]
mov eax, dword [0x59f554]
test al, 1
jne 0x4b3bcf
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0x1d
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0x1c
push edi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp - 0x18], 0x10
jb 0x4b3bf2
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4b3bf2
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x19
call fcn.0047b5a0
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x4b3c25
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.005072fd
mov esp, ebp
pop ebp
ret