Function at 0x4a20d0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x50a558
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x5364d0]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
fld qword [0x51d0d0]
mov eax, dword [esi + 4]
sub esp, 8
fstp qword [esp]
lea ebx, [esi + 4]
push 0xdc
push eax
lea ecx, [esi + 0x700]
push ecx
mov ecx, dword [0x56324c]
call fcn.004c1e70
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
mov eax, dword [ebx]
sbb edx, edx
neg edx
push eax
mov dword [esi + 0x6fc], edx
call fcn.0041ce80
mov esi, dword [0x56610c]
mov edi, dword [esi + 8]
add esp, 4
test edi, edi
jne 0x4a2160
mov ecx, 0x109
jmp 0x4a2190
mov eax, 0x51eb851f
cmp edi, 1
jne 0x4a2181
mov ecx, dword [esi + 4]
imul ecx, ecx, 0x109
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x4a2190
mov ecx, dword [esi]
imul ecx, ecx, 0x109
mul ecx
mov ecx, edx
shr ecx, 5
test edi, edi
jne 0x4a219b
mov eax, 0x13a
jmp 0x4a21cb
mov eax, 0x51eb851f
cmp edi, 1
jne 0x4a21bc
mov esi, dword [esi + 4]
imul esi, esi, 0x13a
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4a21cb
mov edx, dword [esi]
imul edx, edx, 0x13a
mul edx
mov eax, edx
shr eax, 5
push 6
push ecx
push eax
mov eax, dword [ebx]
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a29d0
xor eax, eax
lea edx, [esp + 0x5c]
push edx
push 2
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov eax, dword [ebx]
push 0x8008
push eax
mov dword [esp + 0x6c], 0x7f
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebx]
mov esi, dword [sym.imp.USER32.dll_GetWindowLongW]
push 0xfffffffffffffff0
push ecx
call esi
mov edi, dword [sym.imp.USER32.dll_SetWindowLongW]
mov ecx, eax
or ecx, 0x20000
cmp eax, ecx
je 0x4a225a
mov edx, dword [ebx]
push ecx
push 0xfffffffffffffff0
push edx
call edi
mov eax, dword [ebx]
push 0xffffffffffffffec
push eax
call esi
mov ecx, eax
or ecx, 0x40000
cmp eax, ecx
je 0x4a2275
push ecx
mov ecx, dword [ebx]
push 0xffffffffffffffec
push ecx
call edi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, dword [0x56324c]
push 0
push 0x32
call edi
push eax
push 0x31
call edi
push eax
push 1
push 0x84
push esi
call dword [sym.imp.USER32.dll_LoadImageW]
lea esi, [esp + 0x58]
mov edi, eax
call fcn.00401140
mov esi, eax
lea edx, [esp + 0x54]
push 0xf4
push edx
mov dword [esp + 0xc8], 0
call fcn.00433510
push 0x5151bc
push eax
lea eax, [esp + 0x60]
push eax
mov byte [esp + 0xd4], 1
call fcn.00404510
add esp, 0x14
push esi
push eax
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0xcc], 2
call fcn.0041d700
mov eax, dword [eax]
mov ecx, dword [ebx]
add esp, 0xc
push edi
mov edi, dword [ebp + 8]
push eax
push ecx
lea esi, [edi + 0x68]
call fcn.00497800
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4a2326
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a234e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a2376
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a23a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebx]
xor esi, esi
push esi
push 0x64
push 0xf0
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.0048fe10
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x48], esi
call fcn.004911b0
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x44]
test esi, esi
je 0x4a23f4
push 0
lea eax, [esp + 0x4c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push ecx
mov ecx, str.Expand
call fcn.00401640
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
call fcn.004a2440
cmp dword [esp + 0x48], 0
je 0x4a2407
call fcn.004a3d30
jmp 0x4a240f
mov ecx, edi
push ecx
call fcn.004a40a0
push ebx
xor eax, eax
call fcn.0041e900
push edi
call fcn.004a2ab0
call fcn.00409980
xor eax, eax
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4