Function at 0x426200
Capabilities:
Get file size
Read file on windows
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
push esi
mov esi, dword [ebp + 8]
push edi
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x2c], ecx
jb 0x42621f
mov eax, dword [esi]
jmp 0x426221
mov eax, esi
push eax
call fcn.00401100
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x42623f
mov eax, 9
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp + 0x10], 0
xorps xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
movq qword [esp + 0x80], xmm0
movq qword [esp + 0x88], xmm0
mov dword [esp + 0x90], 0
movq qword [esp + 0x94], xmm0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], 0
jne 0x4263f5
push 0
push 0x80
push 3
push 0
push 7
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [esp + 0x14], edi
cmp edi, 0xffffffff
jne 0x426304
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_open_file_in_read_mode__error_code:_d.
push 4
call fcn.0041f8e0
mov edi, 0x302
jmp 0x42678e
cmp dword [esi + 0x14], 0x10
jb 0x42630e
mov eax, dword [esi]
jmp 0x426310
mov eax, esi
push eax
push edi
push str.readCacheDocData:_CreateFile__lu_in_READ_mode:__s.
push 5
call fcn.0041f8e0
add esp, 0x10
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
mov dword [esp + 0x18], edi
cmp edi, 0xffffffff
jne 0x426355
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_the_file_size_mode__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 0x302
jmp 0x42671b
test edi, edi
je 0x426644
lea eax, [esp + 0x30]
push eax
push 0
push edi
push 0
push 0
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_LockFileEx]
mov dword [esp + 0x24], eax
cmp eax, 1
je 0x42639c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_LockFileEx_in_shared_mode:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 0x302
jmp 0x42671b
cmp dword [esi + 0x14], 0x10
jb 0x4263a6
mov eax, dword [esi]
jmp 0x4263a8
mov eax, esi
push eax
push edi
push str.readCacheDocData:_Acquired_SHARED_lock___lu__on_read_mode_file:_s.
push 5
call fcn.0041f8e0
mov eax, dword [esp + 0x24]
add esp, 0x10
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
mov dword [esp + 0x18], edi
cmp edi, 0xffffffff
jne 0x42665d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_the_file_size_before_reading__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 0x302
jmp 0x42671b
lea ecx, [esp + 0x78]
call fcn.004257f0
mov edi, eax
test edi, edi
je 0x426418
push str.Failed_to_initialize_SLC_SD_ATTR.
push 4
call fcn.0041f8e0
add esp, 8
jmp 0x4267de
push 0
push str.__slc_features__
push dword [ebp + 0x10]
call fcn.00420480
add esp, 8
test al, al
mov edx, 0x80
mov ecx, 2
cmovne ecx, edx
push ecx
push 4
lea eax, [esp + 0xa0]
push eax
push 7
push 0xc2000000
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [esp + 0x14], edi
cmp edi, 0xffffffff
jne 0x4264f2
push str.Failed_to_open_file_in_write_mode__will_try_updating_File_attributes_and_try_to_open_again
push 4
call fcn.0041f8e0
push str.__slc_features__
push dword [ebp + 0x10]
call fcn.00420480
add esp, 0x10
test al, al
mov edi, 2
mov eax, 0x80
mov ecx, edi
cmovne ecx, eax
push ecx
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x4264fc
push str.Successfully_Updated_File_Attributes
push 4
call fcn.0041f8e0
add esp, 8
push 0
push str.__slc_features__
push dword [ebp + 0x10]
call fcn.00420480
add esp, 8
test al, al
mov eax, 0x80
cmovne edi, eax
push edi
push 4
lea eax, [esp + 0xa0]
push eax
push 7
push 0xc2000000
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [esp + 0x14], edi
cmp edi, 0xffffffff
je 0x42650b
cmp dword [esi + 0x14], 0x10
jb 0x42652f
mov eax, dword [esi]
jmp 0x426531
push str.ERROR:Failed_to_Updated_File_Attributes
push 2
call fcn.0041f8e0
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_open_file_in_write_mode__error_code:_d.
push 4
call fcn.0041f8e0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov edi, 0x302
jmp 0x426727
mov eax, esi
push eax
push edi
push str.readCacheDocData:_CreateFile__lu_in_WRITE_mode:__s.
push 4
call fcn.0041f8e0
add esp, 0x10
push 0
push dword [esp + 0x7c]
push 0
push 0
push 4
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_SetSecurityInfo]
test eax, eax
je 0x426585
cmp dword [esi + 0x14], 0x10
jb 0x426565
mov edi, dword [esi]
jmp 0x426567
mov edi, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.Couldnt_reset_perms_on___s___error_code:_d.
push 4
call fcn.0041f8e0
mov edi, 0x303
jmp 0x426718
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
mov dword [esp + 0x18], edi
cmp edi, 0xffffffff
jne 0x4265c4
push dword [esp + 0x14]
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_the_file_handle_in_write_mode__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 0x302
jmp 0x42671b
test edi, edi
je 0x42662f
lea eax, [esp + 0x30]
push eax
push 0
push edi
push 0
push 2
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_LockFileEx]
mov dword [esp + 0x24], eax
cmp eax, 1
je 0x426612
push dword [esp + 0x14]
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_the_file_size_in_write_mode__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 0x302
jmp 0x42671b
cmp dword [esi + 0x14], 0x10
jb 0x42661c
mov eax, dword [esi]
jmp 0x42661e
mov eax, esi
push eax
push edi
push str.readCacheDocData:_Acquired_EXCLUSIVE_lock___lu__on_write_mode_file:_s.
push 5
call fcn.0041f8e0
add esp, 0x10
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edi
test edi, edi
jne 0x4263bd
push str.Got_empty_string_from_the_file__treating_as_file_doesnot_exist.
push 4
call fcn.0041f8e0
add esp, 8
mov edi, 0x301
jmp 0x42671b
lea eax, [edi + 1]
push eax
call fcn.00587a78
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x426691
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_allocate_memory_while_reading_the_document_content_from_file__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 7
jmp 0x42671b
push 0
lea ecx, [esp + 0x2c]
push ecx
push edi
push eax
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
je 0x4266c6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_read_the_file_data__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov edi, 0x302
jmp 0x42671b
mov eax, dword [esp + 0x1c]
mov byte [eax + edi], 0
cmp dword [esi + 0x14], 0x10
jb 0x4266d8
mov eax, dword [esi]
jmp 0x4266da
mov eax, esi
push eax
push edi
push str.readCacheDocData___d__AtPath___s_.
push 5
call fcn.0041f8e0
mov ecx, dword [esp + 0x3c]
add esp, 0x10
push dword [ebp + 0xc]
push edi
push dword [esp + 0x24]
call fcn.00428710
cmp dword [esi + 0x14], 0x10
mov edi, eax
jb 0x426708
mov eax, dword [esi]
jmp 0x42670a
mov eax, esi
push eax
push edi
push str.readCacheDocData_validateAndRemoveSignature___d__AtPath___s_.
push 5
call fcn.0041f8e0
add esp, 0x10
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4267cd
cmp dword [ebp + 0x10], 0
jne 0x4267cd
cmp dword [esp + 0x24], 0
je 0x426791
lea ecx, [esp + 0x50]
push ecx
push 0
push dword [esp + 0x20]
xorps xmm0, xmm0
push 0
movdqa xmmword [esp + 0x60], xmm0
push eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x6c], 0
call dword [sym.imp.KERNEL32.dll_UnlockFileEx]
cmp eax, 1
jne 0x42677b
push str.UnlockFileEx_SUCCESS.
push 5
call fcn.0041f8e0
add esp, 8
jmp 0x426791
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_UnlockFileEx__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x426799
mov esi, dword [esi]
push esi
push str.readCacheDocData:_CloseHandle___s_.
push 5
call fcn.0041f8e0
add esp, 0xc
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4267cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_CloseHandle__error_code:_d.
push 4
call fcn.0041f8e0
add esp, 0xc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4267de
push eax
call fcn.005864b7
add esp, 4
push dword [esp + 0x20]
call fcn.005864b7
mov eax, dword [esp + 0x7c]
add esp, 4
test eax, eax
je 0x426801
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x426810
push eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc