Function at 0x403966
Capabilities:
Read .ini file

Disassembly:
push 0x24
mov eax, 0x40b6e7
call fcn.0040b401
mov ebx, ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
and dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
push eax
push 0x410054
xor ecx, ecx
call fcn.004042ad
test eax, eax
je 0x4039ad
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor al, al
call fcn.0040b44b
ret
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebx + 0xa38]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4039c9
lea eax, [ebp - 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push 0x104
add ebx, 0x318
push ebx
mov ebx, 0x40c6ec
push ebx
push str.gamename
mov esi, str.setup
push esi
call edi
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x4039fb
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x30]
push 0x104
add eax, 0x934
push eax
push ebx
push str.exefilename
push esi
call edi
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x403a1f
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x30]
push 0x104
add eax, 0x41c
push eax
push ebx
push str.ProductTitle
push esi
call edi
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x403a43
lea eax, [ebp - 0x28]
push eax
push 0xffffffffffffffff
push str.size
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x520], eax
jge 0x403a75
xor bl, bl
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, bl
jmp 0x4039a7
shl eax, 0xa
cmp dword [ebp - 0x14], 0x10
mov dword [ecx + 0x520], eax
mov eax, dword [ebp - 0x28]
jae 0x403a8a
lea eax, [ebp - 0x28]
push eax
push 0x104
add ecx, 0x524
push ecx
push ebx
push str.urlAgreement
push esi
call edi
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x403aac
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x30]
push 0x104
add eax, 0x628
push eax
push ebx
push str.uninstname
push esi
call edi
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x403ad0
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x30]
push 0x104
add eax, 0x72c
push eax
push ebx
push str.Publisher
push esi
call edi
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
jae 0x403af4
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x30]
push 0x104
add eax, 0x830
push eax
push ebx
push str.Contact
push esi
call edi
mov bl, 1
jmp 0x403a61