Function at 0x423ec0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56bb06
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x5e2500]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
push 0x586788
lea ecx, [ebp - 0x2c]
call fcn.00404670
mov dword [ebp - 4], 0
push str.CheckOS
lea ecx, [ebp - 0x28]
call fcn.00404670
mov byte [ebp - 4], 1
push 0x58679c
lea ecx, [ebp - 0x20]
call fcn.00404670
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.00401fd0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.00401fd0
mov byte [ebp - 4], 4
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x24]
push ecx
mov ecx, 0x5e3e60
call fcn.0042e250
mov ecx, dword [ebp - 0x44]
add ecx, 0x1c
call fcn.004018f0
push eax
push 0x400
push 0x400
lea ecx, [ebp - 0x14]
call fcn.004025f0
push eax
push 0x5867a0
push str.MsgSupportedOS
lea ecx, [ebp - 0x24]
call fcn.004018f0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x14]
call fcn.00401cf0
mov dword [ebp - 0x10], 7
push 0x5e3e9c
lea ecx, [ebp - 0x1c]
call fcn.004025c0
mov byte [ebp - 4], 5
push 2
lea ecx, [ebp - 0x1c]
call fcn.00401ce0
sub eax, 2
push eax
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x1c]
call fcn.004030d0
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
push eax
push 0x5867c4
call fcn.00401b00
add esp, 8
mov byte [ebp - 0x2d], al
lea ecx, [ebp - 0x34]
call fcn.00402000
movzx ecx, byte [ebp - 0x2d]
test ecx, ecx
je 0x423ff5
push str._64_Bit
push 0x5867dc
lea ecx, [ebp - 0x1c]
call fcn.00402a70
lea ecx, [ebp - 0x18]
call fcn.00401fd0
mov byte [ebp - 4], 6
mov ecx, 0x5e3eb4
call fcn.00401f20
movzx edx, al
test edx, edx
jne 0x42407d
push 0x5e3eb4
push 0x5867e4
call fcn.00401b00
add esp, 8
movzx eax, al
test eax, eax
je 0x424065
push 0x1a6
lea ecx, [ebp - 0x38]
push ecx
mov ecx, 0x5e3c90
call fcn.00426f10
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x50]
push eax
lea ecx, [ebp - 0x18]
call fcn.00403d00
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x38]
call fcn.00402000
jmp 0x42407d
mov ecx, dword [0x5e3eb4]
push ecx
push 0x5867e8
lea edx, [ebp - 0x18]
push edx
call fcn.00403430
add esp, 0xc
cmp dword [ebp + 8], 0x12d
jne 0x424186
mov ecx, dword [ebp - 0x44]
add ecx, 0x1c
call fcn.004018f0
push eax
push 0x400
push 0x400
lea ecx, [ebp - 0x2c]
call fcn.004025f0
push eax
push 0x5867f4
push str.MsgOSWarning
lea ecx, [ebp - 0x24]
call fcn.004018f0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c]
call fcn.00401cf0
lea ecx, [ebp - 0x1c]
call fcn.004018f0
push eax
push 0x586814
lea ecx, [ebp - 0x2c]
call fcn.00402a70
mov ecx, 0x5e3ea0
call fcn.004018f0
push eax
push 0x586828
lea ecx, [ebp - 0x2c]
call fcn.00402a70
lea ecx, [ebp - 0x18]
call fcn.004018f0
push eax
push 0x586840
lea ecx, [ebp - 0x2c]
call fcn.00402a70
lea ecx, [ebp - 0x14]
call fcn.004018f0
push eax
push 0x586860
lea ecx, [ebp - 0x2c]
call fcn.00402a70
push 0x586884
push 0x586888
lea ecx, [ebp - 0x2c]
call fcn.00402a70
push 0x58689c
push 0x5868a0
lea ecx, [ebp - 0x2c]
call fcn.00402a70
cmp dword [ebp + 0x14], 0
je 0x424186
mov eax, dword [ebp - 0x2c]
push eax
push 0x5868ac
lea ecx, [ebp - 0x20]
push ecx
call fcn.00403430
add esp, 0xc
lea ecx, [ebp - 0x20]
call fcn.004018f0
push eax
lea ecx, [ebp - 0x28]
call fcn.004018f0
push eax
push 8
push 0x5e3e78
call fcn.0042b490
add esp, 0x10
cmp dword [ebp + 8], 0x12c
je 0x424195
cmp dword [ebp - 0x10], 6
jne 0x4241a1
mov dword [ebp + 8], 0x12c
jmp 0x4242b1
cmp dword [ebp + 8], 0x12e
jne 0x4242b1
mov ecx, dword [ebp - 0x44]
add ecx, 0x1c
call fcn.004018f0
push eax
push 0x400
push 0x400
lea ecx, [ebp - 0x2c]
call fcn.004025f0
push eax
push 0x5868e8
push str.MsgOSError
lea ecx, [ebp - 0x24]
call fcn.004018f0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x2c]
call fcn.00401cf0
lea ecx, [ebp - 0x1c]
call fcn.004018f0
push eax
push str._OSNAME_
lea ecx, [ebp - 0x2c]
call fcn.00402a70
mov ecx, 0x5e3ea0
call fcn.004018f0
push eax
push str._OSEDITION_
lea ecx, [ebp - 0x2c]
call fcn.00402a70
lea ecx, [ebp - 0x18]
call fcn.004018f0
push eax
push str._OSSERVICEPACK_
lea ecx, [ebp - 0x2c]
call fcn.00402a70
lea ecx, [ebp - 0x14]
call fcn.004018f0
push eax
push str._MsgSupportedOS_
lea ecx, [ebp - 0x2c]
call fcn.00402a70
push 0x586974
push 0x586978
lea ecx, [ebp - 0x2c]
call fcn.00402a70
push 0x58698c
push 0x586990
lea ecx, [ebp - 0x2c]
call fcn.00402a70
cmp dword [ebp + 0x14], 0
je 0x4242aa
mov edx, dword [ebp - 0x2c]
push edx
push str.Message_to_be_displayed_:__s
lea eax, [ebp - 0x20]
push eax
call fcn.00403430
add esp, 0xc
lea ecx, [ebp - 0x20]
call fcn.004018f0
push eax
lea ecx, [ebp - 0x28]
call fcn.004018f0
push eax
push 8
push 0x5e3e78
call fcn.0042b490
add esp, 0x10
mov dword [ebp + 8], 0x12e
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
lea edx, [ebp - 0x2c]
push edx
call fcn.004025c0
mov dword [ebp - 0x54], eax
mov ecx, 0x5e3c90
call fcn.0042b0b0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x18]
call fcn.00402000
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.00402000
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.00402000
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.00402000
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00402000
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.00402000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00402000
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 0x10