Function at 0x403d60
Capabilities:
Check if file exists
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x581900]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
xorps xmm0, xmm0
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.004a73a0
add esp, 4
test eax, eax
jne 0x40407e
test edi, edi
je 0x403dbf
mov dword [edi], eax
test ebx, ebx
je 0x403dc9
mov dword [ebx], 0
push 0x50b2a4
push esi
call fcn.004a95f0
add esp, 8
test eax, eax
jne 0x403e04
push 0x50a668
push esi
mov ebx, 0x4e20
call fcn.004a5b00
add esp, 4
push eax
call fcn.004eeba8
add esp, 8
test eax, eax
je 0x403e06
mov dword [ebp - 0x38], 0
jmp 0x403e12
xor ebx, ebx
push esi
call fcn.004040a0
add esp, 4
mov dword [ebp - 0x38], eax
push 0
push ebx
push 0
push SQLGetDiagRec
push 3
push 0
push 7
push 1
push esi
call fcn.00427f00
mov edi, eax
add esp, 0x24
cmp edi, 0xffffffff
jne 0x403e74
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x40407e
cmp eax, 3
je 0x40407e
cmp eax, 0xf
je 0x40407e
cmp eax, 0x35
je 0x40407e
push eax
push str._GetLastError_
push esi
push str.:6:GetArchiveCheckSum___s___FAILED:_CreateFileTimeOut___FAILED:__s_ld
call fcn.00424fd0
jmp 0x40407b
push 0
push 0
push dword [ebp - 0x38]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x2c]
push eax
push 4
lea eax, [ebp - 0x30]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x404043
cmp dword [ebp - 0x2c], 4
jb 0x404043
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x2c]
push 0
push eax
push 4
lea eax, [ebp - 0x34]
push eax
push edi
call ebx
test eax, eax
je 0x40401e
cmp dword [ebp - 0x2c], 4
jb 0x40401e
push 0
lea eax, [ebp - 0x2c]
push eax
push 8
lea eax, [ebp - 0x3c]
push eax
push edi
call ebx
push 0
lea eax, [ebp - 0x2c]
push eax
push 0x20
lea eax, [ebp - 0x28]
push eax
push edi
call ebx
test eax, eax
jne 0x403f30
push 0x50f
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
push str.GetArchiveCheckSum
push edi
call fcn.00426230
push str._GetLastError_
push 0x21
push dword [ebp - 0x2c]
push esi
push str.:4:GetArchiveCheckSum___s___FAILED:_ReadFile___FAILED_to_read_the_Archive_Validation_String:_Only__ld_bytes_of__ld_could_be_read:__s
call fcn.00424a90
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
push 0x516
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
push str.GetArchiveCheckSum
push edi
call fcn.00426230
mov edi, dword [ebp - 0x2c]
cmp edi, 0x22
jb 0x403f6f
push edi
push esi
push str.:4:GetArchiveCheckSum___s___FAILED:_AN_IMPOSSIBLE_EXCEPTION_HAS_OCCURRED:_ReadFile___read_too_many_bytes_____Read__ld___
call fcn.00424a90
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
mov byte [ebp + edi - 0x28], 0
lea eax, [ebp - 0x28]
mov ecx, str.222PAULAARCHIVE222JesusIAdoreYou
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403fa0
test dl, dl
je 0x403f9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403fa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x403f80
xor eax, eax
jmp 0x403fa5
sbb eax, eax
or eax, 1
test eax, eax
je 0x403fcb
push edi
push esi
push str.:4:GetArchiveCheckSum___s___FAILED:_The_archive_validation_string_was_not_found:_Read__ld_bytes.
call fcn.00424a90
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x403ff3
push esi
push str.GetArchiveCheckSum___s___FAILED:_The_archive_size_was_found_to_be_zero.
call fcn.00424a90
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x403fff
mov eax, dword [ebp - 0x34]
mov dword [edx], eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x404008
mov dword [eax], ecx
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
push 0x504
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
push str.GetArchiveCheckSum
push edi
call fcn.00426230
push str._GetLastError_
push dword [ebp - 0x2c]
push esi
push str.:7:GetArchiveCheckSum___s___FAILED:_ReadFile___FAILED_to_read_the_Archive_CheckSum:_Only_read__ld_bytes:__s
jmp 0x404076
push 0x4fb
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
push str.GetArchiveCheckSum
push edi
call fcn.00426230
push 0
push ebx
push esi
call fcn.00429b90
add esp, 0xc
test eax, eax
je 0x40407e
push str._GetLastError_
push dword [ebp - 0x2c]
push esi
push str.:7:GetArchiveCheckSum___s___FAILED:_ReadFile___FAILED_to_read_the_archive_size:_Only_read__ld_bytes:__s
call fcn.00424a90
add esp, 0x10
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e50dc
mov esp, ebp
pop ebp
ret