Function at 0x4029f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x454004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push ecx
push str..PhysicalDrive_d
lea eax, [ebp - 0x88]
mov dword [ebp - 0x90], edx
push 0x40
push eax
mov ebx, 1
mov dword [ebp - 0x48], 0x9063eb
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0x47005456
mov dword [ebp - 0x14], 0x44480065
mov dword [ebp - 0x10], 0x645200
mov dword [ebp - 0xc], 0xd724520
call fcn.00401100
add esp, 0x10
lea eax, [ebp - 0x88]
push 0
push 0
push 3
push 0
push ebx
push closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
mov dword [ebp - 0x94], edi
cmp edi, 0xffffffff
jne 0x402aef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x88]
push eax
push str.CreateFileA__s_failed__u_n
push ebx
call fcn.00401a20
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00423c62
mov esp, ebp
pop ebp
ret
push 0x4400
call fcn.00425f1b
mov esi, eax
add esp, 4
test esi, esi
je 0x402cf1
push 0x4400
push 0
push esi
call fcn.004252d0
add esp, 0xc
lea eax, [ebp - 0x8c]
push 0
push eax
push 0x4400
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x402cd2
cmp dword [ebp - 0x8c], 0x4400
jne 0x402cd2
mov ecx, esi
lea edx, [ebp - 0x48]
mov edi, 0x2c
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x402cb7
add ecx, 4
add edx, 4
sub edi, 4
jae 0x402b50
lea ecx, [esi + 0x190]
mov edi, 0xc
lea edx, [ebp - 0x18]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x402cb7
add ecx, 4
add edx, 4
sub edi, 4
jae 0x402b73
cmp byte [esi + 0x1c2], 0xee
jne 0x402bd3
cmp dword [esi + 0x200], 0x20494645
jne 0x402bb9
cmp dword [esi + 0x204], 0x54524150
jne 0x402bb9
mov eax, dword [esi + 0x4a0]
mov edx, ebx
mov ecx, dword [esi + 0x4a4]
jmp 0x402bdd
push str.Invalid_GPT_Signature_n
push 1
call fcn.00401a20
mov edi, dword [ebp - 0x94]
add esp, 8
jmp 0x402ce8
mov eax, dword [esi + 0x1d6]
xor ecx, ecx
xor edx, edx
mov edi, dword [ebp - 0x90]
mov dword [edi + 0x208], edx
mov edi, dword [ebp - 0x94]
mov dword [0x455bbc], edi
mov dword [0x455c08], eax
mov dword [0x455c0c], ecx
call fcn.00404060
cmp dword [0x456918], 0
jne 0x402c13
call fcn.00404060
mov ecx, 0x455c18
mov dword [0x455c4c], 0x402970
mov dword [0x455c50], 0
call fcn.00403230
test eax, eax
je 0x402c45
push eax
push str.FAT_FS:_Error_could_not_load_FAT_details___d___r_n
call fcn.00401930
add esp, 8
jmp 0x402c87
mov ecx, dword [ebp - 0x90]
mov dword [0x455c14], ebx
lea ecx, [ecx + 0x1c4]
call fcn.004027c0
mov ebx, eax
test ebx, ebx
jne 0x402c87
mov ecx, str._EFI_BOOT_grubx64_real.efi
call fcn.00404110
test eax, eax
je 0x402c87
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 0x204], 1
mov ecx, eax
call fcn.00404390
cmp dword [0x456918], 0
jne 0x402c95
call fcn.00404060
mov eax, dword [0x455c54]
test eax, eax
je 0x402ca0
call eax
mov ecx, 0x455c18
call fcn.00404f20
mov eax, dword [0x455c58]
test eax, eax
je 0x402ce8
call eax
jmp 0x402ce8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Invalid_MBR_Code__u_n
push 1
call fcn.00401a20
mov edi, dword [ebp - 0x94]
jmp 0x402ce5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ReadFile_failed__u_n
push 1
call fcn.00401a20
add esp, 0xc
push esi
call fcn.00425f00
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00423c62
mov esp, ebp
pop ebp
ret