Function at 0x78709a
Capabilities:
Get storage device properties

Disassembly:
push ebp
lea ebp, reloc.ws2_32.dll_WSASetLastError
mov eax, 0x2c44
call fcn.007c1eb0
mov eax, dword [0x830e54]
xor eax, ebp
mov dword [ebp + reloc.ws2_32.dll_WSASetLastError], eax
push ebx
mov ebx, dword [ebp + reloc.ws2_32.dll_WSASetLastError]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x68], edi
push dword [ebp - 0x68]
lea eax, reloc.ws2_32.dll_WSASetLastError
push 0x7ec878
push eax
call fcn.007e5e9e
add esp, 0xc
push edi
push edi
push 3
push edi
push 7
push 0xc0000000
lea eax, reloc.ws2_32.dll_WSASetLastError
push eax
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [ebp - 0x6c], eax
cmp eax, reloc.ws2_32.dll_WSASetLastError
je 0x7872d4
push 0x18
lea eax, [ebp - 0x5c]
push edi
push eax
call fcn.007c3430
add esp, 0xc
push edi
lea eax, [ebp - 0x78]
push eax
push 0x18
lea eax, [ebp - 0x5c]
push eax
push edi
push edi
push 0x74080
push dword [ebp - 0x6c]
call dword [sym.imp.kernel32.dll_DeviceIoControl]
test eax, eax
je 0x7872cb
push 0x221
call fcn.007c9be6
mov esi, eax
pop ecx
mov dword [ebp - 0x74], esi
cmp esi, edi
je 0x787414
push 0x221
push edi
push esi
call fcn.007c3430
add esp, 0xc
push edi
lea eax, [ebp - 0x80]
push eax
push 0x221
push esi
push 0x21
push esi
push 0x7c088
push dword [ebp - 0x6c]
mov byte [esi + 0xa], 0xec
call dword [sym.imp.kernel32.dll_DeviceIoControl]
test eax, eax
je 0x7872c1
push 0x200
call fcn.007c9be6
pop ecx
mov dword [ebp - 0x64], eax
cmp eax, edi
je 0x78740d
push 0x200
push edi
push eax
call fcn.007c3430
push 0x200
lea eax, [esi + 0x10]
push eax
push dword [ebp - 0x64]
call fcn.007c2eb0
push 0x29
call fcn.007c9be6
add esp, 0x1c
mov dword [ebp - 0x60], eax
cmp eax, edi
je 0x787419
push 0x29
push edi
push eax
call fcn.007c3430
mov eax, dword [ebp - 0x60]
add esp, 0xc
push 0x1b
pop ecx
mov edx, dword [ebp - 0x64]
mov dl, byte [edx + ecx*2 + 1]
mov byte [eax], dl
mov edx, dword [ebp - 0x64]
movzx edx, word [edx + ecx*2]
and edx, 0x800000ff
jns 0x787213
dec edx
or edx, 0xffffff00
inc edx
mov byte [eax + 1], dl
add eax, 2
inc ecx
cmp ecx, 0x2e
jle 0x7871f3
push 0x87ee90
push dword [ebp - 0x60]
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78742a
push 0x87ee30
push dword [ebp - 0x60]
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78742a
push 0x87eef8
push dword [ebp - 0x60]
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78742a
push 0x87ee80
push dword [ebp - 0x60]
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78742a
push 0x87ee40
push dword [ebp - 0x60]
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78742a
push 0x87eec0
push dword [ebp - 0x60]
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78742a
push dword [ebp - 0x60]
call fcn.007c9cf8
push dword [ebp - 0x64]
mov dword [ebp - 0x60], edi
call fcn.007c9cf8
pop ecx
pop ecx
mov dword [ebp - 0x64], edi
push esi
call fcn.007c9cf8
pop ecx
mov dword [ebp - 0x74], edi
push dword [ebp - 0x6c]
call dword [sym.imp.kernel32.dll_CloseHandle]
inc dword [ebp - 0x68]
cmp dword [ebp - 0x68], 0x10
jl 0x7870dc
mov dword [ebp - 0x68], edi
mov ebx, 0x2710
push dword [ebp - 0x68]
lea eax, reloc.ws2_32.dll_WSASetLastError
push 0x7ec878
push eax
call fcn.007e5e9e
add esp, 0xc
push edi
push edi
push 3
push edi
push 3
push edi
lea eax, reloc.ws2_32.dll_WSASetLastError
push eax
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [ebp - 0x6c], eax
cmp eax, reloc.ws2_32.dll_WSASetLastError
je 0x787432
push 0xc
lea eax, [ebp - 0x44]
push edi
push eax
call fcn.007c3430
push ebx
lea eax, [ebp - 0x38]
push edi
push eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
call fcn.007c3430
add esp, 0x18
push edi
lea eax, [ebp - 0x78]
push eax
push ebx
lea eax, [ebp - 0x38]
push eax
push 0xc
lea eax, [ebp - 0x44]
push eax
push 0x2d1400
push dword [ebp - 0x6c]
call dword [sym.imp.kernel32.dll_DeviceIoControl]
test eax, eax
je 0x7873fe
push edi
push dword [ebp - 0x28]
lea eax, [ebp - 0x38]
push eax
lea esi, reloc.ws2_32.dll_WSASetLastError
call fcn.00786ec8
mov eax, esi
push 0x87ee90
push eax
call fcn.007c3590
add esp, 0x14
test eax, eax
jne 0x78743b
mov eax, esi
push 0x87ee30
push eax
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78743b
mov eax, esi
push 0x87eef8
push eax
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78743b
mov eax, esi
push 0x87ee80
push eax
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78743b
mov eax, esi
push 0x87ee40
push eax
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78743b
mov eax, esi
push 0x87eec0
push eax
call fcn.007c3590
pop ecx
pop ecx
test eax, eax
jne 0x78743b
push dword [ebp - 0x6c]
call dword [sym.imp.kernel32.dll_CloseHandle]
inc dword [ebp - 0x68]
cmp dword [ebp - 0x68], 0x10
jl 0x7872e9
jmp 0x787444
push esi
call fcn.007c9cf8
pop ecx
xor eax, eax
inc eax
jmp 0x78747f
push esi
call fcn.007c9cf8
push dword [ebp - 0x64]
call fcn.007c9cf8
pop ecx
jmp 0x787413
mov dword [ebx], 1
jmp 0x787444
mov dword [ebp - 0x7c], 1
jmp 0x787449
mov eax, dword [ebp - 0x70]
mov dword [eax], 1
cmp dword [ebp - 0x6c], edi
je 0x787452
push dword [ebp - 0x6c]
call dword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [ebp - 0x60], edi
je 0x787460
push dword [ebp - 0x60]
call fcn.007c9cf8
pop ecx
cmp dword [ebp - 0x64], edi
je 0x78746e
push dword [ebp - 0x64]
call fcn.007c9cf8
pop ecx
cmp dword [ebp - 0x74], edi
je 0x78747c
push dword [ebp - 0x74]
call fcn.007c9cf8
pop ecx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp + reloc.ws2_32.dll_WSASetLastError]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.007c1e9d
add ebp, 0x2bc4
leave
ret