Function at 0x434622
Capabilities:
Get disk information via ioctl

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0xc], ecx
xor ebx, ebx
mov eax, 0x300
push 0x7a
mov dword [ebp - 8], ebx
pop esi
mov dword [ebp - 4], eax
cmp esi, 0x7a
je 0x43464c
cmp esi, 0x18
jne 0x4346ab
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x434801
xor ecx, ecx
lea eax, [ebp - 0x10]
push ecx
push eax
push dword [ebp - 4]
push edi
push ecx
push ecx
push 0x70050
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4346a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
push 0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 4]
xor edi, edi
add eax, 0x900
jmp 0x43463f
xor esi, esi
test esi, esi
je 0x434804
cmp esi, 0x18
je 0x434804
cmp esi, 0x7a
je 0x434804
push 0x7a
pop esi
lea eax, [esi + 0x2e]
mov dword [ebp - 4], eax
cmp esi, 0x7a
je 0x4346d8
cmp esi, 0x18
jne 0x43473d
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x434801
xor ecx, ecx
lea eax, [ebp - 0x10]
push ecx
push eax
push dword [ebp - 4]
push ebx
push ecx
push ecx
push 0x7400c
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x43473b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push 0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 4]
xor ebx, ebx
mov dword [ebp - 8], ebx
add eax, 0x200
jmp 0x4346cb
xor esi, esi
test esi, esi
jne 0x4347eb
mov eax, dword [ebx]
mov dword [ebp - 0xc], eax
dec eax
imul eax, eax, 0x90
add eax, 0xc0
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x434774
push 0x7a
pop esi
jmp 0x4347eb
and dword [edi], 0
lea edx, [ebx + 8]
cmp dword [ebp - 0xc], 0
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, dword [ebx + 4]
mov dword [edi + 8], eax
lea eax, [edi + 0x30]
mov dword [ebp - 4], eax
jbe 0x4347eb
mov ebx, dword [ebp - 0xc]
mov edi, eax
lea ecx, [edi + 0x10]
and dword [edi], 0
mov eax, dword [edx]
lea edx, [edx + 0x20]
mov dword [ecx - 8], eax
mov eax, dword [edx - 0x1c]
mov dword [ecx - 4], eax
mov eax, dword [edx - 0x18]
mov dword [ecx], eax
mov eax, dword [edx - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [edx - 0xc]
mov dword [ecx + 8], eax
mov al, byte [edx - 5]
mov byte [ecx + 0xc], al
mov al, byte [edx - 8]
mov byte [ecx + 0x10], al
mov al, byte [edx - 7]
mov byte [ecx + 0x11], al
mov al, byte [edx - 6]
mov byte [ecx + 0x12], al
mov eax, dword [edx - 0x10]
mov dword [ecx + 0x14], eax
mov eax, 0x90
add edi, eax
add ecx, eax
dec ebx
jne 0x434799
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x434804
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x434804
push 0x7a
pop esi
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret