Function at 0x40af20
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x467b93
mov eax, dword fs:[0]
push eax
sub esp, 0x344
mov eax, dword [0x4c6af0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x14c]
call fcn.004023c0
mov dword [ebp - 4], 0
call fcn.0042cef0
mov eax, dword [eax + 0x48]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004024c0
mov ecx, dword [ebp - 0x14c]
push ecx
push 0x4ae7b4
lea edx, [ebp - 0x34c]
push edx
call fcn.0044fc6a
add esp, 0xc
lea ecx, [ebp - 0x14c]
call fcn.004024e0
test eax, eax
je 0x40b0d0
mov dword [ebp - 0x350], 0
jmp 0x40afba
mov eax, dword [ebp - 0x350]
add eax, 1
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 0x200
jge 0x40afdf
mov ecx, dword [ebp - 0x350]
movzx edx, byte [ebp + ecx - 0x34c]
cmp edx, 0x20
jne 0x40afdb
jmp 0x40afab
jmp 0x40afdf
mov eax, dword [ebp - 0x350]
movzx ecx, byte [ebp + eax - 0x34c]
cmp ecx, 0x2f
jne 0x40b04a
mov edx, dword [ebp - 0x350]
movzx eax, byte [ebp + edx - 0x34b]
cmp eax, 0x53
jne 0x40b04a
mov ecx, dword [ebp - 0x350]
mov dl, byte [ebp + ecx - 0x34a]
mov byte [0x517472], dl
mov eax, dword [ebp - 0x350]
movzx ecx, byte [ebp + eax - 0x349]
cmp ecx, 0x5b
jne 0x40b045
mov edx, dword [ebp - 0x350]
movzx eax, byte [ebp + edx - 0x348]
cmp eax, 0x35
jne 0x40b045
mov byte [0x517470], 1
jmp 0x40b0d0
mov ecx, dword [ebp - 0x350]
add ecx, 1
mov dword [ebp - 0x350], ecx
mov edx, dword [ebp - 0x350]
movzx eax, byte [ebp + edx - 0x34c]
cmp eax, 0x3a
jne 0x40b0a3
mov ecx, dword [ebp - 0x350]
movzx edx, byte [ebp + ecx - 0x34b]
test edx, edx
je 0x40b091
mov eax, dword [ebp - 0x350]
movzx ecx, byte [ebp + eax - 0x34b]
cmp ecx, 0x20
jne 0x40b0a3
mov edx, dword [ebp - 0x350]
mov al, byte [ebp + edx - 0x34d]
mov byte [0x51746f], al
mov ecx, dword [ebp - 0x350]
movzx edx, byte [ebp + ecx - 0x34c]
cmp edx, 0x3a
jne 0x40b0d0
mov eax, dword [ebp - 0x350]
movzx ecx, byte [ebp + eax - 0x34a]
cmp ecx, 0x35
jne 0x40b0d0
mov byte [0x517470], 1
mov dword [ebp - 0x148], 0x12c
lea edx, [ebp - 0x144]
push edx
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x40b115
movzx ecx, byte [0x51746f]
push ecx
lea edx, [ebp - 0x144]
push edx
push 0x4ae7b8
push 0x516d30
call fcn.0044fc6a
add esp, 0x10
jmp 0x40b11c
mov byte [0x516d30], 0
movzx eax, byte [0x51746f]
test eax, eax
je 0x40b1d9
movsx ecx, byte [0x516d30]
test ecx, ecx
je 0x40b1d9
push 0x516d30
push 0x4ae7cc
push 0x4ae7d0
push 0x4ae7d8
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x516d30
push 0x4ae7e4
push 0x4ae7e8
push 0x4ae7ec
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x516d30
push 0x4ae7f8
push 0x4ae7fc
push 0x4ae804
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x516d30
push 0x4ae810
push 0x4ae814
push 0x4ae81c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x516d30
push 0x4ae828
push 0x4ae82c
push 0x4ae834
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x516d30
push 0
push 0x4ae840
push 0x4ae848
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x148], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14c]
call fcn.00402480
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044e8ae
mov esp, ebp
pop ebp
ret