Function at 0x40a740
Capabilities:
Check if file exists
Decode data using base64 via winapi
Encrypt data using dpapi
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1074
call fcn.004c2cd0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x1074], edx
xorps xmm0, xmm0
mov dword [ebp - 0x1060], 0
lea eax, [ebp - 0x1048]
movlpd qword [ebp - 0x1050], xmm0
movlpd qword [ebp - 0x1058], xmm0
push ebx
push esi
push edi
movups xmmword [ebp - 0x1070], xmm0
test ecx, ecx
jne 0x40a7be
push ecx
push 0x1a
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x40a7f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_find_app_data_folder:0x_X
push 1
call fcn.00408d60
mov ebx, dword [ebp - 0x106c]
add esp, 0xc
jmp 0x40aab5
push ecx
push str._sAppDataRoaming
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40a7f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_set_the_full_path_to_remote_profile:0x_X
push 1
call fcn.00408d60
mov ebx, dword [ebp - 0x106c]
add esp, 0xc
jmp 0x40aab5
lea eax, [ebp - 0x1048]
push eax
push str._sMicrosoftEdgeUser_DataLocal_State
lea eax, [ebp - 0x828]
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40a83c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_find_state_file_on_remote_profile:0x_X
push 1
call fcn.00408d60
mov ebx, dword [ebp - 0x106c]
add esp, 0xc
jmp 0x40aab5
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [ebp - 0x828]
push eax
call esi
cmp eax, 0xffffffff
jne 0x40a8cb
lea eax, [ebp - 0x1048]
push eax
push str._s..LocalMicrosoftEdgeUser_DataLocal_State
lea eax, [ebp - 0x828]
push 0x820
push eax
call fcn.004010a0
add esp, 0x10
test eax, eax
jns 0x40a895
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Cannot_find_state_file_on_local_profile:0x_X
push 1
call fcn.00408d60
mov ebx, dword [ebp - 0x106c]
add esp, 0xc
jmp 0x40aab5
lea eax, [ebp - 0x828]
push eax
call esi
cmp eax, 0xffffffff
jne 0x40a8cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x828]
push eax
push str.Error_finding_the_state_file__s__error:0x_X
push 1
call fcn.00408d60
mov ebx, dword [ebp - 0x106c]
add esp, 0x10
jmp 0x40aab5
lea edx, [ebp - 0x1070]
lea ecx, [ebp - 0x828]
call fcn.004080a0
test eax, eax
jne 0x40a908
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x828]
push eax
push str.Error_reading__s__error:0x_X
push 1
call fcn.00408d60
mov ebx, dword [ebp - 0x106c]
add esp, 0x10
jmp 0x40aab5
mov ebx, dword [ebp - 0x106c]
mov esi, ebx
test esi, esi
je 0x40a966
nop dword [eax]
nop dword [eax + eax]
mov edi, dword [esi]
mov eax, str.encrypted_key
mov dword [ebp - 0x105c], edi
mov ecx, dword [edi]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a956
test dx, dx
je 0x40a952
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a956
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a930
xor eax, eax
jmp 0x40a95b
sbb eax, eax
or eax, 1
test eax, eax
je 0x40a9c4
mov esi, dword [esi + 8]
test esi, esi
jne 0x40a920
push dword [ebp - 0x1074]
mov eax, dword [ebp - 0x1050]
push 0
add eax, 0xfffffffb
push 0
mov dword [ebp - 0x1058], eax
mov eax, dword [ebp - 0x104c]
push 0
add eax, 5
push 0
mov dword [ebp - 0x1054], eax
lea eax, [ebp - 0x1058]
push 0
push eax
call dword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
jne 0x40aaab
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_decrypting_key:0x_X
push 1
call fcn.00408d60
add esp, 0xc
jmp 0x40aab5
mov edx, dword [edi + 8]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a9d0
mov edi, dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
lea eax, [ebp - 0x1050]
push 0
push 0
push eax
push 0
push 6
sub ecx, esi
push ecx
push edx
call edi
mov eax, dword [ebp - 0x1050]
test eax, eax
jne 0x40aa1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x828]
push eax
push str.Error_initiating_decoding_string_from__s__error:0x_X
push 1
call fcn.00408d60
add esp, 0x10
jmp 0x40aab5
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
inc dword [0x4de7b4]
mov edx, eax
mov dword [ebp - 0x104c], edx
test edx, edx
jne 0x40aa51
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_allocating_buffer:0x_X
push 1
call fcn.00408d60
add esp, 0xc
jmp 0x40aab5
mov esi, dword [ebp - 0x105c]
mov esi, dword [esi + 8]
mov ecx, esi
lea eax, [ecx + 1]
mov dword [ebp - 0x105c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40aa65
sub ecx, dword [ebp - 0x105c]
lea eax, [ebp - 0x1050]
push 0
push 0
push eax
push edx
push 6
push ecx
push esi
call edi
test eax, eax
jne 0x40a966
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x828]
push eax
push str.Error_decoding_string_from__s__error:0x_X
push 1
call fcn.00408d60
add esp, 0x10
jmp 0x40aab5
mov dword [ebp - 0x1060], 1
mov edi, dword [ebp - 0x1068]
mov ecx, edi
mov edx, dword [ebp - 0x1064]
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x105c], ecx
test ecx, ecx
je 0x40ab0a
mov esi, dword [edi + 4]
mov ecx, edi
mov dword [ebp - 0x105c], ecx
test esi, esi
je 0x40abc0
mov eax, ebx
test eax, eax
je 0x40aafb
nop dword [eax]
cmp esi, eax
je 0x40ab39
mov eax, dword [eax + 8]
test eax, eax
jne 0x40aaf0
push str.Entry_not_found_in_the_list
push 2
call fcn.00408d60
add esp, 8
mov ecx, dword [ebp - 0x104c]
test ecx, ecx
je 0x40ab22
mov eax, dword [sym.imp.KERNEL32.dll_LocalFree]
push ecx
call eax
dec dword [0x4de7b4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1060]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004ac4d4
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x40ab46
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40ab53
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
cmp ebx, esi
jne 0x40ab5a
mov ebx, dword [esi + 8]
cmp edi, esi
jne 0x40ab61
mov edi, dword [esi + 4]
mov eax, dword [esi]
test eax, eax
je 0x40ab99
push eax
test edx, edx
je 0x40ab86
call edx
add esp, 4
test eax, eax
jne 0x40ab99
push str.Cannot_free_element_value_memory_using_callback
push 2
call fcn.00408d60
add esp, 8
jmp 0x40ab99
mov eax, dword [sym.imp.KERNEL32.dll_LocalFree]
call eax
dec dword [0x4de7b4]
mov dword [esi], 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
call esi
dec dword [0x4de7b4]
mov edx, dword [ebp - 0x1064]
test edi, edi
jne 0x40aad3
mov ecx, edi
mov dword [ebp - 0x105c], ecx
jmp 0x40abc6
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
test ecx, ecx
je 0x40ab0a
test ebx, ebx
je 0x40aafb
cmp edi, ebx
je 0x40abe6
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x40abd6
jmp 0x40aafb
mov edx, dword [ecx + 4]
test edx, edx
je 0x40abf3
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov edx, dword [ecx + 8]
test edx, edx
je 0x40ac00
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx]
test eax, eax
je 0x40ac2f
mov ecx, dword [ebp - 0x1064]
push eax
test ecx, ecx
je 0x40ac3d
call ecx
add esp, 4
test eax, eax
jne 0x40ac29
push str.Cannot_free_element_value_memory_using_callback
push 2
call fcn.00408d60
add esp, 8
mov ecx, dword [ebp - 0x105c]
push ecx
call esi
dec dword [0x4de7b4]
jmp 0x40ab0a
call esi
mov ecx, dword [ebp - 0x105c]
dec dword [0x4de7b4]
push ecx
mov dword [ecx], 0
call esi
dec dword [0x4de7b4]
jmp 0x40ab0a