Function at 0x401510
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x427896
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x433a70]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
push str.CIniFile::GetDecoratedSection
lea ecx, [esp + 0x18]
call fcn.00401130
mov edi, dword [esp + 0x2c]
mov eax, edi
mov dword [esp + 0x24], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x401556
sub eax, edx
add eax, 0x20
push eax
call fcn.00409b95
mov ebp, dword [esp + 0x40]
push ebp
mov esi, eax
call fcn.00409b95
add esp, 8
test byte [0x434f34], 1
mov dword [esp + 0x2c], eax
jne 0x4015a1
or dword [0x434f34], 1
mov byte [esp + 0x24], 1
call fcn.004096a0
mov dword [0x434f30], eax
mov byte [esp + 0x24], 0
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
push ebp
push ebx
push eax
call fcn.00413992
add esp, 0xc
test esi, esi
je case.default.0x401629
cmp dword [esp + 0x2c], 0
je case.default.0x401629
mov edx, esi
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x4015d0
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
push ecx
push ebp
push edi
push ebx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
push edi
call fcn.00413cf2
add esp, 8
test eax, eax
je 0x401611
mov eax, dword [esp + 0x38]
push ebp
push esi
push eax
call fcn.00413992
add esp, 0xc
mov eax, dword [0x434f30]
add eax, 0xffffffff
cmp eax, 7
ja case.default.0x401629
movzx ecx, byte [eax + 0x401888]
jmp dword [ecx*4 + 0x401880]
mov edi, esi
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x401635
mov edx, dword [0x42953c]
mov dword [edi], edx
jmp 0x401661
mov edi, esi
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x401650
mov eax, dword [0x429538]
mov dword [edi], eax
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
push ecx
push ebp
push edi
push ebx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
push edi
call fcn.00413cf2
add esp, 8
test eax, eax
je 0x401696
mov eax, dword [esp + 0x38]
push ebp
push esi
push eax
call fcn.00413992
add esp, 0xc
push 0x42953c
push esi
call fcn.00412936
add esp, 8
test eax, eax
je 0x4016ab
mov byte [eax], 0
push 0x429538
push esi
call fcn.00412936
add esp, 8
test eax, eax
je 0x4016c0
mov byte [eax], 0
mov eax, dword [0x434f30]
add eax, 0xffffffff
cmp eax, 7
ja case.default.0x4016d1
jmp dword [eax*4 + 0x401890]
mov edi, esi
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4016e0
mov ecx, dword [0x429534]
mov dword [edi], ecx
jmp case.default.0x4016d1
mov edi, esi
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x401700
mov edx, dword [0x429530]
mov dword [edi], edx
jmp case.default.0x4016d1
mov edi, esi
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x401720
mov eax, dword [0x42952c]
mov dword [edi], eax
jmp case.default.0x4016d1
mov eax, esi
add eax, 0xffffffff
jmp 0x401740
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x401740
mov ecx, dword [str..NT4]
mov dword [eax], ecx
mov dl, byte [0x429528]
jmp 0x4017e8
mov edi, esi
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x401762
mov eax, dword [0x429520]
mov dword [edi], eax
jmp case.default.0x4016d1
mov edi, esi
add edi, 0xffffffff
lea ebx, [ebx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x401780
mov ecx, dword [0x42951c]
mov dword [edi], ecx
jmp case.default.0x4016d1
mov eax, esi
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4017a0
mov edx, dword [str..VISTA]
mov dword [eax], edx
mov cx, word [0x429518]
mov word [eax + 4], cx
mov dl, byte [0x42951a]
mov byte [eax + 6], dl
jmp case.default.0x4016d1
mov eax, esi
add eax, 0xffffffff
lea ecx, [ecx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4017d0
mov ecx, dword [str..2K3]
mov dword [eax], ecx
mov dl, byte [0x429510]
mov byte [eax + 4], dl
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
push eax
push ebp
push edi
push ebx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
push edi
call fcn.00413cf2
add esp, 8
test eax, eax
je case.default.0x401629
mov edx, dword [esp + 0x38]
push ebp
push esi
push edx
call fcn.00413992
add esp, 0xc
mov eax, dword [esp + 0x38]
push eax
mov byte [eax + ebp], 0
lea eax, [esp + 0x18]
push str.Decorated_Section:__s
push eax
call fcn.00401460
add esp, 0xc
test esi, esi
je 0x401848
push esi
call fcn.00409b90
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x401859
push eax
call fcn.00409b90
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], 0xffffffff
call fcn.004012e0
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x18