Function at 0x10058694
Capabilities:
Get storage device properties
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xea8
mov bl, byte [esp + 0xec8]
mov eax, dword [0x100c51b8]
xor eax, esp
mov dword [esp + 0xea4], eax
lea esi, [esp + 0x78]
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x40]
mov edi, 0x114
push edi
push 0
push dword [esp + 0x48]
call fcn.1008c000
add esp, 0xc
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x50], eax
movzx eax, bl
mov dword [esp + 0x4c], eax
mov eax, 0x61af7dc
cmp eax, 0xd58e8df7
jle 0x10058c6f
cmp eax, 0x327633ee
jle 0x10059062
cmp eax, 0x327633ef
je 0x10059433
cmp eax, 0x699b0f65
jne 0x10059cd0
mov dword [esp + 0x20], 0
mov ecx, 0x3da161b1
mov dword [esp + 0x1c], 0
cmp ecx, 0xcb09fe2
jg 0x1005877b
cmp ecx, 0xbf155dd5
jg 0x100587d1
cmp ecx, 0x957abe84
jle 0x10058842
cmp ecx, 0xab2a0e43
jg 0x10058943
cmp ecx, 0x957abe85
je 0x10058a3d
cmp ecx, 0x99b7c95b
jne 0x10058730
mov bx, 0x168
mov ecx, 0x212c5d4a
jmp 0x10058730
cmp ecx, 0x323249b6
jle 0x1005880d
cmp ecx, 0x3da161b0
jle 0x1005888f
cmp ecx, 0x67393de8
jg 0x10058989
cmp ecx, 0x3da161b1
je 0x10058a5b
cmp ecx, 0x62057319
jne 0x10058730
cmp dword [esp + 0x38c], 0
mov ecx, 0x288ff13a
mov edx, 0x2a820111
cmovle ecx, edx
jmp 0x10058730
cmp ecx, 0xe4ca52d0
jle 0x100588c1
cmp ecx, 0x166727c
jg 0x100589be
cmp ecx, 0xe4ca52d1
je case.0x10058b63.0
cmp ecx, 0xead8169c
jne 0x10058730
xor edi, edi
mov ecx, 0xab2a0e44
jmp 0x10058730
cmp ecx, 0x288ff139
jle 0x1005890b
cmp ecx, 0x2d0d87ab
jg 0x10058a0d
cmp ecx, 0x288ff13a
je 0x10058a9d
cmp ecx, 0x2a820111
je 0x100589f0
jmp 0x10058730
cmp ecx, 0x8bf8689f
je 0x100589f0
cmp ecx, 0x8e126aee
je 0x10058ab4
cmp ecx, 0x9167611c
jne 0x10058730
mov ecx, dword [esp + 0x5a4]
mov dword [esp + ecx*4 + 0x6a4], 0
movzx ecx, word [esp + 0x64]
mov edi, dword [esp + 0x5a4]
inc edi
mov ecx, 0xab2a0e44
jmp 0x10058730
cmp ecx, 0x323249b7
je 0x100589fe
cmp ecx, 0x3443b09a
je 0x10058adb
cmp ecx, 0x3d3a1661
jne 0x10058730
mov bx, 0x1e8
mov ecx, 0x212c5d4a
jmp 0x10058730
cmp ecx, 0xbf155dd6
je 0x10058aff
cmp ecx, 0xc10cd8b1
je 0x10058b27
cmp ecx, 0xe457205d
jne 0x10058730
mov ecx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x38c], ecx
cmp dword [esp + 0x38c], 0
mov ecx, 0x62057319
mov edx, 0xaed2e19a
cmovg ecx, edx
jmp 0x10058730
cmp ecx, 0xcb09fe3
je 0x10058b86
cmp ecx, 0x1c068497
je case.0x10058b63.1
cmp ecx, 0x212c5d4a
jne 0x10058730
mov word [esp + 0x64], bx
mov ebp, 0x186a0
mov ecx, 0x957abe85
jmp 0x10058730
cmp ecx, 0xab2a0e44
je 0x10058b9d
cmp ecx, 0xaed2e19a
jne 0x10058730
movzx ecx, word [esp + 0x60]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x3a4], ecx
mov ecx, dword [esp + 0x3a4]
not ecx
test cl, 0x48
mov ecx, 0xbf155dd6
mov edx, 0x62057319
cmove ecx, edx
jmp 0x10058730
cmp ecx, 0x67393de9
je 0x10058bc3
cmp ecx, 0x73fce2fa
jne 0x10058730
test dword [esp + 0x4a4], 1
mov ecx, 0x166727d
mov edx, 0x323249b7
cmove ecx, edx
jmp 0x10058730
cmp ecx, 0x166727d
je 0x100589fe
cmp ecx, 0x4bda497
jne 0x10058730
test dword [esp + 0x6c], 1
mov ecx, 0xcb09fe3
mov edx, 0x957abe85
cmove ecx, edx
mov ebp, dword [esp + 0xc]
jmp 0x10058730
mov ecx, 0x3443b09a
mov al, byte [esp + 0x5c]
jmp 0x10058730
movzx ecx, word [esp + 0x64]
mov ecx, 0x2d0d87ac
jmp 0x10058730
cmp ecx, 0x2d0d87ac
jne 0x10058c5a
movzx ecx, word [esp + 0x64]
add ecx, 7
mov word [esp + 0x60], cx
movzx ecx, word [esp + 0x60]
mov dword [esp + 0x24], 0x186a0
mov ecx, 0xe457205d
jmp 0x10058730
lea ecx, [ebp - 1]
mov dword [esp + 0xc], ecx
cmp dword [esp + 0xc], 0
mov ecx, 0xcb09fe3
mov edx, 0x8e126aee
cmovg ecx, edx
jmp 0x10058730
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4a4], ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x5c], cl
mov edx, dword [esp + 0x4a4]
mov cl, byte [esp + 0x5c]
and cl, 1
mov byte [esp + 4], cl
cmp byte [esp + 4], 0
mov ecx, 0xc10cd8b1
mov esi, 0x2dedf43e
cmovne ecx, esi
cmp edx, 0x10
cmovge ecx, esi
jmp 0x10058730
test byte [esp + 0x68], 1
mov ecx, 0x2a820111
mov edx, 0xead8169c
cmove ecx, edx
jmp 0x10058730
movzx ecx, word [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], ecx
test dword [esp + 0x6c], 0x40
mov ecx, 0xcb09fe3
mov edx, 0x4bda497
cmove ecx, edx
jmp 0x10058730
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov ecx, dword [esp + 0x4a4]
inc ecx
mov dword [esp + 0x1c], ecx
mov ecx, 0x3da161b1
mov edx, eax
mov dword [esp + 0x20], edx
jmp 0x10058730
test dword [esp + 0x3a4], 1
mov ecx, 0x62057319
mov edx, 0xe457205d
cmove ecx, edx
mov edx, dword [esp + 0x38c]
mov dword [esp + 0x24], edx
jmp 0x10058730
lea ecx, [esp + 0x6a4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
lea ecx, [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0x4a4]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
cmp ecx, 3
ja case.default.0x10058b63
jmp dword [ecx*4 + 0x100b5530]
mov bx, 0x1f0
mov ecx, 0x212c5d4a
jmp 0x10058730
mov bx, 0x170
mov ecx, 0x212c5d4a
jmp 0x10058730
cmp dword [esp + 0xc], 0
mov ecx, 0x73fce2fa
mov edx, 0x8bf8689f
cmovle ecx, edx
jmp 0x10058730
mov dword [esp + 0x5a4], edi
mov ecx, dword [esp + 0x5a4]
cmp ecx, 0x100
mov ecx, 0x67393de9
mov edx, 0x9167611c
cmovl ecx, edx
jmp 0x10058730
push 0x13
push 0xa
mov esi, edi
mov edi, ebp
lea ebp, [esp + 0x6ac]
push ebp
mov dword [esp + 0x24], ebx
lea ebx, [esp + 0x198]
push ebx
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xebc]
push ebx
call fcn.1000105c
mov ecx, ebx
call fcn.100087f0
push 0x2e
push 0x1b
push ebp
push ebx
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec0]
push ebx
call fcn.1000105c
mov ecx, ebx
call fcn.100087f0
push 0x1a
push 0x17
push ebp
mov ebp, edi
mov edi, esi
push ebx
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec4]
push ebx
call fcn.1000105c
mov ecx, ebx
mov ebx, dword [esp + 0x18]
call fcn.100087f0
mov al, 1
mov ecx, 0x3443b09a
jmp 0x10058730
xor ebx, ebx
jmp 0x1005892f
cmp ecx, 0x2dedf43e
jne 0x10058730
mov al, byte [esp + 4]
jmp 0x10059054
cmp eax, 0xca18d539
jg 0x10059091
cmp eax, 0x8a7dff7f
je 0x100597da
cmp eax, 0xa9a9e94d
jne 0x100586ef
lea eax, [esp + 0x18c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
xor esi, esi
mov eax, 0x999eec08
xor ebx, ebx
cmp eax, 0x1c9ca786
jle 0x10058d44
cmp eax, 0x44711f01
jg 0x10058d97
cmp eax, 0x29e3ee45
jle 0x10058e23
cmp eax, 0x29e3ee46
je 0x10058e40
cmp eax, 0x43ced743
jne 0x10058ca8
lea eax, [esp + 0x6a4]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
lea edx, [esp + 0x60]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 8]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
push ecx
push edx
push 0x18
push dword [esp + 0x14]
push ecx
push ecx
push 0x74080
push dword [esp + 0x84]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
mov eax, 0x1ab1bfc1
mov ecx, 0x6bdf5879
cmove eax, ecx
mov cl, byte [esp + 4]
mov byte [esp + 0x1c], cl
jmp 0x10058ca8
cmp eax, 0xd449e666
jg 0x10058dca
cmp eax, 0x999eec08
je 0x10058e9d
cmp eax, 0x9b0a45fa
je 0x10058ed6
cmp eax, 0xd41ec4c3
jne 0x10058ca8
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x10]
mov dword [esp + 0x3a4], ecx
cmp dword [eax], 0x2f
mov eax, 0x7ddbf6e3
mov ecx, 0xe933b72e
cmovae eax, ecx
mov cl, byte [esp + 4]
mov byte [esp + 0x30], cl
jmp 0x10058ca8
cmp eax, 0x44711f02
je 0x10058f52
cmp eax, 0x6bdf5879
je 0x10058f6a
cmp eax, 0x7ddbf6e3
jne 0x10058ca8
mov eax, 0xd449e667
mov cl, byte [esp + 0x30]
mov byte [esp + 0x20], cl
jmp 0x10058ca8
cmp eax, 0xd449e667
je 0x10058f8e
cmp eax, 0xe933b72e
je 0x10058fb3
cmp eax, 0x1ab1bfc1
jne 0x10058ca8
push 0x221
call fcn.1009ea83
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
mov eax, 0x29e3ee46
mov ecx, 0x1ecef5f2
cmove eax, ecx
mov cl, byte [esp + 4]
mov byte [esp + 0x24], cl
jmp 0x10058ca8
cmp eax, 0x1ecef5f2
jne 0x10059041
mov eax, 0x6bdf5879
mov cl, byte [esp + 0x24]
mov byte [esp + 0x1c], cl
jmp 0x10058ca8
mov eax, dword [esp + 0x6c]
mov byte [eax + 0xa], 0xec
lea edx, [esp + 0x5c]
mov dword [esp + 0x38c], edx
mov eax, dword [esp + 0x38c]
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0xc]
push ecx
push edx
push 0x221
push eax
push 0x21
push eax
push 0x7c088
push dword [esp + 0x84]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
mov eax, 0xd41ec4c3
mov ecx, 0xd449e667
cmove eax, ecx
mov cl, byte [esp + 4]
mov byte [esp + 0x20], cl
jmp 0x10058ca8
mov byte [esp + 4], bl
mov dword [esp + 0x4a4], esi
mov ecx, dword [esp + 0x4a4]
mov al, byte [esp + 4]
and al, 1
mov byte [esp + 0x58], al
cmp byte [esp + 0x58], 0
mov eax, 0x9b0a45fa
mov edx, 0x1c9ca787
cmovne eax, edx
cmp ecx, 0x10
cmovge eax, edx
jmp 0x10058ca8
push 0x200
xor edi, edi
push edi
lea eax, [esp + 0x194]
mov ebp, ebx
mov ebx, eax
push eax
call fcn.1008c000
add esp, 0xc
push dword [esp + 0x4a4]
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0xff
push ebx
call fcn.10059d01
sub esp, 8
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
movaps xmm0, xmmword [0x100b54f0]
movups xmmword [esp + 4], xmm0
mov dword [esp], ebx
mov ebx, ebp
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
mov eax, 0x43ced743
mov ecx, 0x44711f02
cmove eax, ecx
mov cl, byte [esp + 4]
mov byte [esp + 0x18], cl
jmp 0x10058ca8
mov esi, dword [esp + 0x4a4]
inc esi
mov eax, 0x999eec08
mov cl, byte [esp + 0x18]
mov ebx, ecx
jmp 0x10058ca8
push dword [esp + 0x68]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov eax, 0x44711f02
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x18], cl
jmp 0x10058ca8
push dword [esp + 0xc]
call fcn.1009e2e3
add esp, 4
mov eax, dword [esp + 0x38c]
mov eax, 0x1ecef5f2
mov cl, byte [esp + 0x20]
mov byte [esp + 0x24], cl
jmp 0x10058ca8
push 0x13
push 0xa
push dword [esp + 0x3ac]
lea edi, [esp + 0x5b0]
push edi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xebc]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
push 0x2e
push 0x1b
push dword [esp + 0x3ac]
push edi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec0]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
push 0x1a
push 0x17
push dword [esp + 0x3ac]
push edi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec4]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
mov byte [esp + 0x30], 1
mov eax, 0x7ddbf6e3
jmp 0x10058ca8
cmp eax, 0x1c9ca787
jne 0x10058ca8
mov eax, dword [esp + 0x64]
mov al, byte [esp + 0x58]
mov byte [esp + 0x17], al
mov eax, 0x61be5f2d
jmp 0x100586ef
cmp eax, 0xd58e8df8
je 0x10059c96
cmp eax, 0x61af7dc
jne 0x100586ef
mov eax, dword [esp + 0x50]
cmp eax, 2
mov eax, 0x699b0f65
mov ecx, 0x327633ef
cmove eax, ecx
jmp 0x100586ef
cmp eax, 0xca18d53a
je 0x10059cb3
cmp eax, 0xd00521d3
jne 0x100586ef
lea eax, [esp + 0x18c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
xor edi, edi
mov eax, 0xc21e66f3
mov dword [esp + 0x30], 0
cmp eax, 0xd011006f
jg 0x100590ff
cmp eax, 0xb8a5d7cf
jg 0x10059138
cmp eax, 0x968f71f5
je 0x1005924c
cmp eax, 0x97a1e461
je 0x1005927b
cmp eax, 0xa2696cbe
jne 0x100590c5
mov eax, 0xc9b4e3b9
mov cl, byte [esp + 0x18]
mov byte [esp + 0x1c], cl
jmp 0x100590c5
cmp eax, 0x185f65cf
jg 0x1005917f
cmp eax, 0xd0110070
je 0x100592fe
cmp eax, 0xe8b2bad8
je 0x10059318
cmp eax, 0x1da2403
jne 0x100590c5
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xe8b2bad8
mov bl, byte [esp + 0x60]
jmp 0x100590c5
cmp eax, 0xb8a5d7d0
je 0x10059330
cmp eax, 0xc21e66f3
je 0x10059363
cmp eax, 0xc9b4e3b9
jne 0x100590c5
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x4a4]
inc eax
mov dword [esp + 0x24], eax
mov eax, 0x968f71f5
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x20], cl
jmp 0x100590c5
cmp eax, 0x185f65d0
je 0x100593a0
cmp eax, 0x78167f9a
jne 0x10059412
lea esi, [esp + 0x6a4]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
lea eax, [esp + 0x6c0]
mov dword [esp + 0xc], eax
mov byte [esp + 0x38], bl
mov ebx, dword [esp + 0xc]
lea eax, [esp + 0x64]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
push 0x219
xor ebp, ebp
push ebp
lea eax, [esp + 0x6c0]
push eax
call fcn.1008c000
add esp, 0xc
movaps xmm0, xmmword [0x100b5510]
movups xmmword [esp + 0x6a4], xmm0
mov dword [esp + 0x6bc], 0x211
mov dword [esp + 0x6b4], 0x1b0501
mov byte [ebx + 0xa], 0xec
mov eax, dword [esp + 0x4a4]
mov byte [ebx + 0xc], al
mov bl, byte [esp + 0x38]
push ebp
lea eax, [esp + 0x68]
push eax
push 0x22d
push esi
push 0x3c
push esi
push 0x4d008
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
mov eax, 0xb8a5d7d0
mov ecx, 0xc9b4e3b9
cmove eax, ecx
mov cl, byte [esp + 0x60]
mov byte [esp + 0x1c], cl
jmp 0x100590c5
mov al, byte [esp + 0x20]
mov byte [esp + 0x60], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4a4], eax
mov eax, dword [esp + 0x4a4]
cmp eax, 2
mov eax, 0x1da2403
mov ecx, 0x78167f9a
cmovl eax, ecx
jmp 0x100590c5
mov ebp, dword [esp + 0x38c]
push 0x13
push 0xa
push ebp
lea esi, [esp + 0x5b0]
push esi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xebc]
push esi
call fcn.1000105c
mov ecx, esi
call fcn.100087f0
push 0x2e
push 0x1b
push ebp
push esi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec0]
push esi
call fcn.1000105c
mov ecx, esi
call fcn.100087f0
push 0x1a
push 0x17
push ebp
push esi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec4]
push esi
call fcn.1000105c
mov ecx, esi
call fcn.100087f0
mov byte [esp + 0x18], 1
mov eax, 0xa2696cbe
jmp 0x100590c5
mov dword [esp + 0x24], 0
mov eax, 0x968f71f5
mov cl, byte [esp + 0x5c]
mov byte [esp + 0x20], cl
jmp 0x100590c5
mov edi, dword [esp + 0x3a4]
inc edi
mov eax, 0xc21e66f3
mov ecx, ebx
mov dword [esp + 0x30], ecx
jmp 0x100590c5
mov eax, dword [esp + 0xc]
add eax, 0x10
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x38c]
cmp byte [eax + 0x36], 0
mov eax, 0x97a1e461
mov ecx, 0xa2696cbe
cmove eax, ecx
mov cl, byte [esp + 0x60]
mov byte [esp + 0x18], cl
jmp 0x100590c5
mov eax, dword [esp + 0x30]
mov byte [esp + 0x5c], al
mov dword [esp + 0x3a4], edi
mov ecx, dword [esp + 0x3a4]
mov al, byte [esp + 0x5c]
and al, 1
mov byte [esp + 4], al
cmp byte [esp + 4], 0
mov eax, 0x185f65d0
mov edx, 0x37dfe698
cmovne eax, edx
cmp ecx, 0x10
cmovge eax, edx
jmp 0x100590c5
push 0x200
xor ebp, ebp
push ebp
lea ebx, [esp + 0x194]
push ebx
call fcn.1008c000
add esp, 0xc
push dword [esp + 0x3a4]
push str..Scsi_d:
push 0xffffffffffffffff
push 0xff
push ebx
call fcn.10059d01
sub esp, 8
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
movaps xmm0, xmmword [0x100b5520]
movups xmmword [esp + 4], xmm0
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp eax, 0xffffffff
mov eax, 0xd0110070
mov ecx, 0xe8b2bad8
cmove eax, ecx
mov bl, byte [esp + 0x5c]
jmp 0x100590c5
cmp eax, 0x37dfe698
jne 0x100590c5
mov eax, dword [esp + 0x68]
mov al, byte [esp + 4]
mov byte [esp + 0x29], al
mov eax, 0xca18d53a
jmp 0x100586ef
lea eax, [esp + 0x18c]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
xor esi, esi
mov eax, 0xd00e6c3d
mov dword [esp + 0x1c], 0
cmp eax, 0xe6d5d885
jg 0x10059493
cmp eax, 0xd00e6c3c
jle 0x10059537
cmp eax, 0xd00e6c3d
je 0x1005965e
cmp eax, 0xd6002ee1
je 0x1005969b
cmp eax, 0xd9e47e0c
jne 0x10059451
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov eax, 0xd6002ee1
mov byte [esp + 0x24], bh
jmp 0x10059451
cmp eax, 0x2f6cdbae
jle 0x100595c3
cmp eax, 0x2f6cdbaf
je 0x100596bb
cmp eax, 0x337a7a57
je 0x100596c9
cmp eax, 0x4789e254
jne 0x10059451
push 0x200
xor edi, edi
push edi
lea eax, [esp + 0x194]
mov byte [esp + 0x20], bh
mov ebx, eax
push eax
call fcn.1008c000
add esp, 0xc
push dword [esp + 0x38c]
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0xff
push ebx
call fcn.10059d01
sub esp, 8
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
movaps xmm0, xmmword [0x100b5520]
movups xmmword [esp + 4], xmm0
mov dword [esp], ebx
mov bh, byte [esp + 0x34]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
cmp eax, 0xffffffff
mov eax, 0x8ec01792
mov ecx, 0x866ed304
cmove eax, ecx
mov bl, byte [esp + 0x2c]
jmp 0x10059451
cmp eax, 0x866ed304
je 0x100596f1
cmp eax, 0x8ec01792
jne 0x100597af
lea eax, [esp + 0x4a4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x58]
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x64]
xor ecx, ecx
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x60]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
xorps xmm0, xmm0
movups xmmword [eax], xmm0
push ecx
push edx
push 0x18
push dword [esp + 0x6c]
push ecx
push ecx
push 0x74080
push dword [esp + 0x78]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea eax, [esp + 0x4a7]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
cmp byte [eax], 0
mov eax, 0xe6d5d886
mov ecx, 0xd6002ee1
cmove eax, ecx
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x24], cl
jmp 0x10059451
cmp eax, 0xe6d5d886
je 0x10059709
cmp eax, 0xff821a37
jne 0x10059451
push 0x13
push 0xa
push dword [esp + 0x74]
lea edi, [esp + 0x3b0]
push edi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xebc]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
push 0x2e
push 0x1b
push dword [esp + 0x74]
push edi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec0]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
push 0x1a
push 0x17
push dword [esp + 0x74]
push edi
call fcn.10057a12
add esp, 0x10
mov ecx, dword [esp + 0xec4]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
mov byte [esp + 0x20], 1
mov eax, 0x2f6cdbaf
jmp 0x10059451
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x2c], al
mov dword [esp + 0x38c], esi
mov ecx, dword [esp + 0x38c]
mov al, byte [esp + 0x2c]
and al, 1
mov byte [esp + 0x34], al
cmp byte [esp + 0x34], 0
mov eax, 0x4789e254
mov edx, 0xa6d9828e
cmovne eax, edx
cmp ecx, 0x10
cmovge eax, edx
jmp 0x10059451
push dword [esp + 0x5c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov eax, 0x866ed304
mov bl, byte [esp + 0x24]
jmp 0x10059451
mov eax, 0xd9e47e0c
mov bh, byte [esp + 0x20]
jmp 0x10059451
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x10]
mov dword [esp + 0x6c], ecx
cmp dword [eax], 0x2f
mov eax, 0x2f6cdbaf
mov ecx, 0xff821a37
cmovae eax, ecx
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x20], cl
jmp 0x10059451
mov esi, dword [esp + 0x38c]
inc esi
mov eax, 0xd00e6c3d
mov ecx, ebx
mov dword [esp + 0x1c], ecx
jmp 0x10059451
lea ebp, [esp + 0x5a4]
mov dword [esp + 8], ebp
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x68]
mov byte [esp + 0x18], bl
movzx ebx, byte [eax]
mov ecx, dword [esp + 0x38c]
shr ebx, cl
lea edi, [esp + 0x6a4]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 8]
xorps xmm0, xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax], xmm0
mov byte [eax + 0x20], 0
mov dword [esp + 0xc], edi
push 0x210
push 0
push dword [esp + 0x14]
call fcn.1008c000
add esp, 0xc
mov eax, dword [esp + 0x38c]
test bl, 0x10
mov bl, byte [esp + 0x18]
movzx eax, al
mov ecx, 0xa1
mov edx, 0xec
cmove ecx, edx
lea edx, [esp + 0x58]
push edx
push eax
push ecx
push edi
push ebp
push dword [esp + 0x70]
call fcn.10057924
add esp, 0x18
test al, al
mov eax, 0xd9e47e0c
mov ecx, 0x337a7a57
cmovne eax, ecx
mov bh, byte [esp + 0x2c]
jmp 0x10059451
cmp eax, 0xa6d9828e
jne 0x10059451
mov eax, dword [esp + 4]
mov al, byte [esp + 0x34]
mov byte [esp + 0x29], al
test al, al
mov eax, 0xd00521d3
mov ecx, 0xca18d53a
cmovne eax, ecx
jmp 0x100586ef
lea eax, [esp + 0x18c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov eax, 0x928414bf
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
cmp eax, 0x263c51ad
jle 0x10059857
cmp eax, 0x50fb625a
jle 0x10059898
cmp eax, 0x64a7a6d9
jg 0x1005990d
cmp eax, 0x50fb625b
je 0x10059936
cmp eax, 0x522545d4
jne 0x100597fe
movsx eax, byte [esp + 0x5b7]
push eax
call fcn.1009e940
add esp, 4
test eax, eax
mov eax, 0x50fb625b
mov ecx, 0x676dbe67
cmove eax, ecx
mov cl, byte [esp + 3]
mov byte [esp + 0x18], cl
jmp 0x100597fe
cmp eax, 0xa6421f1c
jg 0x100598d1
cmp eax, 0x928414bf
je 0x10059a25
cmp eax, 0x9318eefe
je 0x10059a60
cmp eax, 0x94599f89
jne 0x100597fe
lea eax, [esp + 0x6a4]
mov dword [esp + 4], eax
mov eax, 0xf26d7748
mov cl, byte [esp + 3]
mov byte [esp + 0x20], cl
jmp 0x100597fe
cmp eax, 0x263c51ae
je 0x10059ae8
cmp eax, 0x37561fb4
je 0x10059afa
cmp eax, 0x46478514
jne 0x100597fe
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, 0x37561fb4
mov cl, byte [esp + 3]
mov byte [esp + 0x24], cl
jmp 0x100597fe
cmp eax, 0xa6421f1d
je 0x10059b22
cmp eax, 0xf26d7748
je 0x10059b95
cmp eax, 0xf55cd97
jne 0x100597fe
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, 0x928414bf
jmp 0x100597fe
cmp eax, 0x676dbe67
jne 0x10059c75
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
mov eax, 0x263c51ae
mov cl, byte [esp + 0x18]
mov byte [esp + 0x20], cl
jmp 0x100597fe
mov esi, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x38c], ebx
mov dword [esp + 0x39c], ebx
mov edi, 0xf
mov dword [esp + 0x3a0], edi
mov byte [esp + 0x38c], bl
push esi
call fcn.1009ee80
add esp, 4
lea ebp, [esp + 0x38c]
mov ecx, ebp
push eax
push esi
call fcn.10007b00
mov ecx, dword [esp + 0xebc]
push ebp
call fcn.1000105c
mov ecx, ebp
call fcn.100087f0
mov esi, dword [esp + 0x68]
mov dword [esp + 0x38c], ebx
mov dword [esp + 0x39c], ebx
mov dword [esp + 0x3a0], edi
mov byte [esp + 0x38c], bl
push esi
call fcn.1009ee80
add esp, 4
mov ecx, ebp
push eax
push esi
call fcn.10007b00
mov ecx, dword [esp + 0xec0]
push ebp
call fcn.1000105c
mov ecx, ebp
call fcn.100087f0
mov esi, dword [esp + 8]
mov dword [esp + 0x38c], ebx
mov dword [esp + 0x39c], ebx
mov dword [esp + 0x3a0], edi
mov byte [esp + 0x38c], bl
push esi
call fcn.1009ee80
add esp, 4
mov ecx, ebp
push eax
push esi
call fcn.10007b00
mov ecx, dword [esp + 0xec4]
push ebp
call fcn.1000105c
mov ecx, ebp
call fcn.100087f0
mov eax, 0x676dbe67
mov byte [esp + 0x18], 1
jmp 0x100597fe
mov eax, dword [esp + 0x30]
mov byte [esp + 3], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov al, byte [esp + 3]
and al, 1
mov byte [esp + 0x2b], al
cmp byte [esp + 0x2b], 0
mov eax, 0xa6421f1d
mov edx, 0x64a7a6da
cmovne eax, edx
cmp ecx, 0x10
cmovge eax, edx
jmp 0x100597fe
lea eax, [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
lea esi, [esp + 0x54]
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
xor edi, edi
mov dword [esp + 0x54], edi
lea ecx, [esp + 0x6a4]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
mov dword [eax + 8], edi
mov dword [eax + 4], edi
mov dword [eax], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x58], ecx
mov ebx, 0x800
push ebx
push edi
push dword [esp + 0x60]
call fcn.1008c000
add esp, 0xc
push edi
push esi
push ebx
push dword [esp + 0x38]
push 0xc
push dword [esp + 0x50]
push 0x2d1400
push dword [esp + 0x60]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
mov eax, 0x94599f89
mov ecx, 0x46478514
cmove eax, ecx
jmp 0x100597fe
mov eax, 0x37561fb4
mov cl, byte [esp + 0x20]
mov byte [esp + 0x24], cl
jmp 0x100597fe
push dword [esp + 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov eax, 0xf55cd97
mov cl, byte [esp + 0x24]
mov byte [esp + 0x1c], cl
jmp 0x100597fe
push 0x200
xor edi, edi
push edi
lea esi, [esp + 0x194]
push esi
call fcn.1008c000
add esp, 0xc
push dword [esp + 0xc]
push str..PhysicalDrive_d
push 0xffffffffffffffff
push 0xff
push esi
call fcn.10059d01
sub esp, 8
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
movaps xmm0, xmmword [0x100b5500]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
cmp eax, 0xffffffff
mov eax, 0x9318eefe
mov ecx, 0xf55cd97
cmove eax, ecx
mov cl, byte [esp + 3]
mov byte [esp + 0x1c], cl
jmp 0x100597fe
lea edi, [esp + 0x5a4]
mov dword [esp + 0x5c], edi
mov eax, dword [esp + 0x5c]
mov ebx, 0x100
push ebx
xor esi, esi
push esi
push dword [esp + 0x64]
call fcn.1008c000
add esp, 0xc
lea ebp, [esp + 0x4a4]
mov dword [esp + 0x60], ebp
mov eax, dword [esp + 0x60]
push ebx
push esi
push dword [esp + 0x68]
call fcn.1008c000
add esp, 0xc
lea edi, [esp + 0x3a4]
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x64]
push ebx
push esi
push dword [esp + 0x6c]
call fcn.1008c000
add esp, 0xc
mov dword [esp + 0x68], ebp
mov eax, dword [esp + 4]
push dword [esp + 0x68]
push esi
push dword [eax + 0x10]
push dword [esp + 0x64]
call fcn.10057b92
add esp, 0x10
mov dword [esp + 8], edi
mov eax, dword [esp + 4]
push dword [esp + 8]
push esi
push dword [eax + 0x14]
push dword [esp + 0x64]
call fcn.10057b92
add esp, 0x10
lea eax, [esp + 0x5a4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
push dword [esp + 0x10]
push dword [esp + 0x50]
push dword [eax + 0x18]
push dword [esp + 0x64]
call fcn.10057b92
add esp, 0x10
mov eax, dword [esp + 0x10]
movsx eax, byte [eax]
push eax
call fcn.1009e940
add esp, 4
test eax, eax
mov eax, 0x50fb625b
mov ecx, 0x522545d4
cmove eax, ecx
jmp 0x100597fe
cmp eax, 0x64a7a6da
jne 0x100597fe
mov eax, dword [esp + 0x48]
mov al, byte [esp + 0x2b]
mov byte [esp + 0x2a], al
mov eax, 0xd58e8df8
jmp 0x100586ef
mov dl, byte [esp + 0x2a]
test dl, 1
mov eax, 0x61be5f2d
mov ecx, 0xa9a9e94d
cmove eax, ecx
mov byte [esp + 0x17], dl
jmp 0x100586ef
mov dl, byte [esp + 0x29]
test dl, 1
mov eax, 0xd58e8df8
mov ecx, 0x8a7dff7f
cmove eax, ecx
mov byte [esp + 0x2a], dl
jmp 0x100586ef
cmp eax, 0x61be5f2d
jne 0x100586ef
mov bl, byte [esp + 0x17]
and bl, 1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xea4]
xor ecx, esp
call fcn.100879aa
mov eax, ebx
add esp, 0xea8
pop esi
pop edi
pop ebx
pop ebp
ret