Function at 0x40e7df
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x5d78]
mov eax, 0x5df8
call fcn.0041d7b0
mov eax, dword [0x450970]
xor eax, ebp
mov dword [ebp + 0x5d74], eax
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x5c], esi
call fcn.0040106c
mov edi, eax
xor ebx, ebx
mov dword [ebp - 0x78], edi
cmp edi, ebx
jne 0x40e839
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.could_not_open_module__d
call fcn.0040b625
push 0x43cc6c
push 0x3f1
call fcn.00403fa8
add esp, 0x10
push edi
call fcn.0040115a
pop ecx
push 1
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push eax
push str.starting_at__d
call fcn.0040b684
push edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x50], 1
call fcn.004042a7
add esp, 0xc
cmp eax, 0xe8e413d5
jne 0x40ea1b
mov dword [ebp - 0x50], ebx
cmp byte [0x463867], bl
je 0x40e9ee
push edi
call fcn.004042a7
pop ecx
test eax, eax
je 0x40e9ee
push edi
call fcn.004042a7
push edi
mov dword [ebp - 0x50], eax
call fcn.0040425c
push edx
push eax
push str.verifying_integrity_length__I64d
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
call fcn.0040b684
lea eax, [ebp - 0x68]
push eax
call fcn.0040af54
add esp, 0x18
xor esi, esi
cmp dword [ebp - 0x54], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x74], ebx
jl 0x40e9c6
jg 0x40e8de
cmp dword [ebp - 0x58], ebx
jbe 0x40e9c6
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
sub ecx, esi
sbb eax, dword [ebp - 0x6c]
js 0x40e8ff
jg 0x40e8f5
cmp ecx, 0x2ee0
jbe 0x40e8ff
mov ecx, 0x2ee0
mov dword [ebp - 0x7c], ebx
jmp 0x40e902
mov dword [ebp - 0x7c], eax
push ebx
lea eax, [ebp - 0x60]
push eax
push ecx
lea eax, [ebp + 0x2e94]
push eax
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40e921
cmp dword [ebp - 0x60], ebx
jne 0x40e94b
push dword [ebp - 0x6c]
push esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x60]
push str.check_ReadFile_failed__d__d__I64d
call fcn.0040b625
push 0x43cbb8
push 0x3f1
call fcn.00403fa8
add esp, 0x1c
push dword [ebp - 0x60]
lea eax, [ebp + 0x2e94]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0040af7c
add esp, 0xc
add esi, dword [ebp - 0x60]
adc dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x5c], ebx
je 0x40e9af
push ebx
push 0x64
push dword [ebp - 0x6c]
push esi
call fcn.00422900
push dword [ebp - 0x54]
push dword [ebp - 0x58]
push edx
push eax
call fcn.00422850
mov edi, eax
mov eax, dword [ebp - 0x74]
mov ecx, edx
cdq
cmp ecx, edx
jl 0x40e9af
jg 0x40e997
cmp edi, eax
jbe 0x40e9af
push ebx
push edi
push 0x402
push 0x3e9
push dword [ebp - 0x5c]
mov dword [ebp - 0x74], edi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x54]
jl 0x40e8de
jg 0x40e9c6
cmp esi, dword [ebp - 0x58]
jb 0x40e8de
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040af5c
push dword [ebp - 0x50]
push dword [ebp - 0x64]
push dword [ebp - 0x50]
push dword [ebp - 0x64]
push str.checksums:__u__u__d__d
call fcn.0040b684
add esp, 0x1c
jmp 0x40ea1b
cmp esi, ebx
je 0x40ea1b
push 0x1900064
push 0x64
push 0x401
mov edi, 0x3e9
push edi
push esi
mov esi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
call esi
push ebx
push 0x65
push 0x402
push edi
push dword [ebp - 0x5c]
call esi
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x50]
pop edi
pop esi
pop ebx
cmp dword [ebp - 0x64], eax
je 0x40ea6f
lea eax, [ebp + 0x2e94]
push eax
push 0x4e2d
call fcn.0040373f
lea eax, [ebp - 0x4c]
push eax
push 0x4e30
call fcn.0040373f
add esp, 0x10
push 0x10
lea eax, [ebp + 0x2e94]
push eax
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x5c]
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call fcn.00403e4b
pop ecx
mov ecx, dword [ebp + 0x5d74]
xor ecx, ebp
call fcn.0041d798
add ebp, 0x5d78
leave
ret