Function at 0x4274de
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 0x42cb70
push 0x416da0
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 [0x43158c], esi
je 0x427568
push esi
push 0x2335
call fcn.0040630a
pop ecx
pop ecx
push dword [0x431594]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov dword [0x43158c], esi
push dword [0x431594]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
cmp dword [0x42d0c0], esi
je 0x427b67
cmp dword [0x435780], esi
jne 0x427587
push 0x401f7c
call fcn.00409890
pop ecx
cmp byte [0x4355b6], 0
je 0x42759d
mov eax, 0x4480f0
mov dword [ebp - 0x288], eax
jmp 0x4275d2
mov ecx, 0x4024d0
call fcn.0040eb6e
mov edi, eax
mov dword [ebp - 0x288], edi
test edi, edi
je 0x4275d2
push edi
mov edx, 0x200
mov eax, 0x4480f0
mov dword [ebp - 0x288], eax
mov ecx, eax
call fcn.0040f2e0
mov byte [0x4355b6], 1
mov ecx, dword [0x447de8]
test ecx, ecx
jne 0x4275e1
mov ecx, 0x447be0
push esi
mov edx, dword [0x447df0]
call fcn.00408deb
lea ecx, [ebp - 0x29c]
call fcn.00427494
mov dword [ebp - 0x298], eax
test eax, eax
je 0x427b67
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 0x427ada
movzx eax, word [ecx]
test ax, ax
je 0x427ada
test ax, ax
je 0x427b17
cmp ax, 0x24
je 0x4276d5
movzx eax, ax
push eax
push 0x403aa4
push esi
push edi
call fcn.004099ff
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 0x42766d
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.00409381
test al, al
je 0x4276ca
mov eax, dword [ebp - 0x288]
movzx eax, word [eax]
mov dword [ebp - 0x284], eax
mov ecx, eax
call fcn.00427f8e
test eax, eax
je 0x4276c8
mov eax, dword [ebp - 0x284]
movzx eax, ax
mov dword [ebp - 0x294], eax
jmp 0x427ac3
xor ecx, ecx
mov dword [ebp - 0x294], ecx
jmp 0x427ac3
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], 0x403cf0
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 0x427727
inc edi
imul eax, edi, 6
lea eax, [eax + 0x403cf0]
mov dword [ebp - 0x284], eax
xor ecx, ecx
cmp word [eax], cx
jne 0x4276f8
jmp 0x427729
xor ecx, ecx
imul eax, edi, 6
cmp word [eax + 0x403cf0], cx
mov edi, dword [ebp - 0x280]
mov esi, dword [ebp - 0x27c]
je 0x427b19
movzx edx, word [eax + 0x403cf2]
cmp edx, 8
jne 0x42778b
movzx eax, word [eax + 0x403cf4]
push eax
push 0x403aa4
push esi
push edi
call fcn.004099ff
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 0x427775
sub edx, dword [ebp - 0x284]
jmp 0x427ab0
lea eax, [edx - 1]
cmp eax, 9
ja case.0x427797.7
jmp dword [eax*4 + 0x427b86]
push esi
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.0040925d
lea edi, [edi + eax*2]
sub esi, eax
jmp 0x427ab7
push esi
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.004067a1
jmp 0x4277aa
mov eax, dword [0x447de8]
test eax, eax
jne 0x4277d0
mov eax, 0x447be0
push eax
push 0x401ef0
push esi
push edi
call fcn.004099ff
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]
jmp 0x427ab0
lea ecx, [ebp - 0x70]
call fcn.00404c48
lea eax, [ebp - 0x70]
push eax
push 0x2350
call fcn.0041638a
mov esi, eax
push esi
push 0x401ef0
push dword [ebp - 0x27c]
push edi
call fcn.004099ff
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 0x42783e
sub edx, esi
mov esi, dword [ebp - 0x27c]
jmp 0x427ab0
mov edx, esi
mov ecx, edi
cmp word [ebp - 0x294], 0
je 0x42786b
push 0x403ac8
jmp 0x427870
push 0x403ad8
call fcn.0040f2e0
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 0x427882
sub edx, dword [ebp - 0x284]
jmp 0x427ab0
push 0x401f7c
mov edx, esi
mov ecx, edi
call fcn.0040f2e0
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 0x4278b3
sub edx, dword [ebp - 0x284]
jmp 0x427ab0
cmp byte [0x435745], 0
je 0x427ac3
mov ecx, dword [0x435788]
jmp 0x4278ff
mov eax, ecx
dec ecx
test eax, eax
je 0x427ac3
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 0x4278de
jmp 0x427ac3
cmp byte [0x435745], 0
je 0x427ac3
mov dword [ebp - 0x290], ecx
mov ecx, dword [0x447de8]
test ecx, ecx
mov eax, ecx
jne 0x42792d
mov eax, 0x447be0
mov ax, word [eax]
mov word [ebp - 0x2c], ax
test ecx, ecx
jne 0x42793d
mov ecx, 0x447be0
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 0x427ac3
xor eax, eax
mov word [ebp - 0x28], ax
mov dword [ebp - 0x2a0], 0x104
and dword [ebp - 4], eax
call fcn.0041727f
test al, al
je 0x4279a1
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 0x4279ab
mov dword [ebp - 0x290], 0x78
mov dword [ebp - 4], 0xfffffffe
jmp 0x4279f3
cmp dword [ebp - 0x290], 0
je 0x427a3b
cmp dword [ebp - 0x290], 0x8ca
je 0x427ac3
push 0x403c78
push esi
push edi
call fcn.004099ff
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 0x427a28
sub edx, dword [ebp - 0x28c]
jmp 0x427ab0
lea eax, [ebp - 0x278]
push eax
push 0x403c70
push esi
push edi
call fcn.004099ff
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 0x427a5e
sub edx, dword [ebp - 0x28c]
jmp 0x427ab0
mov eax, dword [0x447de8]
test eax, eax
jne 0x427a7f
mov eax, 0x447be0
movzx eax, word [eax]
push eax
push 0x403aa4
push esi
push edi
call fcn.004099ff
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 0x427a9f
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 0x42763a
mov eax, dword [0x447de8]
test eax, eax
jne 0x427ae8
mov eax, 0x447be0
push eax
push 0x403a88
push esi
mov edi, dword [ebp - 0x298]
push edi
call fcn.004099ff
add esp, 0x10
mov ecx, edi
lea esi, [ecx + 2]
xor edx, edx
mov ax, word [ecx]
add ecx, 2
cmp ax, dx
jne 0x427b05
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 0x427b29
sub edx, esi
sar edx, 1
mov ecx, edi
call fcn.004098cd
cmp dword [0x43158c], 0
je 0x427b67
push dword [0x431594]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
and dword [0x43158c], 0
push dword [0x431594]
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.00416ad0
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret