Function at 0x412e50
Capabilities:
Check os version
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x477a0b
mov eax, dword fs:[0]
push eax
sub esp, 0x888
mov eax, dword [0x4a3f4c]
xor eax, esp
mov dword [esp + 0x884], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a3f4c]
xor eax, esp
push eax
lea eax, [esp + 0x89c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8b0]
mov ebp, ecx
mov ecx, eax
imul eax, eax, 0x78c
shl ecx, 9
lea ebx, [ecx + ebp + 0x6c]
cmp byte [ebx + 4], 0x3f
lea edi, [ebx + 4]
lea edx, [eax + ebp + 0x2006c]
mov dword [esp + 0x14], edx
jne 0x413066
mov eax, edi
mov esi, 0x4817b0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412ec5
sub eax, edx
cmp eax, 1
jle 0x412ed6
lea esi, [ebx + 5]
cmp eax, 2
jle 0x412ee1
cmp byte [esi], 0x5c
jne 0x412ee1
inc esi
push esi
push str.Incomplete_entry_nSelect_the_file_to_match_the___s__target.
lea eax, [esp + 0x4a0]
push 0x400
push eax
call fcn.0045a19e
add esp, 0x10
push 0x31
push 0x47c9d0
lea ecx, [esp + 0x4a0]
push ecx
mov ecx, ebp
call fcn.00434078
cmp eax, 2
je 0x4131aa
push 1
push 0
push ebp
push str.Program__.exe_.exeAll_files__._.
push 0
lea edx, [esp + 0x2a4]
push edx
push 0x481744
push 1
lea ecx, [esp + 0xd0]
call fcn.00445db1
push 0x4a6238
push 0x104
lea eax, [esp + 0x39c]
push eax
push str.C:Games
push str.root
push str.window
mov dword [esp + 0x8bc], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0xb0]
call fcn.00445532
push esi
push str.Select_the___s__target.
lea edx, [esp + 0x4a0]
lea ecx, [esp + 0x39c]
push 0x400
push edx
mov dword [eax + 0x2c], ecx
call fcn.0045a19e
add esp, 0x10
lea ecx, [esp + 0xb0]
call fcn.00445532
lea ecx, [esp + 0x498]
mov dword [eax + 0x30], ecx
lea ecx, [esp + 0xb0]
call fcn.00445532
lea ecx, [esp + 0xb0]
mov dword [eax + 0x1c], esi
call fcn.00446599
mov esi, 1
cmp eax, esi
jne 0x4131d4
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0xb4]
call fcn.004466c5
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0x298]
push eax
call fcn.0045bb00
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41302c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x104
lea ecx, [esp + 0x294]
push ecx
push edi
call fcn.0045bb00
mov edx, dword [esp + 0x20]
mov dword [ebp + 0x60], esi
add esp, 0xc
mov dword [edx + 0x780], esi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x8a4], 0xffffffff
call fcn.00445bf9
xor edi, edi
test byte [ebx + 0x164], 8
je 0x4130b5
push 0x90
lea eax, [esp + 0x24]
push edi
push eax
mov dword [esp + 0x28], 0x94
call fcn.0045af40
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x4130b5
cmp dword [esp + 0x20], 6
jb 0x4130b5
push str.self_elevation_n
call fcn.0041f800
push ebp
call fcn.00405130
add esp, 8
test dword [ebx + 0x16c], 0x400
jne 0x4130cd
test dword [ebx + 0x170], 0x40000000
je 0x41312b
cmp dword [ebp + 0x64], edi
je 0x41310d
push 0x41
push 0xea61
push 0xea84
call fcn.0041ede0
add esp, 0xc
cmp eax, 1
jne 0x41310d
mov edx, dword [esp + 0x8b0]
mov eax, dword [esp + 0x14]
push edx
push eax
mov esi, 0x4a6238
mov ecx, ebx
call fcn.0040c220
add esp, 8
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], edi
push str.export_virtual_registry_entry__d__n
call fcn.0041f800
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x774]
add esp, 4
call fcn.00408790
xor edi, edi
test byte [ebx + 0x188], 0x60
je 0x413174
cmp dword [ebp + 0x68], edi
je 0x413174
push 0x41
push 0xea61
push 0xeaa0
call fcn.0041ede0
add esp, 0xc
cmp eax, 1
jne 0x413174
mov edx, dword [esp + 0x8b0]
mov eax, dword [esp + 0x14]
push edx
push eax
mov esi, 0x4a6238
mov ecx, ebx
call fcn.0040c220
add esp, 8
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], edi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x8b0]
mov esi, dword [esp + 0x8ac]
lea ecx, [ebp + 0x6c]
push ecx
push edx
push ebx
push eax
push esi
call fcn.004123f0
add esp, 0x14
cmp dword [0x4a6010], edi
je 0x4131aa
cmp esi, 1
je 0x4131aa
mov ecx, ebp
call fcn.0040b0e0
mov ecx, dword [esp + 0x89c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x884]
xor ecx, esp
call fcn.0045a1dd
add esp, 0x894
ret 8
cmp eax, 2
jne 0x41304f
lea ecx, [esp + 0xb0]
mov dword [esp + 0x8a4], 0xffffffff
call fcn.00445bf9
jmp 0x4131aa