Function at 0x49b120
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6860f0
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
mov eax, dword [0x79cac4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
lea eax, [ebp - 0x1f0]
push eax
call fcn.0049bf70
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [ebx + 0x60], ecx
mov esi, dword [ebx + 0x64]
mov dword [ebx + 0x64], edx
or edi, 0xffffffff
mov dword [ebp - 4], 0
test esi, esi
je 0x49b1a4
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49b1a4
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x49b1a4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 4], 1
mov esi, dword [ebp - 0x1ec]
test esi, esi
je 0x49b1d3
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49b1d3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x49b1d3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 0
mov dword [ebp - 4], 0xffffffff
push dword [0x7a98c4]
mov ecx, dword [0x79daa4]
mov eax, dword [0x79daac]
mov edx, dword [0x79daa0]
sub eax, ecx
push 0
push dword [ebx + 4]
push eax
mov eax, dword [0x79daa8]
sub eax, edx
push eax
push ecx
push edx
push 0x56000008
push 0
push str.msctls_progress32
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 1
push 0x40a
push eax
mov dword [ebx + 0x7c], eax
call edi
push 0
mov byte [ebx + 0x78], 1
push dword [0x7a98c4]
mov ecx, dword [0x79daa4]
mov eax, dword [0x79daac]
mov edx, dword [0x79daa0]
sub eax, ecx
push 0
push dword [ebx + 4]
push eax
mov eax, dword [0x79daa8]
sub eax, edx
push eax
push ecx
push edx
push 0x56000000
push 0
push 0x77415c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 0
push 0
push 0x31
mov dword [ebx + 0x80], eax
push dword [ebx + 4]
call edi
push 1
push eax
push 0x30
push dword [ebx + 0x80]
call edi
push 0x110
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0x1e8], 0x114
push 0
push eax
call fcn.0064cc00
add esp, 0xc
lea eax, [ebp - 0x1e8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
test eax, eax
je 0x49b377
cmp dword [ebp - 0x1e4], 6
jb 0x49b377
push 0x5c
lea eax, [ebp - 0xd0]
push 0
push eax
call fcn.0064cc00
lea edi, [ebx + 0x9c]
add esp, 0xc
cmp byte [edi], 0
jne 0x49b32d
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1ec], eax
test eax, eax
je 0x49b32a
push 0x58
push eax
call esi
push 0x5a
push dword [ebp - 0x1ec]
mov dword [edi + 4], eax
call esi
push dword [ebp - 0x1ec]
mov dword [edi + 8], eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov byte [edi], 1
push 0x60
push dword [edi + 8]
push 0x12
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push str.Segoe_UI
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0xb4]
push 0x20
push eax
call fcn.00660585
add esp, 0xc
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov esi, eax
test esi, esi
jne 0x49b406
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
jmp 0x49b37d
lea edi, [ebx + 0x9c]
push 0x5c
lea eax, [ebp - 0x70]
push 0
push eax
call fcn.0064cc00
add esp, 0xc
cmp byte [edi], 0
jne 0x49b3ca
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1ec], eax
test eax, eax
je 0x49b3c7
push 0x58
push eax
call esi
push 0x5a
push dword [ebp - 0x1ec]
mov dword [edi + 4], eax
call esi
push dword [ebp - 0x1ec]
mov dword [edi + 8], eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov byte [edi], 1
push 0x60
push dword [edi + 8]
push 0x12
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov byte [ebp - 0x56], 5
push 0x774184
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x54]
push 0x20
push eax
mov dword [ebp - 0x60], 0x1f4
call fcn.00660585
add esp, 0xc
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov esi, eax
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x49b41b
cmp eax, esi
je 0x49b41b
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
mov dword [ebx + 0xa8], esi
push dword [0x7a98c4]
mov ecx, dword [0x79daa4]
mov eax, dword [0x79daac]
mov edx, dword [0x79daa0]
sub eax, ecx
push 0
push dword [ebx + 4]
push eax
mov eax, dword [0x79daa8]
sub eax, edx
push eax
push ecx
push edx
push 0x56000000
push 0
push 0x77415c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 1
mov dword [ebx + 0x58], eax
push dword [ebx + 0xa8]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x110
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0x1e8], 0x114
push 0
push eax
call fcn.0064cc00
add esp, 0xc
lea eax, [ebp - 0x1e8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x49b54e
cmp dword [ebp - 0x1e4], 6
jb 0x49b54e
push 0x5c
lea eax, [ebp - 0xd0]
push 0
push eax
call fcn.0064cc00
add esp, 0xc
cmp byte [edi], 0
jne 0x49b50c
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1ec], eax
test eax, eax
je 0x49b509
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x58
push eax
call esi
push 0x5a
push dword [ebp - 0x1ec]
mov dword [edi + 4], eax
call esi
push dword [ebp - 0x1ec]
mov dword [edi + 8], eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov byte [edi], 1
push 0x60
push dword [edi + 8]
push 0xd
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push str.Segoe_UI_Light
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0xb4]
push 0x20
push eax
call fcn.00660585
add esp, 0xc
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov esi, eax
test esi, esi
jne 0x49b5d2
push 0x5c
lea eax, [ebp - 0x70]
push 0
push eax
call fcn.0064cc00
add esp, 0xc
cmp byte [edi], 0
jne 0x49b5a1
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1ec], eax
test eax, eax
je 0x49b59e
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x58
push eax
call esi
push 0x5a
push dword [ebp - 0x1ec]
mov dword [edi + 4], eax
call esi
push dword [ebp - 0x1ec]
mov dword [edi + 8], eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov byte [edi], 1
push 0x60
push dword [edi + 8]
push 0xd
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push 0x774184
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x54]
push 0x20
push eax
call fcn.00660585
add esp, 0xc
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov esi, eax
mov eax, dword [ebx + 0xac]
test eax, eax
je 0x49b5e7
cmp eax, esi
je 0x49b5e7
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
mov dword [ebx + 0xac], esi
push dword [0x7a98c4]
mov ecx, dword [0x79daa4]
mov eax, dword [0x79daac]
mov edx, dword [0x79daa0]
sub eax, ecx
push 0
push dword [ebx + 4]
push eax
mov eax, dword [0x79daa8]
sub eax, edx
push eax
push ecx
push edx
push 0x56000000
push 0
push 0x77415c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 1
mov dword [ebx + 0x5c], eax
push dword [ebx + 0xac]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, ebx
call fcn.0049c120
push 0
mov ecx, ebx
call fcn.0049c510
lea eax, [ebp - 0x1f0]
mov ecx, ebx
push eax
call fcn.0049b840
push ecx
push dword [ebp - 0x1ec]
lea ecx, [ebx + 4]
push dword [ebp - 0x1f0]
call fcn.0049cdc0
push 0
push 0x2710
push 0x65
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetTimer]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00611399
mov esp, ebp
pop ebp
ret 0x10