Function at 0x402cba
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
xor ebx, ebx
push edi
push ebx
push 0x80
push 3
push ebx
push ebx
push 0x80000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x402d07
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetDiskBlobFromFile._1.__08X.__s.
push 0x4182fc
push 1
call fcn.00407279
add esp, 0x14
jmp 0x402f92
lea eax, [ebp - 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
jne 0x402d35
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x402f92
sub eax, 8
mov esi, 0x4182fc
push eax
mov dword [ebp - 4], eax
push dword [ebp - 0xc]
push edi
push dword [ebp + 8]
push str.GetDiskBlobFromFile._2.__s.__08X.__08X.__08X.
push esi
push 3
call fcn.00407279
add esp, 0x1c
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
call ebx
cmp dword [ebp - 0xc], 0
jne 0x402d74
cmp dword [ebp - 4], 0x7fffffff
jae 0x402d74
xor eax, eax
jmp 0x402d77
lea eax, [ebp - 0xc]
push 0
push eax
push dword [ebp - 4]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x402f49
and dword [ebp - 4], 0
lea eax, [ebp - 4]
push 0
push eax
lea eax, [ebp - 8]
push 4
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x402f49
cmp dword [ebp - 4], 4
jne 0x402f49
push 4
lea eax, [ebp - 8]
push str.DPDL
push eax
call fcn.0040b9e0
add esp, 0xc
test eax, eax
jne 0x402f49
and dword [ebp - 4], eax
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push 4
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x402f1d
cmp dword [ebp - 4], 4
jne 0x402f1d
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp - 8]
push str.GetDiskBlobFromFile._5.__08X.__08X.
push esi
push 3
call fcn.00407279
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
add esp, 0x14
cmp eax, dword [ecx]
jbe 0x402e2d
push edi
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xea
jmp 0x402f90
lea eax, [ebp - 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
jne 0x402e5d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetDiskBlobFromFile._6.__08X.__08
jmp 0x402f35
push 0xfffffffffffffff8
pop ecx
sub ecx, dword [ebp - 8]
add eax, ecx
push eax
mov dword [ebp - 4], eax
push dword [ebp - 0xc]
push dword [ebp - 8]
push str.GetDiskBlobFromFile._7.__08X.__08X.__08X.
push esi
push 3
call fcn.00407279
add esp, 0x18
cmp dword [ebp - 0xc], 0
jne 0x402e92
cmp dword [ebp - 4], 0x7fffffff
jae 0x402e92
xor eax, eax
jmp 0x402e95
lea eax, [ebp - 0xc]
push 0
push eax
push dword [ebp - 4]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x402ef5
lea eax, [ebp - 4]
push 0
push eax
mov eax, dword [ebp + 0xc]
push dword [ebp - 8]
and dword [ebp - 4], 0
push dword [eax + 4]
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x402ef5
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 8]
jne 0x402ef5
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
push eax
push str.GetDiskBlobFromFile._9.__08X.
push esi
push 3
mov dword [ecx], eax
call fcn.00407279
add esp, 0x10
push 1
pop eax
jmp 0x402f94
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 4]
mov dword [ebp + 0xc], eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetDiskBlobFromFile._8.__08X.__08
push esi
push 1
call fcn.00407279
add esp, 0x18
jmp 0x402f40
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 4]
mov dword [ebp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetDiskBlobFromFile._4.__08X.__08X.
push esi
push 1
call fcn.00407279
add esp, 0x14
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x402f8d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 8]
mov dword [ebp + 0xc], eax
push dword [ebp - 4]
push dword [ebp - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetDiskBlobFromFile._3.__08X.__08X.__08X.__08X.__08X.
push esi
push 1
call fcn.00407279
add esp, 0x20
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0xc], 0
jne 0x402f8d
cmp dword [ebp - 4], 4
jne 0x402f8d
mov dword [ebp + 0xc], 0x3ee
push dword [ebp + 0xc]
call ebx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret