Function at 0x440060
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45dbf8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov eax, dword [ebp + 8]
cmp eax, 0x111
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], 0
jne 0x4400b4
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edi]
push ecx
push edx
mov ecx, edi
call dword [eax + 0x70]
test eax, eax
je 0x4401ad
mov dword [ebp - 0x10], 1
jmp case.0x4402d8.38
cmp eax, 0x4e
jne 0x4400e2
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
je 0x4401ad
mov edx, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, edi
call dword [edx + 0x74]
test eax, eax
jne case.0x4402d8.38
jmp 0x4401ad
cmp eax, 6
mov esi, dword [ebp + 0x10]
jne 0x440106
push 1
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
mov ebx, dword [ebp + 0xc]
push eax
push ebx
push edi
call fcn.0043f750
jmp 0x44012e
cmp eax, 0x20
jne 0x44012b
mov ecx, esi
shr ecx, 0x10
movsx edx, si
push ecx
push edx
push edi
call fcn.0043f7c0
test eax, eax
je 0x44012b
mov dword [ebp - 0x10], 1
jmp case.0x4402d8.38
mov ebx, dword [ebp + 0xc]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], eax
xor eax, edx
and eax, 0x1ff
push 7
mov dword [ebp + 0x10], eax
call fcn.0045a0e0
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x476718]
lea eax, [eax*4 + 0x476718]
cmp edx, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
jne 0x440198
cmp ecx, dword [eax + 8]
jne 0x440198
mov ecx, dword [eax + 4]
push 7
mov dword [ebp + 0x10], ecx
call fcn.0045a160
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4401ad
cmp dword [ebp + 8], 0xc000
jb 0x4402a9
jmp 0x4406b3
xor ebx, ebx
cmp ecx, ebx
mov dword [eax], edx
mov dword [eax + 8], ecx
jne 0x4401d0
push 7
mov dword [eax + 4], ebx
call fcn.0045a160
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
jmp 0x4401d0
cmp edx, 0xc000
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
jae 0x440238
mov edx, dword [ecx + 4]
mov dword [ebp + 0x10], edx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
cmp dword [ebx + 0x10], 0
je 0x440213
cmp eax, dword [ebx]
je 0x4401ff
add ebx, 0x18
jmp 0x4401f0
cmp edx, dword [ebx + 4]
jne 0x4401fa
cmp ecx, dword [ebx + 8]
jb 0x4401fa
cmp ecx, dword [ebx + 0xc]
ja 0x4401fa
mov dword [ebp + 0x10], ebx
jmp 0x440218
xor eax, eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
test eax, eax
mov dword [ebp + 0x10], eax
jne 0x440296
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x14], eax
jne 0x4401c2
mov eax, dword [ebp - 0x18]
jmp 0x4401a3
mov eax, dword [ecx + 4]
mov dword [ebp - 0x24], 0xc000
mov dword [ebp + 0x10], eax
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
cmp dword [ebx + 0x10], 0
je 0x440274
cmp eax, dword [ebx]
je 0x440260
add ebx, 0x18
jmp 0x440251
cmp edx, dword [ebx + 4]
jne 0x44025b
cmp ecx, dword [ebx + 8]
jb 0x44025b
cmp ecx, dword [ebx + 0xc]
ja 0x44025b
mov dword [ebp + 0x10], ebx
jmp 0x440279
xor eax, eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
test eax, eax
mov dword [ebp + 0x10], eax
je 0x440222
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 8]
cmp dword [ecx], edx
je 0x4406a0
add eax, 0x18
jmp 0x440242
mov ecx, dword [ebp - 0x18]
push 7
mov dword [ecx + 4], eax
call fcn.0045a160
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 8], 0x1a
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x10]
mov dword [ebp + 8], eax
jne 0x4402ce
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, dword [ebp + 0x10]
cmp al, 4
mov eax, dword [ebp + 8]
sbb edx, edx
and edx, 0xfffffff0
add edx, 0x2f
dec edx
cmp edx, 0x30
ja case.0x4402d8.38
jmp dword [edx*4 + 0x4406e4]
push ebx
call fcn.00447040
push eax
mov ecx, edi
call dword [ebp + 8]
jmp 0x4406bc
push ebx
mov ecx, edi
call eax
jmp 0x4406bc
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
mov edx, esi
shr edx, 0x10
movsx ecx, si
push edx
push ecx
push eax
mov ecx, edi
call dword [ebp + 8]
jmp 0x4406bc
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
push esi
push eax
mov ecx, edi
call dword [ebp + 8]
jmp 0x4406bc
lea ecx, [ebp - 0x30]
call fcn.00447450
mov edx, dword [esi + 4]
xor ebx, ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x2c], edx
call fcn.0043d0c0
mov eax, dword [esi]
mov esi, dword [esi + 8]
push eax
mov byte [ebp - 4], 1
mov dword [ebp - 0x48], eax
call fcn.0043db40
cmp eax, ebx
jne 0x44036d
lea eax, [ebp - 0x64]
push esi
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call dword [ebp + 8]
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0
call fcn.0043e9d0
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0xffffffff
call fcn.00447470
jmp case.0x4402d8.38
lea ecx, [ebp - 0x30]
call fcn.00447450
mov ecx, dword [esi + 4]
mov esi, dword [esi + 8]
push esi
lea edx, [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
push edx
mov ecx, edi
mov dword [ebp - 4], 2
call dword [ebp + 8]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0xffffffff
call fcn.00447470
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
mov ecx, ebx
shr ecx, 0x10
push ecx
movzx edx, bx
push eax
push edx
mov ecx, edi
call dword [ebp + 8]
jmp 0x4406bc
mov ecx, ebx
shr ecx, 0x10
movzx edx, bx
push ecx
push edx
jmp 0x4406b8
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
mov ecx, esi
shr ecx, 0x10
push ecx
movsx edx, si
push edx
push eax
mov ecx, edi
call dword [ebp + 8]
jmp 0x4406bc
push esi
mov ecx, edi
call eax
jmp 0x4406bc
push esi
call fcn.004440b0
push eax
mov eax, ebx
shr eax, 0x10
movzx ecx, bx
push eax
push ecx
mov ecx, edi
call dword [ebp + 8]
jmp 0x4406bc
mov ecx, edi
call eax
jmp case.0x4402d8.38
push ebx
mov ecx, edi
call eax
jmp case.0x4402d8.38
mov edx, esi
shr edx, 0x10
movsx ecx, dx
movsx edx, si
push ecx
push edx
mov ecx, edi
call eax
jmp case.0x4402d8.38
mov ecx, esi
shr ecx, 0x10
push ecx
movzx edx, si
push edx
push ebx
mov ecx, edi
call eax
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
push 1
mov ebx, eax
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
mov edx, dword [edi + 0x1c]
push ebx
push eax
xor eax, eax
cmp edx, esi
sete al
mov ecx, edi
push eax
call dword [ebp + 8]
jmp case.0x4402d8.38
push ebx
call fcn.00447040
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push ebx
call fcn.004440b0
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
mov ecx, esi
shr ecx, 0x10
movzx edx, si
push ecx
push edx
push ebx
call fcn.004440b0
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
mov ecx, esi
shr ecx, 0x10
push ecx
movzx edx, si
push edx
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
movsx eax, si
shr esi, 0x10
push 1
mov dword [ebp - 0x28], eax
movsx esi, si
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
mov ecx, dword [ebp - 0x28]
push esi
push ecx
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push ebx
mov ecx, eax
call fcn.00444790
push esi
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
push eax
push ebx
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push 1
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
mov edx, ebx
shr edx, 0x10
push edx
push eax
movzx eax, bx
push eax
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
movsx edx, bx
shr ebx, 0x10
cmp dword [ecx + 0x10], 0x1d
mov dword [ebp + 0xc], edx
movsx ebx, bx
jne 0x44061c
push 1
call fcn.0043d1e0
push esi
mov ecx, eax
call fcn.00444790
mov ecx, dword [ebp + 0xc]
push eax
push ebx
push ecx
mov ecx, edi
call dword [ebp + 8]
jmp case.0x4402d8.38
push ebx
push edx
mov ecx, edi
call eax
jmp case.0x4402d8.38
movsx ecx, si
shr esi, 0x10
movsx edx, si
push edx
push ecx
jmp 0x4406b8
mov ecx, edi
call eax
jmp 0x4406bc
push esi
push ebx
mov ecx, edi
call eax
jmp case.0x4402d8.38
push esi
mov ecx, edi
call eax
jmp case.0x4402d8.38
push esi
mov edx, ebx
shr edx, 0x10
movzx ecx, bx
push edx
push ecx
mov ecx, edi
call eax
jmp case.0x4402d8.38
movsx ecx, si
shr esi, 0x10
movsx edx, si
push edx
push ecx
push ebx
mov ecx, edi
call eax
jmp case.0x4402d8.38
push esi
push ebx
mov ecx, edi
call eax
mov dword [ebp - 0x10], 1
jmp case.0x4402d8.38
movzx ecx, si
shr esi, 0x10
push esi
push ecx
mov edx, ebx
shr edx, 0x10
movzx ecx, bx
push edx
push ecx
mov ecx, edi
call eax
test eax, eax
mov dword [ebp - 0x10], eax
jne case.0x4402d8.38
jmp 0x4401ad
mov edx, dword [ebp - 0x18]
push 7
mov dword [edx + 4], eax
call fcn.0045a160
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x14]
push esi
push ebx
mov ecx, edi
call eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4406cb
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 1
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10