Function at 0x421120
Capabilities:
Get disk information via ioctl
Query environment variable
Read file on windows

Disassembly:
sub esp, 0x320
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x129]
mov byte [esp + 0x128], bl
mov byte [esp + 0x22c], bl
rep stosd dword es:[edi], eax
mov cl, byte [0x43d554]
xor edx, edx
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [str.._]
mov byte [esp + 0x28], cl
mov dword [esp + 0x24], eax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x29]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x22d]
push str.Function_Entry
rep stosd dword es:[edi], eax
mov ecx, dword [0x43b588]
mov dword [esp + 0x20], edx
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x43b668]
push 0x43d2ec
push 4
mov dword [esp + 0x2c], edx
mov edx, dword [0x43b590]
push 0x1e2
push eax
mov eax, dword [0x43b58c]
push ecx
push edx
push eax
push 1
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
call fcn.0040ee40
mov edi, dword [esp + 0x358]
add esp, 0x24
cmp edi, ebx
je 0x42137e
cmp dword [esp + 0x33c], ebx
je 0x42137e
mov eax, dword [esp + 0x338]
cmp eax, 0x3f
jbe 0x42120c
mov esi, 0x80000b03
mov eax, 0x65
mov ecx, esi
mov edx, 0x1ee
jmp 0x42138f
cmp dword [edi + 0x54], 0xffffffff
jne 0x421332
lea ecx, [esp + 0x128]
push 0x103
push ecx
push str.SystemDrive
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jne 0x421248
mov esi, 0x80000b00
mov eax, 0x65
mov ecx, esi
mov edx, 0x1fd
jmp 0x42138f
lea edx, [esp + 0x128]
push 0x104
lea eax, [esp + 0x28]
push edx
push eax
call fcn.00409a40
add esp, 0xc
mov ebp, dword [sym.imp.KERNEL32.dll_CreateFileA]
lea ecx, [esp + 0x24]
push ebx
push ebx
push 3
push ebx
push 3
push 0x80000000
push ecx
call ebp
mov esi, eax
cmp esi, 0xffffffff
jne 0x421298
mov esi, 0x80000b00
mov eax, 0x65
mov ecx, esi
mov edx, 0x20d
jmp 0x42138f
lea edx, [esp + 0x14]
push ebx
push edx
lea eax, [esp + 0x20]
push 0xc
push eax
push ebx
push ebx
push 0x2d1080
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4212d4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x80000b00
mov eax, 0x65
mov ecx, esi
mov edx, 0x21d
jmp 0x42138f
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x22c]
push ecx
push str..PhysicalDrive_d
push 0x104
push edx
call fcn.00409b70
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push 3
push ebx
push 3
lea eax, [esp + 0x240]
push 0xc0000000
push eax
call ebp
cmp eax, 0xffffffff
mov dword [edi + 0x54], eax
jne 0x42132b
mov esi, 0x80000b00
mov eax, 0x65
mov ecx, esi
mov edx, 0x23a
jmp 0x42138f
mov eax, dword [esp + 0x338]
mov edx, dword [edi + 0x54]
lea ecx, [esp + 0x10]
push ebx
push ecx
shl eax, 9
push eax
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [esp + 0x33c]
mov edx, dword [edi + 0x54]
lea eax, [esp + 0x10]
push ebx
push eax
push 0x200
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x42137a
mov esi, 0x80000b00
mov eax, 0x65
mov ecx, esi
mov edx, 0x24d
jmp 0x42138f
xor esi, esi
jmp 0x4213b7
mov esi, 0x80000b03
mov eax, 0x66
mov ecx, esi
mov edx, 0x1e8
push eax
mov eax, dword [0x43b668]
push edx
mov edx, dword [0x43b588]
push eax
mov eax, dword [0x43b590]
push edx
mov edx, dword [0x43b58c]
push eax
push edx
push ecx
push esi
push 3
call fcn.0040fdd0
add esp, 0x24
mov eax, dword [0x43b668]
mov ecx, dword [0x43b588]
mov edx, dword [0x43b590]
push esi
push str.Function_Exit
push str._s__Rc__0x_08X
push 4
push 0x258
push eax
mov eax, dword [0x43b58c]
push ecx
push edx
push eax
push 1
call fcn.0040ee40
add esp, 0x28
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x320
ret