Function at 0x4021c0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x573ab4]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x104
lea eax, [ebp - 0x108]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x108]
push 0x5c
push ecx
call fcn.005059e0
add esp, 8
push str.Language.ini
lea edx, [ebp - 0x108]
push edx
mov byte [eax + 1], 0
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x57d29c]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x40223c
push 0x104
mov ecx, 0x57d29c
call fcn.00402760
mov eax, dword [0x57d29c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.IDS_ORIENTRUNNING_Error
push str.IDS_ORIENTRUNNING
push str.SideKey
call esi
mov eax, dword [0x57d2a0]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or edx, ecx
jge 0x40228f
push 0x104
mov ecx, 0x57d2a0
call fcn.00402760
mov eax, dword [0x57d2a0]
lea edx, [ebp - 0x108]
push edx
push 0x104
push eax
push str.Error
push str.IDS_CONNECTCAP
push str.SideKey
call esi
mov eax, dword [0x57d2a4]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x4022db
push 0x104
mov ecx, 0x57d2a4
call fcn.00402760
mov eax, dword [0x57d2a4]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.Error
push str.IDS_CONNECT
push str.SideKey
call esi
mov eax, dword [0x57d2a8]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or edx, ecx
jge 0x402327
push 0x104
mov ecx, 0x57d2a8
call fcn.00402760
mov eax, dword [0x57d2a8]
lea edx, [ebp - 0x108]
push edx
push 0x104
push eax
push str.Error
push str.IDS_RESETPOINT
push str.SideKey
call esi
mov eax, dword [0x57d2ac]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x402373
push 0x104
mov ecx, 0x57d2ac
call fcn.00402760
mov eax, dword [0x57d2ac]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.ReadError
push str.IDS_GETPARAMFAIL
push str.SideKey
call esi
mov eax, dword [0x57d2b0]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or edx, ecx
jge 0x4023bf
push 0x104
mov ecx, 0x57d2b0
call fcn.00402760
mov eax, dword [0x57d2b0]
lea edx, [ebp - 0x108]
push edx
push 0x104
push eax
push str.ReadError
push str.IDS_MSBCAP
push str.SideKey
call esi
mov eax, dword [0x57d2b4]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x40240b
push 0x104
mov ecx, 0x57d2b4
call fcn.00402760
mov eax, dword [0x57d2b4]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.ReadError
push str.IDS_ABOUT
push str.SideKey
call esi
mov eax, dword [0x57d2b8]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or edx, ecx
jge 0x402457
push 0x104
mov ecx, 0x57d2b8
call fcn.00402760
mov eax, dword [0x57d2b8]
lea edx, [ebp - 0x108]
push edx
push 0x104
push eax
push str.ReadError1
push str.IDS_NOSOFEKEY
push str.SideKey
call esi
mov eax, dword [0x57d2bc]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x4024a3
push 0x104
mov ecx, 0x57d2bc
call fcn.00402760
mov eax, dword [0x57d2bc]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.ReadError
push str.IDS_KEY_USE
push str.SideKey
call esi
mov eax, dword [0x57d2c0]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or edx, ecx
jge 0x4024ef
push 0x104
mov ecx, 0x57d2c0
call fcn.00402760
mov eax, dword [0x57d2c0]
lea edx, [ebp - 0x108]
push edx
push 0x104
push eax
push str.ReadError
push str.IDS_KEY_ORIENT
push str.SideKey
call esi
mov eax, dword [0x57d2c4]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x40253b
push 0x104
mov ecx, 0x57d2c4
call fcn.00402760
mov eax, dword [0x57d2c4]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.ReadError
push str.IDS_KEY_OK
push str.SideKey
call esi
mov eax, dword [0x57d2cc]
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or edx, ecx
jge 0x402587
push 0x104
mov ecx, 0x57d2cc
call fcn.00402760
mov eax, dword [0x57d2cc]
lea edx, [ebp - 0x108]
push edx
push 0x104
push eax
push str.ReadError
push str.IDS_KEY_SETTING
push str.SideKey
call esi
mov eax, dword [0x57d2c8]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, 0x104
or ecx, edx
jge 0x4025d3
push 0x104
mov ecx, 0x57d2c8
call fcn.00402760
mov eax, dword [0x57d2c8]
lea ecx, [ebp - 0x108]
push ecx
push 0x104
push eax
push str.ReadError
push str.IDS_KEY_CANCEL
push str.SideKey
call esi
push 0x57b4c8
push 0
push str.USE_KEY
push str.hardware
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 4]
mov dword [0x57b4c0], eax
xor ecx, ebp
xor al, al
pop esi
call fcn.005057b0
mov esp, ebp
pop ebp
ret