Function at 0x4166f7
Capabilities:
Read .ini file

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffcb4
mov esi, eax
mov edi, 0x20
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00446208
add esp, 8
push 0x45dcc8
lea edx, [esp + 0x148]
push edx
call fcn.00446208
add esp, 8
mov ecx, 0x452c66
lea edx, [esp + 0x40]
lea eax, [esp + 0x144]
call fcn.004455ca
lea eax, [esp + 0x144]
call fcn.00445470
test al, al
jne 0x416777
xor eax, eax
push eax
mov dl, byte [esp + 0x148]
test dl, dl
je 0x416771
lea ecx, [esp + 0x148]
push ecx
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
pop eax
jmp 0x416bcb
push 0
mov ecx, 0x4529fb
mov edx, 0x452e08
lea eax, [esp + 0x148]
call fcn.00445c9e
test al, al
je 0x416975
push 0
call fcn.0044f400
pop ecx
mov ebp, eax
mov dword [esp], ebp
push 0x452e11
add esp, 0xfffffffc
xor edx, edx
mov dword [esp], edx
mov ecx, 0x452e08
lea edx, [esp + 0x14c]
lea eax, [esp + 0xc]
call fcn.00445db0
push 0x452e1a
add esp, 0xfffffffc
xor ecx, ecx
mov dword [esp], ecx
mov ecx, 0x452e08
lea edx, [esp + 0x14c]
lea eax, [esp + 0x10]
call fcn.00445db0
push 0x452e21
add esp, 0xfffffffc
xor eax, eax
mov ecx, 0x452e08
mov dword [esp], eax
lea eax, [esp + 0x14]
lea edx, [esp + 0x14c]
call fcn.00445d25
push 0x452e2a
add esp, 0xfffffffc
mov dword [esp], 0x15180
mov ecx, 0x452e08
lea edx, [esp + 0x14c]
lea eax, [esp + 0x18]
call fcn.00445d25
mov dl, 0x7f
xor ecx, ecx
mov byte [esp + 0x34], dl
mov edx, 0x452e08
mov cl, byte [esp + 0x34]
mov dword [esp + 0x38], ecx
mov ecx, 0x452e31
push dword [esp + 0x38]
lea eax, [esp + 0x148]
call fcn.00445c49
mov ebx, eax
and bl, 0x7f
mov byte [esp + 0x3c], bl
mov al, byte [esp + 0x3c]
mov byte [esp + 0x3d], al
add esp, 0xfffffffc
mov edx, dword [esp + 4]
mov dword [esp], edx
add esp, 0xfffffffc
lea edx, [esp + 8]
mov eax, esp
call fcn.00443826
add esp, 0xfffffffc
lea edx, [esp + 0xc]
mov eax, esp
call fcn.00443855
add esp, 0xfffffffc
mov ecx, dword [esp + 0x14]
mov dword [esp], ecx
add esp, 0xfffffffc
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
add esp, 0xfffffffc
mov edx, dword [esp + 0x24]
mov dword [esp], edx
add esp, 0xfffffffc
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
add esp, 0xfffffffc
mov al, byte [esp + 0x5d]
mov byte [esp], al
call fcn.004438a6
test al, al
jne 0x416975
push 0
mov ecx, 0x452e3a
mov edx, 0x452e08
lea eax, [esp + 0x148]
call fcn.00445c49
sub eax, 1
jb 0x416975
je 0x4168f6
dec eax
je 0x41694e
jmp 0x416975
lea edx, [esp + 0x144]
push edx
push 0x103
lea ecx, [esp + 0x48]
push ecx
push 0x45298a
push 0x452e43
push 0x452e08
call sub.KERNEL32.dll_GetPrivateProfileStringA
lea edx, [esp + 0x40]
mov eax, esi
call fcn.004171e9
mov cl, byte [esp + 0x144]
test cl, cl
je 0x416bbc
lea eax, [esp + 0x144]
push eax
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
jmp 0x416bbc
xor eax, eax
push eax
mov dl, byte [esp + 0x148]
test dl, dl
je 0x41696f
lea ecx, [esp + 0x148]
push ecx
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
pop eax
jmp 0x416bcb
push 0
mov ecx, 0x4529fb
mov edx, 0x452d56
lea eax, [esp + 0x148]
call fcn.00445c9e
test al, al
je 0x416b72
lea edx, [esp + 0x144]
push edx
push 0x103
lea ecx, [esp + 0x250]
push ecx
push 0x45298a
push 0x452d56
push 0x452d56
call sub.KERNEL32.dll_GetPrivateProfileStringA
xor ebx, ebx
push 0
mov ecx, 0x452e4b
mov edx, 0x452d56
lea eax, [esp + 0x148]
call fcn.00445c49
sub eax, 1
jb 0x4169ee
je 0x416a2f
dec eax
je 0x416a5e
dec eax
je 0x416a9c
jmp 0x416ac9
lea eax, [esp + 0x248]
push eax
call fcn.00446238
pop ecx
push eax
lea edx, [esp + 0x24c]
push edx
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x416a14
mov eax, dword [esi + 4]
add eax, 4
jmp 0x416a19
mov eax, 0x45298a
push eax
call fcn.00446254
add esp, 0xc
test eax, eax
sete bl
and ebx, 1
jmp 0x416ac9
lea eax, [esp + 0x248]
push eax
mov edx, dword [esi + 4]
test edx, edx
je 0x416a46
mov ecx, dword [esi + 4]
add ecx, 4
jmp 0x416a4b
mov ecx, 0x45298a
push ecx
call fcn.004463f0
add esp, 8
test eax, eax
setne bl
and ebx, 1
jmp 0x416ac9
lea eax, [esp + 0x248]
push eax
call fcn.00446238
pop ecx
push eax
lea edx, [esp + 0x24c]
push edx
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x416a84
mov eax, dword [esi + 4]
add eax, 4
jmp 0x416a89
mov eax, 0x45298a
push eax
call fcn.00446254
add esp, 0xc
test eax, eax
setne bl
and ebx, 1
jmp 0x416ac9
lea eax, [esp + 0x248]
push eax
mov edx, dword [esi + 4]
test edx, edx
je 0x416ab3
mov ecx, dword [esi + 4]
add ecx, 4
jmp 0x416ab8
mov ecx, 0x45298a
push ecx
call fcn.004463f0
add esp, 8
test eax, eax
sete bl
and ebx, 1
test bl, bl
je 0x416b72
push 0
mov ecx, 0x452a44
mov edx, 0x452d56
lea eax, [esp + 0x148]
call fcn.00445c49
sub eax, 1
jb 0x416b72
je 0x416af9
dec eax
je 0x416b4e
jmp 0x416b72
lea eax, [esp + 0x144]
push eax
push 0x103
lea edx, [esp + 0x48]
push edx
push 0x45298a
push 0x4529d3
push 0x452d56
call sub.KERNEL32.dll_GetPrivateProfileStringA
lea edx, [esp + 0x40]
mov eax, esi
call fcn.004171e9
mov cl, byte [esp + 0x144]
test cl, cl
je 0x416bbc
lea eax, [esp + 0x144]
push eax
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
jmp 0x416bbc
xor eax, eax
push eax
mov dl, byte [esp + 0x148]
test dl, dl
je 0x416b6f
lea ecx, [esp + 0x148]
push ecx
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
pop eax
jmp 0x416bcb
lea ebx, [esi + 0x1d]
mov al, byte [ebx]
test al, al
je 0x416b87
push ebx
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
lea edx, [esp + 0x144]
push edx
push ebx
call fcn.00446208
add esp, 8
mov al, 1
push eax
mov dl, byte [esp + 0x148]
test dl, dl
je 0x416bb9
lea ecx, [esp + 0x148]
push ecx
push 0
push 0
push 0
call sub.KERNEL32.dll_WritePrivateProfileStringA
pop eax
jmp 0x416bcb
mov edx, edi
add edi, 0xffffffff
test edx, edx
jne 0x416716
xor eax, eax
add esp, 0x34c
pop ebp
pop edi
pop esi
pop ebx
ret