Function at 0x4099fe
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
sub esp, 0x50
lea ebp, [esp - 4]
mov eax, dword [0x489218]
xor eax, ebp
mov dword [ebp + 0x50], eax
push 0x8c
mov eax, 0x4709c0
call fcn.00459800
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x28], eax
call fcn.0040a3c3
mov al, byte [eax]
xor ebx, ebx
test al, al
jne 0x409aad
lea eax, [ebp - 0x98]
push eax
call fcn.00408287
lea eax, [ebp - 0x90]
push str.CINIReader::GetNumber___start
push eax
mov dword [ebp - 4], ebx
call fcn.00406795
pop ecx
pop ecx
lea eax, [ebp + 0x34]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040677b
lea edi, [ebp + 0x34]
mov byte [ebp - 4], 1
call fcn.004064f6
push ebx
push 1
mov esi, edi
call fcn.0040866c
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x98]
call fcn.00406bd8
mov eax, dword [ebp + 0x20]
or dword [ebp + 0x30], 0xffffffff
cmp dword [eax + 0x1c], 8
jb 0x409bc6
mov eax, dword [eax + 8]
jmp 0x409bc9
lea eax, [ebp - 0x90]
push eax
mov dword [ebp - 4], 2
call fcn.004063dd
mov byte [ebp - 4], 3
call fcn.0040a3c3
lea ecx, [ebp]
call fcn.004062f3
mov byte [ebp - 4], 4
cmp dword [eax + 0x18], 8
jb 0x409ae0
mov esi, dword [eax + 4]
jmp 0x409ae3
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x479278
push eax
call fcn.00406795
pop ecx
pop ecx
push esi
push eax
call fcn.00406795
pop ecx
pop ecx
push 0x479270
push eax
call fcn.00406795
pop ecx
pop ecx
push str.CINIReader::GetNumber___start
push eax
call fcn.00406795
pop ecx
pop ecx
push ebx
push 1
lea esi, [ebp]
mov byte [ebp - 4], 3
call fcn.0040866c
lea eax, [ebp + 0x2c]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 5
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
test al, al
je 0x409b77
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x90]
call fcn.004062d9
push 0x32
push str..INIReader.cpp
push eax
push esi
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 6
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push ebx
push 1
lea esi, [ebp]
call fcn.0040866c
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 3
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 2
call fcn.00406348
or dword [ebp - 4], 0xffffffff
jmp 0x409a94
add eax, 8
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x409ffc
call fcn.0040a3c3
cmp byte [eax], 0
jne 0x409c5b
lea eax, [ebp - 0x98]
push eax
call fcn.00408287
push dword [ebp + 0x24]
mov ebx, 0x4792c8
push ebx
lea eax, [ebp - 0x90]
push str.CINIReader::GetNumber___sSection
push eax
mov dword [ebp - 4], 9
call fcn.00406795
pop ecx
pop ecx
push eax
call fcn.00406795
pop ecx
pop ecx
push eax
call fcn.00406a28
pop ecx
pop ecx
lea eax, [ebp + 0x34]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040677b
lea edi, [ebp + 0x34]
mov byte [ebp - 4], 0xa
call fcn.004064f6
push 0
push 1
mov esi, edi
call fcn.0040866c
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x98]
call fcn.00406bd8
jmp 0x409d91
lea eax, [ebp - 0x90]
push eax
mov dword [ebp - 4], 0xb
call fcn.004063dd
mov byte [ebp - 4], 0xc
call fcn.0040a3c3
lea ecx, [ebp]
call fcn.004062f3
mov byte [ebp - 4], 0xd
cmp dword [eax + 0x18], 8
jb 0x409c8e
mov esi, dword [eax + 4]
jmp 0x409c91
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x479278
push eax
call fcn.00406795
pop ecx
pop ecx
push esi
push eax
call fcn.00406795
pop ecx
pop ecx
push 0x479270
push eax
call fcn.00406795
pop ecx
pop ecx
push str.CINIReader::GetNumber___sSection
push eax
call fcn.00406795
pop ecx
pop ecx
mov ebx, 0x4792c8
push ebx
push eax
call fcn.00406795
pop ecx
pop ecx
push dword [ebp + 0x24]
push eax
call fcn.00406a28
pop ecx
pop ecx
push 0
push 1
lea esi, [ebp]
mov byte [ebp - 4], 0xc
call fcn.0040866c
lea eax, [ebp + 0x2c]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0xe
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
test al, al
je 0x409d40
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x90]
call fcn.004062d9
push 0x36
push str..INIReader.cpp
push eax
push esi
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0xf
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push 0
push 1
lea esi, [ebp]
call fcn.0040866c
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0xc
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0xb
call fcn.00406348
or dword [ebp - 4], 0xffffffff
jmp 0x409d91
call fcn.0040a3c3
cmp byte [eax], 0
jne 0x409e0f
lea eax, [ebp - 0x98]
push eax
call fcn.00408287
push dword [ebp + 0x28]
lea eax, [ebp - 0x90]
push ebx
push str.CINIReader::GetNumber___sParamName
push eax
mov dword [ebp - 4], 0x12
call fcn.00406795
pop ecx
pop ecx
push eax
call fcn.00406795
pop ecx
pop ecx
push eax
call fcn.00406a28
pop ecx
pop ecx
lea eax, [ebp + 0x34]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040677b
lea edi, [ebp + 0x34]
mov byte [ebp - 4], 0x13
call fcn.004064f6
push 0
push 1
mov esi, edi
call fcn.0040866c
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x98]
call fcn.00406bd8
jmp 0x409f40
lea eax, [ebp - 0x90]
push eax
mov dword [ebp - 4], 0x14
call fcn.004063dd
mov byte [ebp - 4], 0x15
call fcn.0040a3c3
lea ecx, [ebp]
call fcn.004062f3
mov byte [ebp - 4], 0x16
cmp dword [eax + 0x18], 8
jb 0x409e42
mov esi, dword [eax + 4]
jmp 0x409e45
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x479278
push eax
call fcn.00406795
pop ecx
pop ecx
push esi
push eax
call fcn.00406795
pop ecx
pop ecx
push 0x479270
push eax
call fcn.00406795
pop ecx
pop ecx
push str.CINIReader::GetNumber___sParamName
push eax
call fcn.00406795
pop ecx
pop ecx
push ebx
push eax
call fcn.00406795
pop ecx
pop ecx
push dword [ebp + 0x28]
push eax
call fcn.00406a28
pop ecx
pop ecx
push 0
push 1
lea esi, [ebp]
mov byte [ebp - 4], 0x15
call fcn.0040866c
lea eax, [ebp + 0x2c]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0x17
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
test al, al
je 0x409eef
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x90]
call fcn.004062d9
push 0x37
push str..INIReader.cpp
push eax
push esi
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0x18
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push 0
push 1
lea esi, [ebp]
call fcn.0040866c
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0x15
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x14
call fcn.00406348
or dword [ebp - 4], 0xffffffff
jmp 0x409f40
mov edx, dword [ebp + 0x20]
push 8
pop esi
cmp dword [edx + 0x1c], esi
jb 0x409f50
mov edx, dword [edx + 8]
jmp 0x409f53
add edx, 8
mov ecx, dword [ebp + 0x28]
cmp dword [ecx + 0x18], esi
jb 0x409f60
mov ecx, dword [ecx + 4]
jmp 0x409f63
add ecx, 4
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x18], esi
jb 0x409f70
mov eax, dword [eax + 4]
jmp 0x409f73
add eax, 4
push edx
push 0xffffffffffffffff
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp + 0x30], eax
call fcn.0040a3c3
cmp byte [eax], 0
jne 0x40a01e
lea eax, [ebp - 0x98]
push eax
call fcn.00408287
mov dword [ebp - 4], 0x1b
push dword [ebp + 0x30]
lea eax, [ebp - 0x90]
push ebx
push str.CINIReader::GetText___result
push eax
call fcn.00406795
pop ecx
pop ecx
push eax
call fcn.00406795
pop ecx
pop ecx
push eax
call fcn.00404699
lea eax, [ebp + 0x34]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040677b
lea edi, [ebp + 0x34]
mov byte [ebp - 4], 0x1c
call fcn.004064f6
push 0
push 1
mov esi, edi
call fcn.0040866c
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x98]
call fcn.00406bd8
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x50]
xor ecx, ebp
call fcn.0045509c
add ebp, 0x54
leave
ret 0xc
lea eax, [ebp - 0x90]
push eax
mov dword [ebp - 4], 0x1d
call fcn.004063dd
mov byte [ebp - 4], 0x1e
call fcn.0040a3c3
lea ecx, [ebp]
call fcn.004062f3
mov byte [ebp - 4], 0x1f
cmp dword [eax + 0x18], esi
jb 0x40a050
mov esi, dword [eax + 4]
jmp 0x40a053
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x479278
push eax
call fcn.00406795
pop ecx
pop ecx
push esi
push eax
call fcn.00406795
pop ecx
pop ecx
push 0x479270
push eax
call fcn.00406795
pop ecx
pop ecx
push str.CINIReader::GetText___result
push eax
call fcn.00406795
pop ecx
pop ecx
push ebx
push eax
call fcn.00406795
pop ecx
pop ecx
push dword [ebp + 0x30]
push eax
call fcn.00404699
push 0
push 1
lea esi, [ebp]
mov byte [ebp - 4], 0x1e
call fcn.0040866c
lea eax, [ebp + 0x1c]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 0x20
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
test al, al
je 0x40a0fb
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x90]
call fcn.004062d9
push 0x39
push str..INIReader.cpp
push eax
push esi
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 0x21
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push 0
push 1
lea esi, [ebp]
call fcn.0040866c
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 0x1e
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x1d
call fcn.00406348
jmp 0x409ffc