Function at 0x410842
Capabilities:
Check os version
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffb28
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov edi, 0x448448
mov eax, 0x44048a
call fcn.0042c028
xor eax, eax
cmp eax, 9
ja case.default.0x41086b
jmp dword [eax*4 + 0x410872]
xor eax, eax
mov dword [0x448440], eax
mov dword [0x44843c], 0x4423a0
jmp 0x410990
mov dword [0x448440], 1
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 2
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 3
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 4
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 5
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 6
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 7
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 8
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
mov dword [0x448440], 9
mov eax, dword [0x44843c]
mov dword [0x44843c], eax
jmp 0x410990
xor eax, eax
mov dword [0x448440], eax
mov dword [0x44843c], 0x4423a0
push 0x4404ad
push 0
call sub.USER32.dll_FindWindowA
test eax, eax
je 0x4109d4
mov eax, dword [0x44843c]
mov eax, dword [eax + 4]
mov edx, dword [0x44843c]
mov edx, dword [edx]
push 0
push 0x30
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
mov eax, 1
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
call fcn.004188c2
test eax, eax
jne 0x4109e9
push dword [ebx]
call fcn.00418530
pop ecx
test eax, eax
je 0x410a1e
mov eax, dword [0x44843c]
mov eax, dword [eax + 0xc]
mov edx, dword [0x44843c]
mov edx, dword [edx + 8]
push 0
push 0x10
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
mov eax, 1
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
push edi
mov esi, 0x440356
lea edi, [ebp - 0x4c8]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
pop edi
xor eax, eax
mov dword [ebp - 0xb4], eax
mov word [edi], 0
push 0x104
lea eax, [ebp - 0x1bc]
push eax
push 0
call sub.KERNEL32.dll_GetModuleFileNameA
push 0
push 0
lea eax, [ebp - 0x3c4]
push eax
lea eax, [ebp - 0x2c0]
push eax
lea eax, [ebp - 0x1bc]
push eax
call fcn.0042d330
add esp, 0x14
lea eax, [ebp - 0x4c8]
push eax
lea eax, [ebp - 0x3c4]
push eax
lea eax, [ebp - 0x2c0]
push eax
push 0x4404b0
lea eax, [ebp - 0x1bc]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0x14
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
lea eax, [ebp - 0x1bc]
push eax
call sub.KERNEL32.dll_CreateFileA
mov esi, eax
test esi, esi
jne 0x410af8
mov eax, dword [0x44843c]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x44843c]
mov edx, dword [edx + 0x164]
push 0
push 0x10
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
mov eax, 1
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
push 0
lea eax, [ebp - 0xb8]
push eax
push 8
push 0x440314
push esi
call sub.KERNEL32.dll_ReadFile
cmp dword [ebp - 0xb8], 8
je 0x410b4f
mov eax, dword [0x44843c]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x44843c]
mov edx, dword [edx + 0x164]
push 0
push 0x10
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
mov eax, 1
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
push 0
lea eax, [ebp - 0xb8]
push eax
push 8
push 0x44031d
push esi
call sub.KERNEL32.dll_ReadFile
cmp dword [ebp - 0xb8], 8
je 0x410ba6
mov eax, dword [0x44843c]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x44843c]
mov edx, dword [edx + 0x164]
push 0
push 0x10
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
mov eax, 1
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
push 0x10
lea eax, [ebp - 0xb4]
push eax
push 0x440314
call fcn.0042e9a8
add esp, 0xc
mov dword [ebp - 0xac], eax
push 0x10
lea eax, [ebp - 0xb4]
push eax
push 0x44031d
call fcn.0042e9a8
add esp, 0xc
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x4d8]
push eax
lea eax, [ebp - 0xb0]
push eax
call sub.KERNEL32.dll_FileTimeToSystemTime
mov ax, word [ebp - 0x4d0]
mov word [edi], ax
cmp word [edi], 0xc
je 0x410c45
cmp word [edi], 0x11
je 0x410c45
cmp word [edi], 5
je 0x410c45
mov eax, dword [0x44843c]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x44843c]
mov edx, dword [edx + 0x168]
push 0
push 0x10
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
mov eax, 1
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
mov ax, word [edi]
sub ax, 5
je 0x410c74
sub ax, 7
je 0x410c5c
sub ax, 5
je 0x410c68
jmp 0x410c7e
mov dword [0x448444], 0x5e
jmp 0x410c7e
mov dword [0x448444], 0x5f
jmp 0x410c7e
mov dword [0x448444], 0x60
mov eax, dword [0x448444]
sub eax, 0x5e
je 0x410c8c
dec eax
je 0x410c8c
dec eax
mov eax, 0x448452
mov dword [0x448452], 0x94
push eax
call sub.KERNEL32.dll_GetVersionExA
mov eax, dword [ebx]
movsx eax, byte [eax]
cmp eax, 0x41
je 0x410cb5
mov eax, dword [ebx]
movsx eax, byte [eax]
cmp eax, 0x61
jne 0x410cf2
mov eax, dword [ebx]
movsx eax, byte [eax + 1]
cmp eax, 0x3a
jne 0x410cf2
mov eax, dword [0x44843c]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x44843c]
mov edx, dword [edx + 0x18]
push 0
push 0x10
push eax
push edx
push 0
call sub.USER32.dll_MessageBoxExA
xor eax, eax
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
mov word [ebp - 0x98], 8
mov word [ebp - 0x98], 0x14
push 0
push 0x446e88
push 0
lea eax, [ebp - 0x88]
push eax
call fcn.00422010
add esp, 0x10
mov dword [ebp - 0x88], 0x4404d0
mov dword [ebp - 0x84], 0x440518
mov eax, dword [0x4487a8]
inc dword [eax]
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x88]
call dword [eax + 0x18]
pop ecx
push eax
mov eax, dword [0x4487a8]
dec dword [eax]
push 0
lea eax, [ebp - 0x88]
push eax
call fcn.0042227d
add esp, 8
pop eax
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410daa
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret