Function at 0x42c881
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push ebx
push str.quickLaunch__CIniFileParseImpl__LoadIniFile__lpszIniFile___s
mov edi, ecx
call fcn.0042ade0
pop ecx
pop ecx
test ebx, ebx
jne 0x42c8a8
push str.quickLaunch__CIniFileParseImpl__lpszIniFile_is_NULL
jmp 0x42ca3d
cmp dword [ebp + 0xc], 1
ja 0x42ca38
cmp dword [edi + 0x24], 0
je 0x42c8c5
push dword [edi + 0x24]
call fcn.004427e1
and dword [edi + 0x24], 0
pop ecx
lea esi, [edi + 0x28]
mov ecx, dword [esi]
mov eax, dword [ecx]
mov dword [ebp - 4], eax
cmp eax, ecx
je 0x42c8ea
lea ecx, [eax + 0x28]
call fcn.0042dc14
lea ecx, [ebp - 4]
call fcn.00404bde
mov eax, dword [ebp - 4]
cmp eax, dword [esi]
jne 0x42c8d3
mov ecx, esi
call fcn.0042dbf3
push ebx
lea esi, [edi + 0xc]
call fcn.004012f1
pop ecx
push eax
push ebx
mov ecx, esi
call fcn.00401a41
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], eax
test eax, eax
jne 0x42c922
cmp dword [esi + 0x14], 8
jb 0x42c918
mov eax, dword [esi]
jmp 0x42c91a
mov eax, esi
xor ecx, ecx
push ecx
push ecx
push 3
jmp 0x42c934
cmp dword [esi + 0x14], 8
jb 0x42c92c
mov eax, dword [esi]
jmp 0x42c92e
mov eax, esi
xor ecx, ecx
push ecx
push ecx
push 4
push ecx
push 7
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x42c988
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 2
jne 0x42c96a
cmp dword [esi + 0x14], 8
jb 0x42c95f
mov esi, dword [esi]
call edi
push eax
push esi
push str.quickLaunch__CIniFileParse__ini_file_not_exist__file___s__GetLastError___d
jmp 0x42c97b
cmp dword [esi + 0x14], 8
jb 0x42c972
mov esi, dword [esi]
call edi
push eax
push esi
push str.quickLaunch__CIniFileParse__failed_to_open_ini_file_for_read__file___s__GetLastError___d
call fcn.0042ada2
add esp, 0xc
jmp 0x42ca43
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp + 0xc], eax
cmp eax, 0x100000
jbe 0x42c9b4
cmp dword [esi + 0x14], 8
jb 0x42c9a3
mov esi, dword [esi]
push esi
push str.quickLaunch__CIniFileParseImpl__ini_file_is_too_large__file___s
call fcn.0042ada2
pop ecx
jmp 0x42ca42
lea esi, [eax + 2]
push 0x494588
push esi
call fcn.00444182
mov dword [edi + 0x24], eax
pop ecx
pop ecx
test eax, eax
jne 0x42c9d2
push str.quickLaunch__CIniFileParseImpl__failed_to_alloc_memory
jmp 0x42ca3d
test esi, esi
je 0x42c9dd
mov byte [eax], 0
inc eax
dec esi
jne 0x42c9d6
xor eax, eax
push eax
push eax
push eax
push ebx
mov dword [ebp + 8], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp + 8]
push eax
push dword [ebp + 0xc]
push dword [edi + 0x24]
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [edi + 0x24]
cmp byte [edx], 0xff
jne 0x42ca2b
cmp byte [edx + 1], 0xfe
jne 0x42ca2b
mov ecx, dword [ebp + 8]
shr ecx, 1
xor esi, esi
mov dword [edi + 0x30], 1
mov word [edx + ecx*2], si
xor eax, eax
inc eax
jmp 0x42ca45
mov eax, dword [ebp + 8]
and dword [edi + 0x30], 0
mov byte [edx + eax], 0
jmp 0x42ca26
push str.quickLaunch__CIniFileParseImpl__eParseMode_is_Invalid
call fcn.0042ada2
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8