Function at 0x4019e0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40e817
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x47c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
push 0x4162e4
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x5c], ebx
call fcn.00408bfa
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x57]
mov byte [ebp - 0x58], bl
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 1
stosb byte es:[edi], al
call sub.MFC42.DLL_CString::CString_2
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [0x417988]
lea ecx, [ebp - 0x18]
push eax
push 0x4162d4
push ecx
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CString::Format
mov edx, dword [0x417988]
add esp, 0xc
lea eax, [ebp - 0x14]
push edx
push 0x4162c4
push eax
call sub.MFC42.DLL_CString::Format
xor esi, esi
add esp, 0xc
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x20], esi
call fcn.00408bbe
mov ecx, dword [ebp - 0x14]
push ebx
push ebx
push ecx
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CFile::Open
cmp eax, 1
jne 0x401a9d
mov dword [ebp - 0x20], eax
mov esi, eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
push 0x4e4
push 0x4162b4
mov word [edx], 0x3a8
lea ecx, [ebp - 0x364]
mov dword [ebp - 4], 4
mov word [eax], 0x3a8
call fcn.0040b7b0
cmp esi, ebx
mov byte [ebp - 4], 7
mov edi, 0x41628c
jne 0x401ad8
xor edi, edi
lea ecx, [ebp - 0x364]
call fcn.0040c160
cmp esi, ebx
lea eax, [ebp - 0x14]
jne 0x401aed
lea eax, [ebp - 0x18]
mov eax, dword [eax]
push 0x4e4
push edi
push eax
lea ecx, [ebp - 0x364]
call fcn.0040b830
test eax, eax
je 0x401c8b
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x23f]
mov byte [ebp - 0x240], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x417900
test ecx, ecx
stosb byte es:[edi], al
je 0x401b52
cmp byte [0x417900], bl
je 0x401b52
mov edi, dword [sym.imp.MSVCRT.dll_strncpy]
push 0x104
lea edx, [ebp - 0x240]
push ecx
push edx
call edi
add esp, 0xc
mov byte [ebp - 0x13d], bl
jmp 0x401b5e
mov edi, dword [sym.imp.MSVCRT.dll_strncpy]
mov byte [ebp - 0x240], bl
lea eax, [ebp - 0x240]
push 0x104
push eax
push 0x417900
push 0x416284
push 0x416278
lea ecx, [ebp - 0x364]
call fcn.0040c1c0
mov esi, dword [sym.imp.MSVCRT.dll__mbscmp]
lea ecx, [ebp - 0x240]
push 0x417900
push ecx
call esi
add esp, 8
test eax, eax
jne 0x401ba9
mov edx, dword [ebp + 0xc]
mov word [edx], 0x3a8
jmp 0x401bdb
lea eax, [ebp - 0x240]
push 0x416270
push eax
call esi
add esp, 8
test eax, eax
jne 0x401bc6
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
jmp 0x401bd5
lea edx, [ebp - 0x240]
push edx
call fcn.00409b80
add esp, 4
mov ecx, dword [ebp + 0xc]
mov word [ecx], ax
mov edx, 0x417900
test edx, edx
je 0x401c06
cmp byte [0x417900], bl
je 0x401c06
push 0x104
lea eax, [ebp - 0x240]
push edx
push eax
call edi
add esp, 0xc
mov byte [ebp - 0x13d], bl
jmp 0x401c0c
mov byte [ebp - 0x240], bl
lea ecx, [ebp - 0x240]
push 0x104
push ecx
push 0x417900
push 0x416268
push 0x416278
lea ecx, [ebp - 0x364]
call fcn.0040c1c0
lea edx, [ebp - 0x240]
push 0x417900
push edx
call esi
add esp, 8
test eax, eax
jne 0x401c51
mov eax, dword [ebp + 0x10]
mov word [eax], 0x3a8
jmp 0x401c91
lea ecx, [ebp - 0x240]
push 0x416270
push ecx
call esi
add esp, 8
test eax, eax
jne 0x401c74
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov edx, dword [ebp + 0x10]
mov word [edx], ax
jmp 0x401c91
lea eax, [ebp - 0x240]
push eax
call fcn.00409b80
mov ecx, dword [ebp + 0x10]
add esp, 4
mov word [ecx], ax
jmp 0x401c91
mov edi, dword [sym.imp.MSVCRT.dll_strncpy]
mov esi, dword [ebp + 0xc]
mov dx, word [esi]
push edx
call fcn.0040a5a0
mov word [esi], ax
mov esi, dword [ebp + 0x10]
mov ax, word [esi]
push eax
call fcn.0040a5a0
add esp, 8
lea ecx, [ebp - 0x364]
mov word [esi], ax
mov byte [ebp - 4], 4
call fcn.0040b820
push 0x41625c
lea ecx, [ebp - 0x24]
push 0x417988
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push ebx
push 0x416254
push 0x41624c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea ecx, [ebp - 0x24]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea eax, [esi - 1]
cmp eax, 0xc
ja case.0x401cfe.2
jmp dword [eax*4 + 0x402174]
mov edx, 0x41623c
test edx, edx
je 0x401e04
cmp byte [0x41623c], bl
je 0x401e04
push 0x32
push edx
jmp 0x401df6
mov ecx, 0x41622c
test ecx, ecx
je 0x401e04
cmp byte [0x41622c], bl
je 0x401e04
push 0x32
lea edx, [ebp - 0x58]
push ecx
push edx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov eax, 0x41621c
test eax, eax
je 0x401e04
cmp byte [0x41621c], bl
je 0x401e04
push 0x32
lea ecx, [ebp - 0x58]
push 0x41621c
push ecx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov edx, 0x41620c
test edx, edx
je 0x401e04
cmp byte [0x41620c], bl
je 0x401e04
push 0x32
push edx
jmp 0x401df6
mov ecx, 0x4161fc
test ecx, ecx
je 0x401e04
cmp byte [0x4161fc], bl
je 0x401e04
push 0x32
lea edx, [ebp - 0x58]
push ecx
push edx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov eax, 0x4161ec
test eax, eax
je 0x401e04
cmp byte [0x4161ec], bl
je 0x401e04
push 0x32
lea ecx, [ebp - 0x58]
push 0x4161ec
push ecx
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov edx, 0x4161dc
test edx, edx
je 0x401e04
cmp byte [0x4161dc], bl
je 0x401e04
push 0x32
push edx
lea eax, [ebp - 0x58]
push eax
call edi
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp case.0x401cfe.2
mov byte [ebp - 0x58], bl
lea edi, [ebp - 0x58]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401e4f
push 0x4161d0
lea ecx, [ebp - 0x24]
push 0x417988
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
lea edx, [ebp - 0x58]
push eax
push 0x32
push edx
push 0x417900
push 0x4161c4
push 0x4161bc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CString::CString
mov ecx, 7
mov esi, 0x4161a0
lea edi, [ebp - 0x13c]
mov eax, dword [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
mov cx, word [eax]
push ecx
call fcn.0040a560
add esp, 4
lea ecx, [ebp - 0x488]
push eax
push 0x416198
call fcn.0040b7b0
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x401ea8
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x14]
mov ax, word [edx]
push eax
call fcn.0040a560
add esp, 4
lea ecx, [ebp - 0x13c]
push eax
push ecx
jmp 0x401ebc
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
mov ax, word [edx]
push eax
call fcn.0040a560
add esp, 4
push eax
push ebx
push esi
lea ecx, [ebp - 0x488]
call fcn.0040b830
push ebx
lea ecx, [ebp - 0x488]
push 1
push ecx
lea ecx, [ebp - 0xec]
call fcn.004094e0
push 2
lea edx, [ebp - 0xac]
push 0x416190
push edx
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 9
call fcn.004095c0
push 2
lea eax, [ebp - 0x8c]
push 0x416188
push eax
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0xa
call fcn.00409730
push ebx
push 0x417bc0
push 0x416180
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xb
call fcn.00409800
push 2
lea ecx, [ebp - 0xbc]
push 0x416178
push ecx
lea ecx, [ebp - 0xec]
call fcn.004095c0
push 2
lea edx, [ebp - 0x7c]
push 0x41624c
push edx
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0xc
call fcn.00409730
push 0x416170
push 0x20
push 0x4179a0
push 0x416160
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xd
call fcn.00409880
push 2
lea eax, [ebp - 0x9c]
push 0x416150
push eax
lea ecx, [ebp - 0xec]
call fcn.004095c0
push 2
lea ecx, [ebp - 0xcc]
push 0x416148
push ecx
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xe
call fcn.00409730
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x11f]
mov byte [ebp - 0x120], bl
rep stosd dword es:[edi], eax
push 0x4162e4
lea edx, [ebp - 0x120]
push 0x32
push edx
mov byte [ebp - 4], 0xf
push 0x4161c4
stosb byte es:[edi], al
lea ecx, [ebp - 0xcc]
call fcn.00409880
lea edi, [ebp - 0x58]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x40200f
lea eax, [ebp - 0x58]
push ebx
push eax
call fcn.00409a30
add esp, 8
test eax, eax
jne 0x40203f
lea ecx, [ebp - 0x120]
test ecx, ecx
je 0x40203c
cmp byte [ebp - 0x120], bl
je 0x40203c
lea edx, [ebp - 0x120]
push 0x32
lea eax, [ebp - 0x58]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
mov byte [ebp - 0x27], bl
jmp 0x40203f
mov byte [ebp - 0x58], bl
lea ecx, [ebp - 0x58]
push ecx
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::operator
mov esi, dword [ebp + 8]
lea edx, [ebp - 0x1c]
push edx
mov ecx, esi
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x5c], 1
mov byte [ebp - 4], 0xe
call fcn.00409690
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xd
call fcn.00409690
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xc
call fcn.00409690
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0xb
call fcn.00409690
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xa
call fcn.00409690
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 9
call fcn.00409690
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 8
call fcn.00409540
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 4
call fcn.0040b820
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CFile::CFile
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret