Function at 0x12e7b500
Capabilities:
Get disk information

Disassembly:
sub esp, 0x42c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x43c]
push edi
xor edi, edi
cmp esi, edi
je 0x12e7ba8c
mov ebp, dword [esp + 0x444]
cmp ebp, edi
je 0x12e7ba8c
mov ebx, dword [esp + 0x448]
cmp ebx, edi
je 0x12e7ba8c
push esi
mov dword [esp + 0x14], edi
call fcn.12f5c51d
mov cx, word [0x130e0f14]
mov dword [esp + 0x24], eax
mov eax, dword [0x130e0f10]
mov word [esp + 0x1c], cx
mov dword [esp + 0x18], eax
mov word [esp + 0x28], di
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x2a]
xor edx, edx
rep stosd dword es:[edi], eax
add esp, 4
cmp word [esp + 0x14], 0x5a
mov dword [esp + 0x1a], edx
mov word [esp + 0x1e], dx
stosw word es:[edi], ax
ja 0x12e7b604
mov ebp, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x24]
push 0x104
rep stosd dword es:[edi], eax
lea eax, [esp + 0x28]
lea ecx, [esp + 0x18]
push eax
push ecx
call ebp
lea edx, [esp + 0x24]
push edx
call fcn.12f5c51d
mov edi, eax
add esp, 4
test edi, edi
jbe 0x12e7b5eb
cmp dword [esp + 0x20], edi
jb 0x12e7b5eb
lea eax, [esp + 0x24]
push edi
push eax
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b5eb
mov ax, word [esi + edi*2]
test ax, ax
je 0x12e7b64f
cmp ax, 0x5c
je 0x12e7b64f
cmp ax, 0x2f
je 0x12e7b64f
mov ax, word [esp + 0x14]
inc ax
cmp ax, 0x5a
mov word [esp + 0x14], ax
jbe 0x12e7b58c
mov ebp, dword [esp + 0x444]
push 8
push 0x13121658
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b696
push esi
call fcn.12f5c51d
sub eax, 6
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
add esi, 0x10
dec ebx
push esi
push 0x1312164c
push ebx
push ebp
call fcn.12f5d990
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
lea edi, [esi + edi*2]
test edi, edi
je 0x12e7b5fd
push edi
call fcn.12f5c51d
add eax, 2
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
mov edx, dword [esp + 0x444]
lea ecx, [esp + 0x14]
push edi
push ecx
dec ebx
push 0x130c8b08
push ebx
push edx
call fcn.12f5d990
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push 0x19
push str.DeviceLanmanRedirector_
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b6e1
push esi
call fcn.12f5c51d
sub eax, 0x17
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
add esi, 0x32
dec ebx
push esi
push 0x1312164c
push ebx
push ebp
call fcn.12f5d990
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push 0xc
push str.DeviceMup_
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b72c
push esi
call fcn.12f5c51d
sub eax, 0xa
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
add esi, 0x18
dec ebx
push esi
push 0x1312164c
push ebx
push ebp
call fcn.12f5d990
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push 0xd
push str.DeviceHGFS_
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b777
push esi
call fcn.12f5c51d
sub eax, 0xb
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
add esi, 0x1a
dec ebx
push esi
push 0x1312164c
push ebx
push ebp
call fcn.12f5d990
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push 0x14
push str.DeviceWinDfsRoot_
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b7c2
push esi
call fcn.12f5c51d
sub eax, 0x12
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
add esi, 0x28
dec ebx
push esi
push 0x1312164c
push ebx
push ebp
call fcn.12f5d990
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push 0x15
push str.Device_tsddevice_SD_
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b831
push esi
call fcn.12f5c51d
add esp, 4
cmp eax, 0x16
jbe 0x12e7b831
add esi, 0x2a
push 0x130c4ed0
push esi
call fcn.12f5c53a
mov esi, eax
add esp, 8
test esi, esi
je 0x12e7ba7d
push esi
call fcn.12f5c51d
add esp, 4
inc eax
cmp eax, ebx
jae 0x12e7ba2b
push esi
dec ebx
push 0x13121580
push ebx
push ebp
call fcn.12f5d990
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push str.DeviceTSafeDiskVolume
call fcn.12f5c51d
mov ebp, eax
mov ecx, 0x83
xor eax, eax
lea edi, [esp + 0x234]
mov dword [esp + 0x230], 0
add esp, 4
rep stosd dword es:[edi], eax
lea eax, [esp + 0x22c]
mov ecx, 0x131b8078
push eax
push esi
call fcn.12e6c0b0
test eax, eax
je 0x12e7b8db
lea ecx, [esp + 0x234]
push ecx
call fcn.12f5c51d
lea edx, [esi + eax*2]
push edx
call fcn.12f5c51d
add eax, 2
add esp, 8
cmp eax, ebx
jae 0x12e7ba2b
lea eax, [esp + 0x234]
push eax
call fcn.12f5c51d
mov edx, dword [esp + 0x230]
add esp, 4
lea ecx, [esi + eax*2]
mov eax, dword [esp + 0x444]
add edx, 0x41
push ecx
push edx
dec ebx
push 0x13121544
push ebx
push eax
call fcn.12f5d990
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push ebp
push str.DeviceTSafeDiskVolume
push esi
call fcn.12f5e383
add esp, 0xc
test eax, eax
jne 0x12e7b931
mov eax, dword [esp + 0x20]
sub eax, ebp
add eax, 0x11
cmp eax, ebx
jae 0x12e7ba2b
mov eax, dword [esp + 0x444]
xor edx, edx
mov dx, word [esi + ebp*2]
lea ecx, [esi + ebp*2 + 2]
push ecx
push edx
dec ebx
push str..TSD_VOLUME__c:_s
push ebx
push eax
call fcn.12f5d990
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
mov eax, dword [esp + 0x44c]
test eax, eax
je 0x12e7b95d
mov ecx, dword [esp + 0x444]
push ebx
push ecx
push esi
call fcn.12e7d510
mov eax, dword [esp + 0x1c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push 0x130e1f5c
call fcn.12f5c51d
push eax
push 0x130e1f5c
push esi
call fcn.12f5e383
add esp, 0x10
test eax, eax
je 0x12e7ba62
push 0x130e1f3c
call fcn.12f5c51d
push eax
push 0x130e1f3c
push esi
call fcn.12f5e383
add esp, 0x10
test eax, eax
je 0x12e7ba62
push 0x130e1f1c
call fcn.12f5c51d
push eax
push 0x130e1f1c
push esi
call fcn.12f5e383
add esp, 0x10
test eax, eax
je 0x12e7ba62
push 4
push 0x131093d0
push esi
call fcn.12f5d731
add esp, 0xc
test eax, eax
je 0x12e7ba42
push 4
push 0x130b9230
push esi
call fcn.12f5d731
add esp, 0xc
test eax, eax
je 0x12e7ba42
push 4
push 0x131093c4
push esi
call fcn.12f5d731
add esp, 0xc
test eax, eax
je 0x12e7ba42
push esi
call fcn.12f5c51d
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
mov edx, dword [esp + 0x444]
dec ebx
push ebx
push esi
push edx
call fcn.12f5c57b
mov eax, dword [esp + 0x1c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
pop edi
mov dword [esp + 0xc], reloc.WS2_32.dll_getpeername
mov eax, dword [esp + 0xc]
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
push esi
call fcn.12f5c51d
sub eax, 4
add esp, 4
cmp eax, ebx
jae 0x12e7ba2b
mov eax, dword [esp + 0x444]
dec ebx
add esi, 8
push ebx
push esi
push eax
jmp 0x12e7ba14
mov ecx, dword [esp + 0x444]
add esi, 8
push esi
dec ebx
push str.._s
push ebx
push ecx
call fcn.12f5d990
add esp, 0x10
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
pop edi
pop esi
pop ebp
mov eax, 0xc000000d
pop ebx
add esp, 0x42c
ret