Function at 0x516b30
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x53fe2f
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5c403c]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov eax, dword [0x5c7000]
add eax, 0x30
push eax
lea eax, [esp + 0x1c]
push eax
mov edi, str.sslCache.xml
call fcn.0040f2b0
add esp, 8
mov dword [esp + 0x88], 0
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
setne bl
mov dword [esp + 0x88], 0xffffffff
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
test bl, bl
je 0x516dfb
lea ecx, [esp + 0x34]
call dword [sym.imp.libUtils.module_public:_void___thiscall_xmlElement::constructor_void_]
mov ebx, 1
mov dword [esp + 0x88], ebx
mov eax, dword [0x5c7000]
add eax, 0x30
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.0040f2b0
mov byte [esp + 0x90], 2
mov eax, dword [eax]
lea edx, [esp + 0x3c]
push edx
mov ecx, eax
call fcn.0051e420
add esp, 0xc
mov byte [esp + 0x88], bl
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x34]
call dword [sym.imp.libUtils.module_public:_unsigned_int___thiscall_xmlElement::GetChildCount_void_]
push eax
push str.Cert_cache_loaded___d_items_
push 5
mov ecx, str.SSLI
call fcn.004151b0
mov ecx, dword [0x5c6ed0]
add esp, 0xc
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CConnection::transactionBegin_void_]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
cmp esi, eax
jbe 0x516c40
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x40]
mov edi, eax
cmp dword [esp + 0x4c], eax
jbe 0x516c52
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
test ebp, ebp
je 0x516c5c
cmp ebp, dword [esp + 0x40]
je 0x516c62
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp esi, edi
je 0x516d9d
mov edi, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
test ebp, ebp
jne 0x516d88
call edi
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x516c83
call edi
push str.hash
lea ecx, [esi + 4]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
jne 0x516d6d
mov eax, dword [0x5c6ed0]
push str.INSERT_OR_REPLACE_INTO_certCache_VALUES_______
push eax
lea ecx, [esp + 0x28]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::db::CCommand::constructor_class_wtw::db::CConnection___wchar_t_const__]
mov byte [esp + 0x88], 3
push 0x55ae9c
lea ecx, [esp + 0x1c]
call dword [0x55a504]
mov byte [esp + 0x88], 4
push str.value
lea ecx, [esp + 0x18]
call dword [0x55a504]
mov byte [esp + 0x88], 5
test ebp, ebp
jne 0x516d90
call edi
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x516cf7
call edi
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, esi
call dword [sym.imp.libUtils.module_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const____thiscall_xmlElement::GetAttribute_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const___class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const__]
mov eax, dword [eax]
push 0xffffffffffffffff
push eax
push ebx
lea ecx, [esp + 0x2c]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CCommand::bind_int__wchar_t_const___int_]
mov byte [esp + 0x88], 4
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x88], 3
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [esp + 0x1c]
push eax
push 2
lea ecx, [esp + 0x28]
mov dword [esp + 0x24], ebx
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CCommand::bind_int__int_const__]
lea ecx, [esp + 0x20]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CCommand::executeNoRead_void_]
mov byte [esp + 0x88], bl
lea ecx, [esp + 0x20]
call dword [sym.imp.libWTW.module_public_virtual:_void___thiscall_wtw::db::CCommand::destructor_void_]
test ebp, ebp
jne 0x516d98
call edi
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x516d7c
call edi
mov eax, dword [esp + 0x50]
add esi, 0x44
jmp 0x516c44
mov eax, dword [ebp]
jmp 0x516c7c
mov eax, dword [ebp]
jmp 0x516cf0
mov eax, dword [ebp]
jmp 0x516d75
mov ecx, dword [0x5c6ed0]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CConnection::transactionCommit_void_]
mov eax, dword [0x5c7000]
add eax, 0x30
push eax
lea ecx, [esp + 0x20]
push ecx
mov edi, str.sslCache.xml
call fcn.0040f2b0
add esp, 8
mov byte [esp + 0x88], 6
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [esp + 0x88], bl
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov dword [esp + 0x88], 0xffffffff
lea ecx, [esp + 0x34]
call dword [sym.imp.libUtils.module_public_virtual:_void___thiscall_xmlElement::destructor_void_]
xor eax, eax
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret