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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42d5fc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x22c
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x24], ebx
call fcn.00401750
mov dword [ebx], 0x42fafc
mov eax, dword [0x43c520]
mov dword [ebp - 4], 0
mov dword [ebx + 0xcc], eax
mov ecx, dword [0x43c520]
lea edi, [ebx + 0xd0]
mov dword [edi], ecx
push 0x43da34
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
mov dword [ebx], 0x42fcb8
call fcn.00425828
lea edx, [ebp - 0x130]
push 0x104
push edx
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x40a0fd
lea eax, [ebp - 0x130]
lea ecx, [ebp - 0x18]
push eax
call fcn.00425828
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.004258a7
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.004257ba
lea ecx, [ebp - 0x28]
push ecx
mov ecx, edi
call fcn.004258a7
push 1
push 0x5c
lea ecx, [ebp - 0x20]
call fcn.00420410
lea edx, [ebp - 0x18]
push 1
push edx
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.0042055f
mov esi, dword [ebp - 0x20]
mov eax, dword [eax]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40a14e
test cl, cl
je 0x40a14a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40a14e
add eax, 2
add esi, 2
test cl, cl
jne 0x40a12a
xor eax, eax
jmp 0x40a153
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [ebp - 0x18]
setne byte [ebp - 0x11]
call fcn.004257ba
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.004257ba
mov al, byte [ebp - 0x11]
test al, al
je 0x40a17d
push 0x5c
mov ecx, edi
call fcn.00425b71
push str.opera.ini
mov ecx, edi
call fcn.00425b4a
push edi
mov ecx, ebx
call fcn.00402bf0
test al, al
jne 0x40a213
push str.C:Program_FilesOperaopera.ini
lea ecx, [ebp - 0x20]
call fcn.00425828
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
mov byte [ebp - 4], 6
call fcn.00402bf0
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x11], al
mov byte [ebp - 4], 3
call fcn.004257ba
mov al, byte [ebp - 0x11]
test al, al
je 0x40a1ce
push str.C:Program_FilesOperaopera.ini
jmp 0x40a20c
push str.C:Operaopera.ini
lea ecx, [ebp - 0x20]
call fcn.00425828
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
push ecx
mov ecx, ebx
call fcn.00402bf0
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x11], al
mov byte [ebp - 4], 3
call fcn.004257ba
mov al, byte [ebp - 0x11]
test al, al
je 0x40a207
push str.C:Operaopera.ini
jmp 0x40a20c
push 0x43da34
mov ecx, edi
call fcn.004258f7
mov edx, dword [edi]
mov eax, dword [edx - 8]
test eax, eax
jne 0x40a419
lea esi, [ebx + 0xcc]
push 0x43da34
mov ecx, esi
call fcn.004258f7
push str.Path
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 8
call fcn.00425828
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsOpera.exe
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 9
call fcn.00425828
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x20]
push eax
push ecx
lea edx, [ebp - 0x1c]
push 0x80000002
push edx
mov ecx, ebx
mov byte [ebp - 4], 0xa
call fcn.004027f0
push eax
mov ecx, esi
mov byte [ebp - 4], 0xb
call fcn.004258a7
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
call fcn.004257ba
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 9
call fcn.004257ba
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 8
call fcn.004257ba
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x40a4f4
lea ecx, [ebp - 0x1c]
push 1
push ecx
mov ecx, esi
call fcn.0042055f
mov eax, dword [eax]
mov esi, 0x43a2d0
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40a2e5
test cl, cl
je 0x40a2e1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40a2e5
add eax, 2
add esi, 2
test cl, cl
jne 0x40a2c1
xor eax, eax
jmp 0x40a2ea
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [ebp - 0x1c]
setne byte [ebp - 0x11]
call fcn.004257ba
mov al, byte [ebp - 0x11]
test al, al
je 0x40a3a6
push 0x43a2d0
lea ecx, [ebx + 0xcc]
call fcn.00425b4a
jmp 0x40a3a6
lea eax, [ebx + 0xcc]
push str.opera.ini
lea edx, [ebp - 0x1c]
push eax
push edx
mov dword [ebp - 4], 3
call fcn.00425a03
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.00402bf0
lea ecx, [ebp - 0x1c]
mov bl, al
mov byte [ebp - 4], 3
call fcn.004257ba
test bl, bl
je 0x40a416
mov eax, dword [ebp - 0x24]
push str.opera.ini
add eax, 0xcc
lea ecx, [ebp - 0x1c]
push eax
push ecx
call fcn.00425a03
mov edx, dword [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x10
lea ecx, [edx + 0xd0]
call fcn.004258a7
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.004257ba
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0xd0]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x40a4f4
mov ecx, dword [ebx + 0xcc]
lea esi, [ebx + 0xcc]
mov edx, dword [ecx - 8]
test edx, edx
jne 0x40a4f4
push eax
lea edx, [ebp - 0x238]
push 0x104
push edx
push 0x43da34
push str.OPERA_DIRECTORY
push str.USER_PREFS
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40a4f4
lea eax, [ebp - 0x238]
lea ecx, [ebp - 0x1c]
push eax
call fcn.00425828
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.004258a7
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.004257ba
lea ecx, [ebp - 0x1c]
push 1
push ecx
mov ecx, esi
call fcn.0042055f
mov eax, dword [eax]
mov esi, 0x43a2d0
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40a4ca
test cl, cl
je 0x40a4c6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40a4ca
add eax, 2
add esi, 2
test cl, cl
jne 0x40a4a6
xor eax, eax
jmp 0x40a4cf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [ebp - 0x1c]
setne byte [ebp - 0x11]
call fcn.004257ba
mov al, byte [ebp - 0x11]
test al, al
je 0x40a4f4
push 0x43a2d0
lea ecx, [ebx + 0xcc]
call fcn.00425b4a
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004257ba
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, ebx
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret