Function at 0x44f978
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp word [eax + 0x62], 0
je 0x44feb9
mov eax, dword [ebp - 8]
cmp dword [eax], 0x85
mov eax, dword [ebp - 8]
cmp dword [eax], 0xf
jne 0x44f9c3
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
je 0x44f9c3
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x72]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov eax, dword [ebp - 4]
call fcn.0044f610
mov eax, dword [ebp - 8]
cmp dword [eax], 0x14
jne 0x44fcff
mov dl, 1
mov eax, dword [0x41356c]
call fcn.00415178
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x44fcf8
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov eax, dword [ebp - 0x10]
call fcn.0041574c
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
mov eax, dword [ebp - 0x10]
call fcn.004156cc
push eax
call sub.gdi32.dll_SaveDC
mov edi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.004260ac
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.00426068
push eax
push 0
push 0
call sub.gdi32.dll_CreateRectRgn
mov ebx, eax
push ebx
mov eax, dword [ebp - 0x10]
call fcn.004156cc
push eax
call sub.gdi32.dll_SelectClipRgn
push ebx
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x9c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x98]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004156cc
push eax
call sub.gdi32.dll_ExcludeClipRect
mov eax, dword [ebp - 4]
cmp byte [eax + 0x94], 0
jne 0x44fa9b
mov eax, dword [ebp - 8]
cmp dword [eax + 8], 0xfffffff2
jne 0x44fb6f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.00417a24
test eax, eax
jle 0x44fb21
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
call fcn.00417a3c
test eax, eax
jle 0x44fb21
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
mov eax, dword [eax + 0x3c]
pop edx
mov ecx, edx
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
jl 0x44fb6f
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax]
call dword [edx + 0x20]
imul esi
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00417a3c
pop edx
add edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
call fcn.00417a24
mov edx, eax
mov eax, dword [ebp - 0x10]
pop ecx
call fcn.00415314
inc esi
dec ebx
jne 0x44fae1
jmp 0x44fb6f
mov eax, dword [ebp - 8]
cmp dword [eax + 8], 0xfffffff2
je 0x44fb38
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x64]
call dword [ebx + 0x60]
jmp 0x44fb6f
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00415144
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
call fcn.00415028
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x10]
call fcn.004156a8
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x10]
call fcn.004153c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00417a24
mov edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0x10]
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 4]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.00426068
mov edx, eax
pop eax
sub edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0x10]
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00417a3c
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.00426068
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00417a3c
mov ecx, eax
mov eax, dword [ebp - 0x10]
pop edx
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.004260ac
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00417a3c
pop ecx
sub ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.004260ac
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00417a3c
sub ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.00426068
mov edx, eax
pop eax
sub edx, eax
mov eax, dword [ebp - 0x10]
pop ecx
call fcn.00415314
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.004260ac
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.00417a24
mov edx, eax
mov eax, dword [ebp - 0x10]
pop ecx
call fcn.00415314
push edi
mov eax, dword [ebp - 0x10]
call fcn.004156cc
push eax
call sub.gdi32.dll_RestoreDC
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x44fd82
mov eax, dword [ebp - 0x10]
call fcn.00402e98
ret
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0x84
jne 0x44fd66
mov edx, dword [ebp - 4]
cmp dword [edx + 0x28], 0
jle 0x44fd66
lea ecx, [ebp - 0x30]
mov edx, dword [ebp - 8]
movsx edx, word [edx + 0xa]
mov eax, dword [ebp - 8]
movsx eax, word [eax + 8]
call fcn.0040d340
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
call fcn.004261a8
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 4]
mov bx, 0xfff1
call fcn.00402fcc
mov esi, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], esi
mov eax, dword [ebp - 8]
dec esi
jne 0x44fd82
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x64]
call dword [ebx + 0x60]
jmp 0x44fd82
mov edx, dword [ebp - 8]
cmp eax, 5
jne 0x44fd76
mov eax, dword [ebp - 4]
call fcn.0044fec0
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x64]
call dword [ebx + 0x60]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0xf
jne 0x44fdb6
xor eax, eax
push ebp
push 0x44fda7
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x44feb9
mov edx, dword [ebp - 8]
cmp eax, 5
jne 0x44fdcb
mov eax, dword [ebp - 4]
call fcn.0044fec0
jmp 0x44feb9
mov edx, dword [ebp - 8]
cmp eax, 0x84
jne 0x44feb9
mov eax, dword [ebp - 4]
test byte [eax + 0x20], 0x10
jne 0x44feb9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x70], 0
je 0x44feb9
mov eax, dword [ebp - 8]
cmp dword [eax + 0xc], 1
jne 0x44feb9
lea ecx, [ebp - 0x30]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 8]
shr edx, 0x10
movsx edx, dx
mov eax, dword [ebp - 8]
mov ax, word [eax + 8]
and ax, 0xffff
movsx eax, ax
call fcn.0040d340
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x6c]
mov eax, ebx
call fcn.004261a8
lea edx, [ebp - 0x28]
mov eax, ebx
mov cl, 1
call fcn.00428534
mov ebx, eax
test ebx, ebx
sete byte [ebp - 9]
test ebx, ebx
jne 0x44fe84
xor eax, eax
push ebp
push 0x44fe78
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [0x4242ec]
call fcn.00402f80
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x44fe84
mov eax, dword [ebp - 4]
cmp word [eax + 0x8e], 0
je 0x44fea9
lea eax, [ebp - 9]
push eax
mov esi, dword [ebp - 4]
mov ecx, ebx
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x90]
call dword [esi + 0x8c]
cmp byte [ebp - 9], 0
je 0x44feb9
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret