Function at 0x40b168
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffffe0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x101c], edx
mov dword [ebp - 0x1020], edx
mov dword [ebp - 0x1010], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov edi, 0x4107c4
xor eax, eax
push ebp
push 0x40b4b5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00406d68
test al, al
jne 0x40b241
mov dword [edi], 4
mov byte [edi + 0x104], 0x31
lea eax, [edi + 4]
mov edx, 0x40b4cc
call fcn.00404234
mov byte [edi + 0x105], 0x32
lea eax, [edi + 8]
mov edx, 0x40b4e0
call fcn.00404234
mov byte [edi + 0x106], 0x32
lea eax, [edi + 0xc]
mov edx, 0x40b4f8
call fcn.00404234
mov byte [edi + 0x107], 0x32
lea eax, [edi + 0x10]
mov edx, 0x40b518
call fcn.00404234
mov dword [0x4107a8], 1
mov eax, 0x4107bc
mov edx, 0x40b534
call fcn.00404234
mov eax, 0x4107c0
mov edx, dword [0x4107bc]
call fcn.00404234
mov eax, dword [ebp - 4]
call fcn.0040b5f0
jmp 0x40b484
mov eax, dword [ebp - 4]
call fcn.0040466c
mov ebx, eax
push ebx
push 0
push 0x40b544
push 0x40b548
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x4107a0], eax
push ebx
push 0
push 0x40b550
push 0x40b548
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x4107a4], eax
push ebx
push 0
push 0x40b558
push 0x40b548
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x4107a8], eax
cmp dword [0x4107a8], 1
jne 0x40b329
push ebx
push 0xfff
lea eax, [ebp - 0x100c]
push eax
push 0x40b564
push 0x40b574
push 0x40b548
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, 0x4107bc
lea edx, [ebp - 0x100c]
mov ecx, 0x1000
call fcn.00404450
push ebx
push 0xfff
lea eax, [ebp - 0x100c]
push eax
push 0x40b584
push 0x40b588
push 0x40b548
call sub.kernel32.dll_GetPrivateProfileStringA
mov eax, 0x4107b8
lea edx, [ebp - 0x100c]
mov ecx, 0x1000
call fcn.00404450
push dword [0x4107b8]
push 0x40b5a0
push dword [0x4107bc]
mov eax, 0x4107c0
mov edx, 3
call fcn.0040453c
push ebx
push 0
push 0x40b5a4
push 0x40b548
call sub.kernel32.dll_GetPrivateProfileIntA
mov dword [0x4107ac], eax
cmp dword [0x4107ac], 0
jle 0x40b356
mov edx, 0x40b5b8
mov eax, dword [ebp - 4]
call fcn.0040ba04
mov eax, dword [ebp - 4]
call fcn.0040be7c
xor eax, eax
mov dword [edi], eax
mov byte [ebp - 5], 0x31
mov eax, dword [ebp - 4]
call fcn.0040466c
push eax
push 0xfff
lea eax, [ebp - 0x100c]
push eax
push 0
lea eax, [ebp - 0x1014]
mov dl, byte [ebp - 5]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x1014]
lea eax, [ebp - 0x1018]
call fcn.00402f30
mov edx, 0x40b5c4
lea eax, [ebp - 0x1018]
mov cl, 2
call fcn.00402f00
lea edx, [ebp - 0x1018]
lea eax, [ebp - 0x1010]
call fcn.00404444
mov eax, dword [ebp - 0x1010]
call fcn.0040466c
push eax
push 0x40b5c8
call sub.kernel32.dll_GetPrivateProfileStringA
test eax, eax
je 0x40b484
mov al, byte [0x40b5c4]
push eax
lea eax, [ebp - 0x101c]
push eax
lea eax, [ebp - 0x1020]
lea edx, [ebp - 0x100c]
mov ecx, 0x1000
call fcn.00404450
mov eax, dword [ebp - 0x1020]
xor ecx, ecx
mov edx, 0x40b5e0
call fcn.0040a7ac
mov edx, dword [ebp - 0x101c]
lea eax, [ebp - 0xc]
mov ecx, 0x40b5ec
call fcn.004044c8
mov esi, 1
mov ecx, esi
mov edx, dword [ebp - 0xc]
mov eax, 0x40b5ec
call fcn.0040b008
mov ebx, eax
cmp esi, ebx
je 0x40b468
cmp dword [edi], 0x3f
je 0x40b468
mov eax, dword [edi]
lea eax, [edi + eax*4 + 4]
push eax
mov ecx, ebx
sub ecx, esi
mov edx, esi
mov eax, dword [ebp - 0xc]
call fcn.004046c4
mov eax, dword [edi]
mov dl, byte [ebp - 5]
mov byte [edi + eax + 0x104], dl
inc dword [edi]
lea esi, [ebx + 1]
mov eax, dword [ebp - 0xc]
call fcn.0040447c
cmp ebx, eax
jne 0x40b42b
inc byte [ebp - 5]
cmp byte [ebp - 5], 0x3a
jne 0x40b366
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b4bc
lea eax, [ebp - 0x1020]
mov edx, 2
call fcn.00404204
lea eax, [ebp - 0x1010]
call fcn.004041e0
lea eax, [ebp - 0xc]
call fcn.004041e0
ret