Function at 0x4010c3
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdec
push ebx
push ecx
push edx
push esi
push edi
mov esi, dword [ebp + 8]
cmp esi, 0x10000
jb 0x4013ac
mov edi, dword [esi]
add esi, 4
cmp edi, 0x10000
jb 0x4013ac
mov eax, 0x4089b8
cmp byte [eax], 0
jne 0x401105
call fcn.0040155e
call fcn.004015c2
mov edx, 0
mov dword [ebp - 0x10], edx
mov ebx, 0
mov dword [ebp - 4], 0
push ebx
push esi
push edi
push edx
mov edx, 0x407ad2
mov dword [ebp - 0x214], 0
cmp dword [ebx + esi + 0x14], 0
jne 0x401157
lea edx, [ebp - 0x210]
mov dword [ebp - 0x214], 0x1ff
lea eax, [ebp - 0x210]
mov ecx, 0x1ff
mov byte [eax], 0xff
inc eax
loop 0x40114e
mov byte [eax], 0
push 0x4089b8
push 0x200
lea eax, [ebp - 0x210]
push eax
push edx
push dword [esi + ebx]
push edi
call sub.kernel32.dll_GetPrivateProfileStringA
cmp eax, dword [ebp - 0x214]
mov eax, 0xb669fd29
jne 0x4011b6
cmp byte [0x407ae5], 0
jne 0x4011a4
cmp dword [ebx + esi + 0x14], 0
jne 0x4011a4
push dword [ebx + esi + 0x10]
lea eax, [ebp - 0x210]
push eax
call sub.kernel32.dll_lstrcpyA
mov eax, 0xb669fd29
cmp byte [0x407ad1], 0
je 0x401310
jmp 0x4013ac
lea edx, [ebp - 0x210]
cmp byte [edx], 0
je 0x4011d5
cmp byte [edx], 0x3b
je 0x4011cb
add edx, 1
jmp 0x4011bc
dec edx
cmp byte [edx], 0x20
je 0x4011cb
mov byte [edx + 1], 0
cmp dword [ebx + esi + 0x14], 0
je 0x4012e0
mov dword [ebp - 8], 0
xor ah, ah
lea edx, [ebp - 0x210]
cmp word [edx], 0x7830
jne 0x4011fb
add edx, 2
inc ah
mov al, byte [edx]
inc edx
cmp al, 0
je 0x401279
cmp al, 0x2e
je 0x4011fb
cmp al, 0x30
jb 0x401279
cmp al, 0x39
jbe 0x4011fb
cmp al, 0x68
je 0x401228
cmp al, 0x48
je 0x401228
cmp al, 0x41
jl 0x401279
cmp al, 0x46
jle 0x40122c
cmp al, 0x61
jl 0x401279
cmp al, 0x66
jle 0x40122c
jmp 0x401279
mov byte [edx - 1], 0
lea edx, [ebp - 0x210]
or ah, ah
je 0x401239
add edx, 2
xor eax, eax
movzx ecx, byte [edx]
inc edx
cmp ecx, 0
je 0x40135e
cmp ecx, 0x30
jl 0x40135e
or ecx, 0x20
sub ecx, 0x30
cmp ecx, 9
jg 0x401263
shl eax, 4
add eax, ecx
jmp 0x40123b
sub ecx, 0x27
or ecx, ecx
jb 0x40135e
cmp ecx, 0xf
ja 0x40135e
jmp 0x40125c
or ah, ah
jne 0x40122c
lea edx, [ebp - 0x210]
mov dword [ebp - 0xc], edx
dec edx
inc edx
mov al, byte [edx]
cmp al, 0x20
je 0x401287
cmp al, 0x2d
jne 0x401297
inc dword [ebp - 8]
jmp 0x401287
cmp al, 0
je 0x401306
mov dword [ebp - 0xc], edx
mov al, byte [edx]
inc edx
cmp al, 0
je 0x401306
cmp al, 0x2e
jne 0x40129e
mov byte [edx - 1], 0
mov ecx, 1
mov al, byte [edx]
inc edx
or al, al
je 0x401306
sub al, 0x30
jl 0x401306
cmp al, 9
jg 0x401306
push edx
movzx esi, al
mov eax, dword [ebp - 4]
mov edx, 0xa
mul edx
add eax, esi
mov dword [ebp - 4], eax
mov eax, 0xa
mul ecx
mov ecx, eax
pop edx
jmp 0x4012b2
pushal
mov ecx, dword [ebx + esi + 0x18]
mov eax, dword [ebx + esi + 4]
cmp eax, 0x100000
jb 0x401300
mov ebx, eax
push ecx
lea eax, [ebp - 0x210]
push eax
push ebx
call sub.kernel32.dll_lstrcpynA
popal
jmp 0x401391
push ecx
push dword [ebp - 0xc]
call fcn.004056e0
pop ecx
pop edx
pop edi
pop esi
pop ebx
cmp eax, 0xb669fd29
jne 0x401336
inc dword [ebp - 0x10]
mov eax, dword [ebx + esi + 0x10]
mov dword [ebx + esi + 4], eax
mov dword [ebp - 8], 0
pushal
call fcn.00401433
popal
jmp 0x40135e
push edx
push eax
mov eax, dword [ebp - 4]
or eax, eax
je 0x40134a
mov edx, dword [ebx + esi + 0x14]
mul edx
div ecx
mov dword [ebp - 4], eax
pop eax
mov ecx, dword [ebx + esi + 0x14]
imul ecx
add eax, dword [ebp - 4]
adc edx, 0
mov ecx, dword [ebx + esi + 0x18]
idiv ecx
pop edx
cmp eax, dword [ebx + esi + 8]
jl 0x40136c
cmp eax, dword [ebx + esi + 0xc]
jg 0x40136c
jmp 0x401385
add dword [ebp - 0x10], 0x400
mov eax, dword [ebx + esi + 0x10]
mov dword [ebp - 8], 0
pushal
call fcn.00401433
popal
cmp dword [ebp - 8], 0
je 0x40138d
neg eax
mov dword [ebx + esi + 4], eax
add ebx, 0x20
cmp dword [esi + ebx], 0
jne 0x401112
cmp dword [ebp - 0x10], 0
jne 0x4013a7
clc
jmp 0x4013ad
call fcn.00401701
stc
pop edi
pop esi
pop edx
pop ecx
pop ebx
leave
ret 4