Function at 0x10050b0
Capabilities:
Get storage device properties
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x874
mov eax, dword [0x100c034]
mov dword [ebp - 0x18], eax
push esi
push edi
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x4a8], 0x1c
lea eax, [ebp - 0x4a8]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push 0x1001270
push 0
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
jne 0x100517b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x4ac], 0x103
jne 0x1005149
push 0x1001e0c
call fcn.01005caa
add esp, 4
jmp 0x1005174
mov eax, dword [ebp - 0x4ac]
push eax
push 0x1001dd8
call fcn.01005caa
add esp, 8
push 0x103
push 0x1001c34
push 0x1001c1c
call fcn.01005caa
add esp, 0xc
xor eax, eax
jmp 0x10058b0
push 0
lea ecx, [ebp - 0x4b4]
push ecx
push 0
push 0
lea edx, [ebp - 0x4a8]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
jne 0x10051ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x4ac], 0x7a
je 0x10051ef
mov ecx, dword [ebp - 0x4ac]
push ecx
push 0x1001be4
call fcn.01005caa
add esp, 8
push 0x11e
push 0x1001c34
push 0x1001c1c
call fcn.01005caa
add esp, 0xc
xor eax, eax
jmp 0x10058b0
mov edx, dword [ebp - 0x4b4]
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x274]
push eax
call fcn.01005e3b
add esp, 4
mov dword [ebp - 0x48c], eax
cmp dword [ebp - 0x48c], 0
jne 0x1005244
push 0x1001d98
call fcn.01005caa
add esp, 4
push 0x12d
push 0x1001c34
push 0x1001c1c
call fcn.01005caa
add esp, 0xc
xor eax, eax
jmp 0x10058b0
mov ecx, dword [ebp - 0x48c]
mov dword [ecx], 5
push 0
lea edx, [ebp - 0x4b4]
push edx
mov eax, dword [ebp - 0x274]
push eax
mov ecx, dword [ebp - 0x48c]
push ecx
lea edx, [ebp - 0x4a8]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
jne 0x10052b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001d58
call fcn.01005caa
add esp, 8
push 0x13b
push 0x1001c34
push 0x1001c1c
call fcn.01005caa
add esp, 0xc
xor eax, eax
jmp 0x10058b0
mov ecx, dword [ebp - 0x48c]
add ecx, 4
push ecx
push 0x1001d48
call fcn.01005caa
add esp, 8
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
mov edx, dword [ebp - 0x48c]
add edx, 4
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x48c]
push eax
call fcn.01005d15
add esp, 4
cmp dword [ebp - 0x14], 0xffffffff
jne 0x100533c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001d24
call fcn.01005caa
add esp, 8
push 0x155
push 0x1001c34
push 0x1001c1c
call fcn.01005caa
add esp, 0xc
mov eax, 1
jmp 0x10058b0
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x484], 0
push 0
lea ecx, [ebp - 0x10]
push ecx
push 0x200
lea edx, [ebp - 0x478]
push edx
push 0xc
lea eax, [ebp - 0x488]
push eax
push 0x2d1400
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
jne 0x10053b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1001d00
call fcn.01005caa
add esp, 8
push 0x169
push 0x1001c34
push 0x1001c1c
call fcn.01005caa
add esp, 0xc
lea edx, [ebp - 0x478]
mov dword [ebp - 0xc], edx
lea eax, [ebp - 0x478]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc], 0
je 0x10057f8
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 8]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x10057f8
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x270], ecx
jmp 0x1005405
mov edx, dword [ebp - 0x270]
add edx, 1
mov dword [ebp - 0x270], edx
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x270]
movzx ecx, byte [eax]
test ecx, ecx
je 0x1005422
mov edx, dword [ebp - 0x270]
cmp edx, dword [ebp - 0x10]
jae 0x1005422
jmp 0x10053f6
mov eax, dword [ebp - 0x270]
add eax, 1
mov ecx, dword [ebp - 0xc]
sub eax, dword [ecx + 0xc]
push eax
push 0x1001cf4
call fcn.01005caa
add esp, 8
mov edx, dword [ebp - 0x270]
add edx, 1
mov eax, dword [ebp - 0xc]
sub edx, dword [eax + 0xc]
push edx
call fcn.01005e3b
add esp, 4
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x270]
add ecx, 1
mov edx, dword [ebp - 0xc]
sub ecx, dword [edx + 0xc]
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
add esi, dword [eax + 0xc]
mov edi, dword [ebp - 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
mov eax, dword [ebp - 4]
push eax
push 0x1001ce4
lea ecx, [ebp - 0x538]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x538]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x1005483
mov dword [ebp - 0x83c], 0x1001cd8
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x840], ecx
mov edx, dword [ebp - 0x840]
mov al, byte [edx]
mov byte [ebp - 0x841], al
mov ecx, dword [ebp - 0x83c]
cmp al, byte [ecx]
jne 0x100552b
cmp byte [ebp - 0x841], 0
je 0x100551f
mov edx, dword [ebp - 0x840]
mov al, byte [edx + 1]
mov byte [ebp - 0x842], al
mov ecx, dword [ebp - 0x83c]
cmp al, byte [ecx + 1]
jne 0x100552b
add dword [ebp - 0x840], 2
add dword [ebp - 0x83c], 2
cmp byte [ebp - 0x842], 0
jne 0x10054cd
mov dword [ebp - 0x848], 0
jmp 0x1005536
sbb edx, edx
sbb edx, 0xffffffff
mov dword [ebp - 0x848], edx
mov eax, dword [ebp - 0x848]
mov dword [ebp - 0x84c], eax
cmp dword [ebp - 0x84c], 0
je 0x1005679
mov dword [ebp - 0x850], 0x1001ccc
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x854], ecx
mov edx, dword [ebp - 0x854]
mov al, byte [edx]
mov byte [ebp - 0x855], al
mov ecx, dword [ebp - 0x850]
cmp al, byte [ecx]
jne 0x10055c0
cmp byte [ebp - 0x855], 0
je 0x10055b4
mov edx, dword [ebp - 0x854]
mov al, byte [edx + 1]
mov byte [ebp - 0x856], al
mov ecx, dword [ebp - 0x850]
cmp al, byte [ecx + 1]
jne 0x10055c0
add dword [ebp - 0x854], 2
add dword [ebp - 0x850], 2
cmp byte [ebp - 0x856], 0
jne 0x1005562
mov dword [ebp - 0x85c], 0
jmp 0x10055cb
sbb edx, edx
sbb edx, 0xffffffff
mov dword [ebp - 0x85c], edx
mov eax, dword [ebp - 0x85c]
mov dword [ebp - 0x860], eax
cmp dword [ebp - 0x860], 0
je 0x1005679
mov dword [ebp - 0x864], 0x1001cc0
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x868], ecx
mov edx, dword [ebp - 0x868]
mov al, byte [edx]
mov byte [ebp - 0x869], al
mov ecx, dword [ebp - 0x864]
cmp al, byte [ecx]
jne 0x1005655
cmp byte [ebp - 0x869], 0
je 0x1005649
mov edx, dword [ebp - 0x868]
mov al, byte [edx + 1]
mov byte [ebp - 0x86a], al
mov ecx, dword [ebp - 0x864]
cmp al, byte [ecx + 1]
jne 0x1005655
add dword [ebp - 0x868], 2
add dword [ebp - 0x864], 2
cmp byte [ebp - 0x86a], 0
jne 0x10055f7
mov dword [ebp - 0x870], 0
jmp 0x1005660
sbb edx, edx
sbb edx, 0xffffffff
mov dword [ebp - 0x870], edx
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x874], eax
cmp dword [ebp - 0x874], 0
jne 0x10057ea
mov ecx, dword [ebp - 4]
push ecx
call fcn.01005d15
add esp, 4
push 0
push 0
push 0x1001cb8
lea edx, [ebp - 0x5b8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x5b8]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x1005685
mov ecx, 0x94
xor eax, eax
lea edi, [ebp - 0x268]
rep stosd dword es:[edi], eax
mov word [ebp - 0x268], 0x2c
mov byte [ebp - 0x265], 0
mov byte [ebp - 0x264], 1
mov byte [ebp - 0x263], 0
mov byte [ebp - 0x262], 6
mov byte [ebp - 0x261], 0x18
mov byte [ebp - 0x260], 1
mov dword [ebp - 0x25c], 0xc0
mov dword [ebp - 0x258], 2
mov dword [ebp - 0x254], 0x50
mov dword [ebp - 0x250], 0x30
mov byte [ebp - 0x24c], 1
mov edx, dword [ebp - 0x25c]
add edx, 0x50
mov dword [ebp - 0x26c], edx
push 0
lea eax, [ebp - 0x278]
push eax
mov ecx, dword [ebp - 0x26c]
push ecx
lea edx, [ebp - 0x268]
push edx
push 0x2c
lea eax, [ebp - 0x268]
push eax
push 0x4d004
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
jne 0x10057e8
push 0
push 0
push 0x1001ca0
lea edx, [ebp - 0x638]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x638]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x1005778
push 0x19c
push 0x1001c34
push 0x1001c1c
lea edx, [ebp - 0x6b8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0x6b8]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
jne 0x10057ad
jmp 0x10057f6
mov edx, dword [ebp - 4]
push edx
call fcn.01005d15
add esp, 4
jmp 0x100582d
push 0
push 0
push 0x1001c8c
lea eax, [ebp - 0x738]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 0x738]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor edx, edx
jne 0x10057f8
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x10058ab
push 0
push 0
push 0x1001c70
lea ecx, [ebp - 0x7b8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x7b8]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x100583b
push 0x1ae
push 0x1001c34
push 0x1001c1c
lea ecx, [ebp - 0x838]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x1001ba8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jne 0x1005870
mov eax, 1
mov ecx, dword [ebp - 0x18]
call fcn.01005938
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8