Function at 0x4ed100
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3e72
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x54f018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
cmp dword [edi + 0x14], 0x10
mov eax, dword [ebp + 0x10]
mov ebx, dword [edi + 0x10]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x290], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x294], 0
mov eax, ebx
jb 0x4ed165
mov eax, dword [edi]
jmp 0x4ed167
mov eax, edi
push 0
push 0x51d12c
push eax
call fcn.00401d40
add esp, 0xc
test eax, eax
jne 0x4ed182
test ebx, ebx
setne al
test eax, eax
sete al
test al, al
je 0x4ed1b1
mov edx, dword [ebp - 0x288]
push 0xffffffffffffffff
push 0
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
push edx
mov ecx, esi
mov byte [esi], 0
call fcn.00401460
jmp 0x4ed3e8
push 0x1ff
lea eax, [ebp - 0x20f]
push 0
push eax
mov byte [ebp - 0x210], 0
call sub.MSVCR100.dll_memset
mov eax, dword [ebp - 0x290]
add eax, 4
mov ebx, 0x10
add esp, 0xc
cmp dword [eax + 0x14], ebx
jb 0x4ed1e3
mov eax, dword [eax]
mov edx, dword [ebp - 0x288]
cmp dword [edx + 0x14], ebx
jb 0x4ed1f0
mov edx, dword [edx]
mov ecx, dword [ebp - 0x28c]
cmp dword [ecx + 0x14], ebx
jb 0x4ed1fd
mov ecx, dword [ecx]
cmp dword [edi + 0x14], ebx
jb 0x4ed204
mov edi, dword [edi]
push eax
push 0x200
lea eax, [ebp - 0x210]
push eax
push edx
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ebx, 0xf
xor edi, edi
lea eax, [ebp - 0x210]
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x21c], edi
mov byte [ebp - 0x22c], 0
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ed240
sub eax, edx
push eax
lea ecx, [ebp - 0x210]
push ecx
lea ecx, [ebp - 0x22c]
call fcn.004016d0
push 1
push edi
lea edx, [ebp - 0x284]
push edx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], edi
mov byte [ebp - 0x284], 0x3a
call fcn.004038f0
cmp eax, 0xffffffff
je 0x4ed2b0
lea eax, [ebp - 0x22c]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
push eax
mov ecx, esi
mov byte [esi], 0
call fcn.004013e0
cmp dword [ebp - 0x218], 0x10
jb 0x4ed3e8
mov ecx, dword [ebp - 0x22c]
push ecx
jmp 0x4ed3e0
mov eax, dword [ebp - 0x21c]
cmp eax, edi
jne 0x4ed2d5
push edi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
push 0x51d12c
mov ecx, esi
mov byte [esi], 0
call fcn.004016d0
jmp 0x4ed3d0
ja 0x4ed2e2
push str.invalid_string_position
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xout_of_range_char_const__]
cmp dword [ebp - 0x218], 0x10
mov eax, dword [ebp - 0x22c]
jae 0x4ed2f7
lea eax, [ebp - 0x22c]
cmp byte [eax], 0x5c
push edi
jne 0x4ed347
lea eax, [ebp - 0x264]
push eax
call fcn.004eac70
lea ecx, [ebp - 0x22c]
push ecx
push eax
lea edx, [ebp - 0x248]
push edx
mov byte [ebp - 4], 1
call fcn.00401cb0
add esp, 0x14
push eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 2
call fcn.004013e0
lea ecx, [ebp - 0x248]
call fcn.00432240
lea ecx, [ebp - 0x264]
jmp 0x4ed3b0
lea eax, [ebp - 0x280]
push eax
call fcn.004eac70
push 0x51d0e8
push eax
lea ecx, [ebp - 0x248]
push ecx
mov byte [ebp - 4], 3
call fcn.004040e0
lea edx, [ebp - 0x22c]
push edx
push eax
lea eax, [ebp - 0x264]
push eax
mov byte [ebp - 4], 4
call fcn.00401cb0
add esp, 0x20
push eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 5
call fcn.004013e0
lea ecx, [ebp - 0x264]
call fcn.00432240
lea ecx, [ebp - 0x248]
call fcn.00432240
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 0
call fcn.00432240
lea ecx, [ebp - 0x22c]
push ecx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
mov ecx, esi
mov byte [esi], 0
call fcn.004013e0
cmp dword [ebp - 0x218], 0x10
jb 0x4ed3e8
mov edx, dword [ebp - 0x22c]
push edx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e8d32
mov esp, ebp
pop ebp
ret 0x10