Function at 0x42769e
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 0x42cd60
push 0x416e00
mov eax, dword fs:[0]
push eax
push ecx
push ecx
push ebx
sub esp, 0x288
mov eax, dword [0x42e0b4]
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 [0x43259c], esi
je 0x427728
push esi
push 0x2335
call fcn.004063bd
pop ecx
pop ecx
push dword [0x4325a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
mov dword [0x43259c], esi
push dword [0x4325a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
cmp dword [0x42e0c0], esi
je 0x427d26
cmp dword [0x436790], esi
jne 0x427747
push 0x401f8c
call fcn.00409950
pop ecx
cmp byte [0x4365c6], 0
je 0x42775d
mov eax, 0x449100
mov dword [ebp - 0x288], eax
jmp 0x427792
mov ecx, 0x4024e0
call fcn.0040ec2e
mov edi, eax
mov dword [ebp - 0x288], edi
test edi, edi
je 0x427792
push edi
mov edx, 0x200
mov eax, 0x449100
mov dword [ebp - 0x288], eax
mov ecx, eax
call fcn.0040f3a0
mov byte [0x4365c6], 1
mov ecx, dword [0x448df8]
test ecx, ecx
jne 0x4277a1
mov ecx, 0x448bf0
push esi
mov edx, dword [0x448e00]
call fcn.00408e9e
lea ecx, [ebp - 0x29c]
call fcn.00427654
mov dword [ebp - 0x298], eax
test eax, eax
je 0x427d26
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 0x427c99
movzx eax, word [ecx]
test ax, ax
je 0x427c99
test ax, ax
je 0x427cd6
cmp ax, 0x24
je 0x427895
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 0x42782d
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 0x42788a
mov eax, dword [ebp - 0x288]
movzx eax, word [eax]
mov dword [ebp - 0x284], eax
mov ecx, eax
call fcn.0042814e
test eax, eax
je 0x427888
mov eax, dword [ebp - 0x284]
movzx eax, ax
mov dword [ebp - 0x294], eax
jmp 0x427c82
xor ecx, ecx
mov dword [ebp - 0x294], ecx
jmp 0x427c82
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 0x4278e7
inc edi
imul eax, edi, 6
lea eax, [eax + 0x403da0]
mov dword [ebp - 0x284], eax
xor ecx, ecx
cmp word [eax], cx
jne 0x4278b8
jmp 0x4278e9
xor ecx, ecx
imul eax, edi, 6
cmp word [eax + 0x403da0], cx
mov edi, dword [ebp - 0x280]
mov esi, dword [ebp - 0x27c]
je 0x427cd8
movzx edx, word [eax + 0x403da2]
cmp edx, 8
jne 0x42794b
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 0x427935
sub edx, dword [ebp - 0x284]
jmp 0x427c6f
lea eax, [edx - 1]
cmp eax, 9
ja case.0x427957.7
jmp dword [eax*4 + 0x427d46]
push esi
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.00409310
lea edi, [edi + eax*2]
sub esi, eax
jmp 0x427c76
push esi
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.00406854
jmp 0x42796a
mov eax, dword [0x448df8]
test eax, eax
jne 0x427990
mov eax, 0x448bf0
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 0x4279ad
sub edx, dword [ebp - 0x284]
jmp 0x427c6f
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 0x4279fe
sub edx, esi
mov esi, dword [ebp - 0x27c]
jmp 0x427c6f
cmp word [ebp - 0x294], 0
mov eax, 0x403b88
jne 0x427a2a
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 0x427a41
sub edx, dword [ebp - 0x284]
jmp 0x427c6f
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 0x427a72
sub edx, dword [ebp - 0x284]
jmp 0x427c6f
cmp byte [0x436755], 0
je 0x427c82
mov ecx, dword [0x436798]
jmp 0x427abe
mov eax, ecx
dec ecx
test eax, eax
je 0x427c82
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 0x427a9d
jmp 0x427c82
cmp byte [0x436755], 0
je 0x427c82
mov dword [ebp - 0x290], ecx
mov ecx, dword [0x448df8]
test ecx, ecx
mov eax, ecx
jne 0x427aec
mov eax, 0x448bf0
mov ax, word [eax]
mov word [ebp - 0x2c], ax
test ecx, ecx
jne 0x427afc
mov ecx, 0x448bf0
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 0x427c82
xor eax, eax
mov word [ebp - 0x28], ax
mov dword [ebp - 0x2a0], 0x104
and dword [ebp - 4], eax
call fcn.004172ef
test al, al
je 0x427b60
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 0x427b6a
mov dword [ebp - 0x290], 0x78
mov dword [ebp - 4], 0xfffffffe
jmp 0x427bb2
cmp dword [ebp - 0x290], 0
je 0x427bfa
cmp dword [ebp - 0x290], 0x8ca
je 0x427c82
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 0x427be7
sub edx, dword [ebp - 0x28c]
jmp 0x427c6f
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 0x427c1d
sub edx, dword [ebp - 0x28c]
jmp 0x427c6f
mov eax, dword [0x448df8]
test eax, eax
jne 0x427c3e
mov eax, 0x448bf0
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 0x427c5e
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 0x4277fa
mov eax, dword [0x448df8]
test eax, eax
jne 0x427ca7
mov eax, 0x448bf0
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 0x427cc4
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 0x427ce8
sub edx, esi
sar edx, 1
mov ecx, edi
call fcn.0040998d
cmp dword [0x43259c], 0
je 0x427d26
push dword [0x4325a4]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
and dword [0x43259c], 0
push dword [0x4325a4]
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.00416b30
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret