Function at 0x443a50
Capabilities:
Check if file exists
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x4750fc]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x414], ecx
mov byte [ebp - 0x410], 0
push 0x1ff
push 0
lea eax, [ebp - 0x40f]
push eax
call fcn.0041bda0
add esp, 0xc
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x34c], 0
mov byte [ebp - 0x210], 0
push 0x1ff
push 0
lea edx, [ebp - 0x20f]
push edx
call fcn.0041bda0
add esp, 0xc
mov eax, dword [ebp - 0x414]
add eax, 0x146
push eax
push str._s_system32configSYSTEM
lea ecx, [ebp - 0x210]
push ecx
call fcn.0041bfd7
add esp, 0xc
mov edx, dword [ebp - 0x414]
add edx, 0x11c
push edx
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp - 0x414]
call fcn.004436a0
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
push ecx
push str.bootkey:_nRs:_d_n
push 0x47fcf0
call fcn.0043c100
add esp, 0xc
push 0x10
mov edx, dword [ebp - 0x414]
add edx, 0x11c
push edx
mov ecx, 0x47fcf0
call fcn.0043c2b0
push 0x200
push 0
lea eax, [ebp - 0x410]
push eax
call fcn.0041bda0
add esp, 0xc
mov ecx, dword [ebp - 0x414]
add ecx, 0x146
push ecx
push str._sSysWOW64esent.dll
lea edx, [ebp - 0x410]
push edx
call fcn.0041bfd7
add esp, 0xc
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x443bbb
lea ecx, [ebp - 0x410]
push ecx
push str.Doesnt_exist__szESENTLib:_s._Try_another_path._n
push 0x47fcf0
call fcn.0043c100
add esp, 0xc
push 0x200
push 0
lea edx, [ebp - 0x410]
push edx
call fcn.0041bda0
add esp, 0xc
mov eax, dword [ebp - 0x414]
add eax, 0x146
push eax
push str._s_system32esent.dll
lea ecx, [ebp - 0x410]
push ecx
call fcn.0041bfd7
add esp, 0xc
mov dword [ebp - 8], 0
lea edx, [ebp - 0x410]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x443bec
lea eax, [ebp - 0x410]
push eax
push str.Doesnt_exist____szESENTLib:_s._n
push 0x47fcf0
call fcn.0043c100
add esp, 0xc
push 8
push 0
lea ecx, [ebp - 0x410]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov edx, dword [ebp - 0x414]
mov dword [edx + 0x550], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x550], 0
jne 0x443c2d
mov dword [ebp - 0x418], 0x467ff8
jmp 0x443c37
mov dword [ebp - 0x418], 0x467ffc
mov ecx, dword [ebp - 0x418]
push ecx
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x410]
push eax
push str.szESENTLib:_s__Err:0x_x__m_hEsentLibNULL:_s_n
push 0x47fcf0
call fcn.0043c100
add esp, 0x14
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x550], 0
jne 0x443d01
mov edx, dword [ebp - 0x414]
mov dword [edx + 0x34c], 1
push str.X:windowsSYSTEM32esent.dll
lea eax, [ebp - 0x410]
push eax
call fcn.0041d8b0
add esp, 8
push 8
push 0
lea ecx, [ebp - 0x410]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov edx, dword [ebp - 0x414]
mov dword [edx + 0x550], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x550], 0
jne 0x443cd3
mov dword [ebp - 0x41c], 0x468050
jmp 0x443cdd
mov dword [ebp - 0x41c], 0x468054
mov ecx, dword [ebp - 0x41c]
push ecx
mov edx, dword [ebp - 8]
push edx
lea eax, [ebp - 0x410]
push eax
push str.szESENTLib:_s__Err2:0x_x__m_hEsentLibNULL:_s_n
push 0x47fcf0
call fcn.0043c100
add esp, 0x14
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x550], 0
jne 0x443d17
xor al, al
jmp 0x444221
push str.JetSetSystemParameter
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x56c], eax
push str.JetInit
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x570], eax
push str.JetBeginSession
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x574], eax
push str.JetAttachDatabase
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x578], eax
push str.JetOpenDatabase
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x57c], eax
push str.JetOpenTable
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x580], eax
push str.JetGetTableColumnInfo
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x584], eax
push str.JetMove
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x588], eax
push str.JetRetrieveColumns
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x58c], eax
push str.JetCloseTable
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x590], eax
push str.JetCloseDatabase
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x594], eax
push str.JetDetachDatabase
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x598], eax
push str.JetEndSession
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x59c], eax
push str.JetTerm2
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5a0], eax
push str.JetSetCurrentIndex
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5a4], eax
push str.JetBeginTransaction
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5a8], eax
push str.JetMakeKey
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5ac], eax
push str.JetSeek
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5b0], eax
push str.JetPrepareUpdate
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5b4], eax
push str.JetSetColumns
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5b8], eax
push str.JetSetColumn
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5bc], eax
push str.JetUpdate
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5c0], eax
push str.JetCommitTransaction
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5c4], eax
push str.JetRollback
mov edx, dword [ebp - 0x414]
mov eax, dword [edx + 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x414]
mov dword [ecx + 0x5c8], eax
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x56c], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x570], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x574], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x578], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x57c], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x580], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x584], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x588], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x58c], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x590], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x594], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x598], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x59c], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x5a0], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x5a4], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x5a8], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x5ac], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x5b0], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x5b4], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x5b8], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x5c0], 0
je 0x44421b
mov edx, dword [ebp - 0x414]
cmp dword [edx + 0x5c4], 0
je 0x44421b
mov eax, dword [ebp - 0x414]
cmp dword [eax + 0x5c8], 0
je 0x44421b
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + 0x5bc], 0
jne 0x44421f
xor al, al
jmp 0x444221
mov al, 1
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0041b731
mov esp, ebp
pop ebp
ret 4