Function at 0x14a16420
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x14a36198]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x14a1646b
mov eax, 0x80004003
lea esp, [ebp - 0x6c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.14a22c16
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x40]
push eax
push esi
mov dword [ebp - 0x40], 0
call dword [sym.imp.ole32.dll_CreateFileMoniker]
mov edi, eax
test edi, edi
jl 0x14a16646
lea ecx, [ebp - 0x3c]
push ecx
push 0
mov dword [ebp - 0x3c], 0
call dword [sym.imp.ole32.dll_GetRunningObjectTable]
mov edi, eax
test edi, edi
jl 0x14a16637
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], 0
mov edx, dword [eax]
mov edx, dword [edx + 0x18]
push ecx
push eax
call edx
test eax, eax
je 0x14a16616
xor eax, eax
cmp dword [ebp + 0x1c], eax
jne 0x14a1660f
mov dword [ebp - 0x60], 0x14a29510
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x48], eax
je 0x14a165e9
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp esi, eax
je 0x14a16516
push esi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x14a16500
xor eax, eax
jmp 0x14a16516
lea edi, [eax + eax]
mov eax, edi
call fcn.14a22e40
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.14a0106e
push eax
call fcn.14a202f0
test eax, eax
je 0x14a16573
test esi, esi
jne 0x14a16528
xor eax, eax
jmp 0x14a1654d
push esi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x14a16537
xor eax, eax
jmp 0x14a1654d
lea edi, [eax + eax]
mov eax, edi
call fcn.14a22e40
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.14a0106e
mov ecx, dword [ebp - 0x48]
push eax
push 0x32
lea eax, [ebp - 0x38]
push eax
push 0x14a26959
push str.ContextID
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
xor edx, edx
cmp edx, eax
sbb eax, eax
add eax, 1
je 0x14a165e6
test esi, esi
jne 0x14a1657b
xor ebx, ebx
jmp 0x14a165a2
push esi
call ebx
inc eax
cmp eax, 0x3fffffff
jle 0x14a1658a
xor ebx, ebx
jmp 0x14a165a2
lea edi, [eax + eax]
mov eax, edi
call fcn.14a22e40
mov eax, esp
push 3
push edi
push esi
push eax
call fcn.14a0106e
mov ebx, eax
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x14a165d5
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x14a165bc
xor eax, eax
jmp 0x14a165d5
lea edi, [eax + eax]
mov eax, edi
call fcn.14a22e40
mov ecx, dword [ebp - 0x4c]
mov eax, esp
push 3
push edi
push ecx
push eax
call fcn.14a0106e
mov edx, dword [ebp - 0x48]
push ebx
push eax
push str.ContextID
push edx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ebx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x60]
push eax
push 1
push esi
push 0
push 0x17
push 0
push ecx
push 0
call dword [sym.imp.ole32.dll_CoGetInstanceFromFile]
mov edi, eax
test edi, edi
jl 0x14a16628
mov edx, dword [ebp - 0x5c]
mov dword [ebx], edx
jmp 0x14a16628
mov edi, 0x80004005
jmp 0x14a16628
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
push 0x14a29510
push eax
call edx
mov edi, eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x14a16637
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x14a16646
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x14a16655
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, edi
lea esp, [ebp - 0x6c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.14a22c16
mov esp, ebp
pop ebp
ret