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, 0x4489bc
mov eax, 0x44048a
call fcn.0042bfbc
mov eax, 2
cmp eax, 9
ja case.default.0x41086e
jmp dword [eax*4 + 0x410875]
xor eax, eax
mov dword [0x4489b4], eax
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 1
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 2
mov dword [0x4489b0], 0x4423a0
jmp 0x410993
mov dword [0x4489b4], 3
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 4
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 5
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 6
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 7
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 8
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
mov dword [0x4489b4], 9
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
jmp 0x410993
xor eax, eax
mov dword [0x4489b4], eax
mov eax, dword [0x4489b0]
mov dword [0x4489b0], eax
push 0x4404ad
push 0
call sub.USER32.dll_FindWindowA
test eax, eax
je 0x4109d7
mov eax, dword [0x4489b0]
mov eax, dword [eax + 4]
mov edx, dword [0x4489b0]
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 0x410dad
call fcn.00418856
test eax, eax
jne 0x4109ec
push dword [ebx]
call fcn.004184c4
pop ecx
test eax, eax
je 0x410a21
mov eax, dword [0x4489b0]
mov eax, dword [eax + 0xc]
mov edx, dword [0x4489b0]
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 0x410dad
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.0042d2c4
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 0x410afb
mov eax, dword [0x4489b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x4489b0]
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 0x410dad
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 0x410b52
mov eax, dword [0x4489b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x4489b0]
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 0x410dad
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 0x410ba9
mov eax, dword [0x4489b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x4489b0]
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 0x410dad
push 0x10
lea eax, [ebp - 0xb4]
push eax
push 0x440314
call fcn.0042e93c
add esp, 0xc
mov dword [ebp - 0xac], eax
push 0x10
lea eax, [ebp - 0xb4]
push eax
push 0x44031d
call fcn.0042e93c
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 0x410c48
cmp word [edi], 0x11
je 0x410c48
cmp word [edi], 5
je 0x410c48
mov eax, dword [0x4489b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x4489b0]
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 0x410dad
mov ax, word [edi]
sub ax, 5
je 0x410c77
sub ax, 7
je 0x410c5f
sub ax, 5
je 0x410c6b
jmp 0x410c81
mov dword [0x4489b8], 0x5e
jmp 0x410c81
mov dword [0x4489b8], 0x5f
jmp 0x410c81
mov dword [0x4489b8], 0x60
mov eax, dword [0x4489b8]
sub eax, 0x5e
je 0x410c8f
dec eax
je 0x410c8f
dec eax
mov eax, 0x4489c6
mov dword [0x4489c6], 0x94
push eax
call sub.KERNEL32.dll_GetVersionExA
mov eax, dword [ebx]
movsx eax, byte [eax]
cmp eax, 0x41
je 0x410cb8
mov eax, dword [ebx]
movsx eax, byte [eax]
cmp eax, 0x61
jne 0x410cf5
mov eax, dword [ebx]
movsx eax, byte [eax + 1]
cmp eax, 0x3a
jne 0x410cf5
mov eax, dword [0x4489b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [0x4489b0]
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 0x410dad
mov word [ebp - 0x98], 8
mov word [ebp - 0x98], 0x14
push 0
push 0x4473fc
push 0
lea eax, [ebp - 0x88]
push eax
call fcn.00421fa4
add esp, 0x10
mov dword [ebp - 0x88], 0x4404d0
mov dword [ebp - 0x84], 0x440518
mov eax, dword [0x448d1c]
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 [0x448d1c]
dec dword [eax]
push 0
lea eax, [ebp - 0x88]
push eax
call fcn.00422211
add esp, 8
pop eax
mov edx, dword [ebp - 0xa8]
mov dword fs:[0], edx
jmp 0x410dad
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret