Function at 0x42765e
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x42ccf0
push 0x416e20
mov eax, dword fs:[0]
push eax
push ecx
push ecx
push ebx
sub esp, 0x288
mov eax, dword [0x42d0b4]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x24], eax
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor esi, esi
mov dword [ebp - 0x294], esi
cmp dword [0x43159c], esi
je 0x4276e8
push esi
push 0x2335
call fcn.004063bd
pop ecx
pop ecx
push dword [0x4315a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov dword [0x43159c], esi
push dword [0x4315a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
cmp dword [0x42d0c0], esi
je 0x427ce6
cmp dword [0x435790], esi
jne 0x427707
push 0x401f8c
call fcn.00409950
pop ecx
cmp byte [0x4355c6], 0
je 0x42771d
mov eax, 0x448100
mov dword [ebp - 0x288], eax
jmp 0x427752
mov ecx, 0x4024e0
call fcn.0040ec2e
mov edi, eax
mov dword [ebp - 0x288], edi
test edi, edi
je 0x427752
push edi
mov edx, 0x200
mov eax, 0x448100
mov dword [ebp - 0x288], eax
mov ecx, eax
call fcn.0040f3a0
mov byte [0x4355c6], 1
mov ecx, dword [0x447df8]
test ecx, ecx
jne 0x427761
mov ecx, 0x447bf0
push esi
mov edx, dword [0x447e00]
call fcn.00408e9e
lea ecx, [ebp - 0x29c]
call fcn.00427614
mov dword [ebp - 0x298], eax
test eax, eax
je 0x427ce6
mov edi, eax
mov dword [ebp - 0x280], edi
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x29c]
dec esi
mov dword [ebp - 0x27c], esi
mov ecx, dword [ebp - 0x288]
test ecx, ecx
je 0x427c59
movzx eax, word [ecx]
test ax, ax
je 0x427c59
test ax, ax
je 0x427c96
cmp ax, 0x24
je 0x427855
movzx eax, ax
push eax
push 0x403b64
push esi
push edi
call fcn.00409abf
add esp, 0x10
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x284], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x4277ed
sub edx, dword [ebp - 0x284]
sar edx, 1
lea edi, [edi + edx*2]
mov dword [ebp - 0x280], edi
sub esi, edx
mov dword [ebp - 0x27c], esi
call fcn.00409434
test al, al
je 0x42784a
mov eax, dword [ebp - 0x288]
movzx eax, word [eax]
mov dword [ebp - 0x284], eax
mov ecx, eax
call fcn.0042810e
test eax, eax
je 0x427848
mov eax, dword [ebp - 0x284]
movzx eax, ax
mov dword [ebp - 0x294], eax
jmp 0x427c42
xor ecx, ecx
mov dword [ebp - 0x294], ecx
jmp 0x427c42
mov esi, dword [ebp - 0x288]
add esi, 2
mov dword [ebp - 0x288], esi
mov dword [ebp - 0x28c], esi
xor edx, edx
mov edi, edx
mov dword [ebp - 0x284], 0x403da0
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_towupper]
pop ecx
mov ecx, dword [ebp - 0x284]
cmp ax, word [ecx]
je 0x4278a7
inc edi
imul eax, edi, 6
lea eax, [eax + 0x403da0]
mov dword [ebp - 0x284], eax
xor ecx, ecx
cmp word [eax], cx
jne 0x427878
jmp 0x4278a9
xor ecx, ecx
imul eax, edi, 6
cmp word [eax + 0x403da0], cx
mov edi, dword [ebp - 0x280]
mov esi, dword [ebp - 0x27c]
je 0x427c98
movzx edx, word [eax + 0x403da2]
cmp edx, 8
jne 0x42790b
movzx eax, word [eax + 0x403da4]
push eax
push 0x403b64
push esi
push edi
call fcn.00409abf
add esp, 0x10
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x284], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x4278f5
sub edx, dword [ebp - 0x284]
jmp 0x427c2f
lea eax, [edx - 1]
cmp eax, 9
ja case.0x427917.7
jmp dword [eax*4 + 0x427d06]
push esi
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.00409310
lea edi, [edi + eax*2]
sub esi, eax
jmp 0x427c36
push esi
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.00406854
jmp 0x42792a
mov eax, dword [0x447df8]
test eax, eax
jne 0x427950
mov eax, 0x447bf0
push eax
push 0x401f00
push esi
push edi
call fcn.00409abf
add esp, 0x10
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x284], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x42796d
sub edx, dword [ebp - 0x284]
jmp 0x427c2f
lea ecx, [ebp - 0x70]
call fcn.00404d08
lea eax, [ebp - 0x70]
push eax
push 0x2350
call fcn.0041640a
mov esi, eax
push esi
push 0x401f00
push dword [ebp - 0x27c]
push edi
call fcn.00409abf
add esp, 0x18
push esi
call dword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
mov edx, edi
lea esi, [edx + 2]
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x4279be
sub edx, esi
mov esi, dword [ebp - 0x27c]
jmp 0x427c2f
cmp word [ebp - 0x294], 0
mov eax, 0x403b88
jne 0x4279ea
mov eax, 0x403b98
push eax
mov edx, esi
mov ecx, edi
call fcn.0040f3a0
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x284], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x427a01
sub edx, dword [ebp - 0x284]
jmp 0x427c2f
push 0x401f8c
mov edx, esi
mov ecx, edi
call fcn.0040f3a0
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x284], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x427a32
sub edx, dword [ebp - 0x284]
jmp 0x427c2f
cmp byte [0x435755], 0
je 0x427c42
mov ecx, dword [0x435798]
jmp 0x427a7e
mov eax, ecx
dec ecx
test eax, eax
je 0x427c42
push 0x2b
pop eax
mov word [edi], ax
add edi, 2
mov dword [ebp - 0x280], edi
dec esi
mov dword [ebp - 0x27c], esi
cmp esi, 1
ja 0x427a5d
jmp 0x427c42
cmp byte [0x435755], 0
je 0x427c42
mov dword [ebp - 0x290], ecx
mov ecx, dword [0x447df8]
test ecx, ecx
mov eax, ecx
jne 0x427aac
mov eax, 0x447bf0
mov ax, word [eax]
mov word [ebp - 0x2c], ax
test ecx, ecx
jne 0x427abc
mov ecx, 0x447bf0
mov ax, word [ecx + 2]
mov word [ebp - 0x2a], ax
push 0x5c
pop eax
mov word [ebp - 0x28], ax
xor eax, eax
mov word [ebp - 0x26], ax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetDriveTypeW]
cmp eax, 4
jne 0x427c42
xor eax, eax
mov word [ebp - 0x28], ax
mov dword [ebp - 0x2a0], 0x104
and dword [ebp - 4], eax
call fcn.004172ff
test al, al
je 0x427b20
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.ext_ms_win_cmd_util_l1_1_0.dll_WNetGetConnectionWStub]
mov dword [ebp - 0x290], eax
jmp 0x427b2a
mov dword [ebp - 0x290], 0x78
mov dword [ebp - 4], 0xfffffffe
jmp 0x427b72
cmp dword [ebp - 0x290], 0
je 0x427bba
cmp dword [ebp - 0x290], 0x8ca
je 0x427c42
push 0x403d30
push esi
push edi
call fcn.00409abf
add esp, 0xc
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x28c], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x427ba7
sub edx, dword [ebp - 0x28c]
jmp 0x427c2f
lea eax, [ebp - 0x278]
push eax
push 0x403d28
push esi
push edi
call fcn.00409abf
add esp, 0x10
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x28c], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x427bdd
sub edx, dword [ebp - 0x28c]
jmp 0x427c2f
mov eax, dword [0x447df8]
test eax, eax
jne 0x427bfe
mov eax, 0x447bf0
movzx eax, word [eax]
push eax
push 0x403b64
push esi
push edi
call fcn.00409abf
add esp, 0x10
mov edx, edi
lea eax, [edx + 2]
mov dword [ebp - 0x28c], eax
xor ecx, ecx
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x427c1e
sub edx, dword [ebp - 0x28c]
sar edx, 1
sub esi, edx
lea edi, [edi + edx*2]
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x280], edi
mov ecx, dword [ebp - 0x288]
add ecx, 2
mov dword [ebp - 0x288], ecx
movzx eax, word [ecx]
jmp 0x4277ba
mov eax, dword [0x447df8]
test eax, eax
jne 0x427c67
mov eax, 0x447bf0
push eax
push 0x403b48
push esi
mov edi, dword [ebp - 0x298]
push edi
call fcn.00409abf
add esp, 0x10
mov ecx, edi
lea esi, [ecx + 2]
xor edx, edx
mov ax, word [ecx]
add ecx, 2
cmp ax, dx
jne 0x427c84
sub ecx, esi
sar ecx, 1
lea edi, [edi + ecx*2]
xor ecx, ecx
xor eax, eax
mov word [edi], ax
mov edi, dword [ebp - 0x298]
mov edx, edi
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, cx
jne 0x427ca8
sub edx, esi
sar edx, 1
mov ecx, edi
call fcn.0040998d
cmp dword [0x43159c], 0
je 0x427ce6
push dword [0x4315a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
and dword [0x43159c], 0
push dword [0x4315a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.00416b50
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret