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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42bebc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x220
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
call fcn.00401750
mov dword [edi], 0x42eadc
mov eax, dword [0x43b340]
mov dword [ebp - 4], 0
mov dword [edi + 0x9c], eax
mov ecx, dword [0x43b340]
lea ebx, [edi + 0xa0]
mov dword [ebx], ecx
mov eax, dword [ebp + 0xc]
mov dl, byte [ebp + 8]
and eax, 0xff
push 0x43c824
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
mov byte [edi + 0xa4], dl
mov dword [edi], 0x42ec98
mov dword [edi + 0x90], eax
call fcn.0042432b
lea ecx, [ebp - 0x124]
push 0x104
push ecx
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x4099b4
lea edx, [ebp - 0x124]
lea ecx, [ebp + 8]
push edx
call fcn.0042432b
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.004243aa
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.004242bd
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.004243aa
push 1
push 0x5c
lea ecx, [ebp + 0xc]
call fcn.0041ef90
lea ecx, [ebp - 0x18]
push 1
push ecx
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.0041f0df
mov esi, dword [ebp + 0xc]
mov eax, dword [eax]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x409a05
test cl, cl
je 0x409a01
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x409a05
add eax, 2
add esi, 2
test cl, cl
jne 0x4099e1
xor eax, eax
jmp 0x409a0a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [ebp - 0x18]
setne byte [ebp + 0xb]
call fcn.004242bd
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 3
call fcn.004242bd
mov al, byte [ebp + 0xb]
test al, al
je 0x409a34
push 0x5c
mov ecx, ebx
call fcn.00424674
push str.opera.ini
mov ecx, ebx
call fcn.0042464d
push ebx
mov ecx, edi
call fcn.00402b10
test al, al
jne 0x409aca
push str.C:Program_FilesOperaopera.ini
lea ecx, [ebp + 0xc]
call fcn.0042432b
lea eax, [ebp + 0xc]
mov ecx, edi
push eax
mov byte [ebp - 4], 6
call fcn.00402b10
lea ecx, [ebp + 0xc]
mov byte [ebp + 0xb], al
mov byte [ebp - 4], 3
call fcn.004242bd
mov al, byte [ebp + 0xb]
test al, al
je 0x409a85
push str.C:Program_FilesOperaopera.ini
jmp 0x409ac3
push str.C:Operaopera.ini
lea ecx, [ebp + 0xc]
call fcn.0042432b
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 7
push ecx
mov ecx, edi
call fcn.00402b10
lea ecx, [ebp + 0xc]
mov byte [ebp + 0xb], al
mov byte [ebp - 4], 3
call fcn.004242bd
mov al, byte [ebp + 0xb]
test al, al
je 0x409abe
push str.C:Operaopera.ini
jmp 0x409ac3
push 0x43c824
mov ecx, ebx
call fcn.004243fa
mov edx, dword [ebx]
mov eax, dword [edx - 8]
test eax, eax
jne 0x409cc2
lea esi, [edi + 0x9c]
push 0x43c824
mov ecx, esi
call fcn.004243fa
push str.Path
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 8
call fcn.0042432b
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsOpera.exe
lea ecx, [ebp + 8]
mov byte [ebp - 4], 9
call fcn.0042432b
lea eax, [ebp + 0xc]
lea ecx, [ebp + 8]
push eax
push ecx
lea edx, [ebp - 0x18]
mov bl, 0xa
push 0x80000002
push edx
mov ecx, edi
mov byte [ebp - 4], bl
call fcn.00402740
push eax
mov ecx, esi
mov byte [ebp - 4], 0xb
call fcn.004243aa
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], bl
call fcn.004242bd
lea ecx, [ebp + 8]
mov byte [ebp - 4], 9
call fcn.004242bd
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 8
call fcn.004242bd
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x409d9d
lea ecx, [ebp + 8]
push 1
push ecx
mov ecx, esi
call fcn.0041f0df
mov eax, dword [eax]
mov esi, 0x4392c8
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x409ba0
test cl, cl
je 0x409b9c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x409ba0
add eax, 2
add esi, 2
test cl, cl
jne 0x409b78
xor eax, eax
jmp 0x409ba5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [ebp + 8]
setne bl
call fcn.004242bd
test bl, bl
je 0x409c5d
push 0x4392c8
lea ecx, [edi + 0x9c]
call fcn.0042464d
jmp 0x409c5d
lea esi, [edi + 0x9c]
push str.opera.ini
lea edx, [ebp + 8]
push esi
push edx
mov dword [ebp - 4], 3
call fcn.00424506
push eax
mov ecx, edi
mov byte [ebp - 4], 0xf
call fcn.00402b10
lea ecx, [ebp + 8]
mov bl, al
mov byte [ebp - 4], 3
call fcn.004242bd
test bl, bl
je 0x409cc2
push str.opera.ini
lea eax, [ebp + 8]
push esi
push eax
call fcn.00424506
push eax
lea ecx, [edi + 0xa0]
mov byte [ebp - 4], 0x10
call fcn.004243aa
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.004242bd
mov eax, dword [edi + 0xa0]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x409d9d
mov ecx, dword [edi + 0x9c]
lea esi, [edi + 0x9c]
mov edx, dword [ecx - 8]
test edx, edx
jne 0x409d9d
push eax
lea edx, [ebp - 0x22c]
push 0x104
push edx
push 0x43c824
push str.OPERA_DIRECTORY
push str.USER_PREFS
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x409d9d
lea eax, [ebp - 0x22c]
lea ecx, [ebp + 8]
push eax
call fcn.0042432b
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.004243aa
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.004242bd
lea ecx, [ebp + 8]
push 1
push ecx
mov ecx, esi
call fcn.0041f0df
mov eax, dword [eax]
mov esi, 0x4392c8
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x409d77
test cl, cl
je 0x409d73
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x409d77
add eax, 2
add esi, 2
test cl, cl
jne 0x409d4f
xor eax, eax
jmp 0x409d7c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea ecx, [ebp + 8]
setne bl
call fcn.004242bd
test bl, bl
je 0x409d9d
push 0x4392c8
lea ecx, [edi + 0x9c]
call fcn.0042464d
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.004242bd
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8