Function at 0x41631f
Capabilities:
Get disk information

Disassembly:
push 0x290
push 0x42bb30
call fcn.004172ec
xor esi, esi
mov dword [ebp - 0x28c], esi
cmp dword [0x42d54c], esi
jne 0x419395
cmp dword [0x42d0c8], esi
je 0x419570
cmp dword [0x42d5d0], esi
jne 0x416361
push 0x40204c
call fcn.0040c37c
pop ecx
cmp byte [0x4378a6], 0
jne 0x4193c5
mov ecx, 0x402148
call fcn.0040c222
mov ebx, eax
mov dword [ebp - 0x280], ebx
test ebx, ebx
je 0x4163a3
push ebx
mov edx, 0x200
mov eax, 0x448070
mov dword [ebp - 0x280], eax
mov ecx, eax
call fcn.00410820
mov byte [0x4378a6], 1
xor eax, eax
mov ecx, dword [0x443cc8]
test ecx, ecx
setne al
test al, al
jne 0x4163b9
mov ecx, 0x443ac0
push esi
mov edx, dword [0x443cd0]
call fcn.00412c1e
lea ecx, [ebp - 0x294]
call fcn.00427476
mov dword [ebp - 0x290], eax
test eax, eax
je 0x419570
mov edi, eax
mov dword [ebp - 0x278], edi
xor ecx, ecx
mov word [eax], cx
mov ebx, dword [ebp - 0x294]
dec ebx
mov dword [ebp - 0x27c], ebx
mov eax, dword [ebp - 0x280]
test eax, eax
je 0x41640b
cmp word [eax], si
jne 0x4164db
xor eax, eax
mov ecx, dword [0x443cc8]
test ecx, ecx
setne al
test al, al
jne 0x416421
mov ecx, 0x443ac0
push ecx
push 0x401f00
push ebx
mov ebx, dword [ebp - 0x290]
push ebx
call fcn.0040c4ef
add esp, 0x10
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x41643c
sub ecx, edx
sar ecx, 1
lea edi, [ebx + ecx*2]
xor eax, eax
mov word [edi], ax
mov edx, ebx
lea ecx, [edx + 2]
jmp 0x419533
push eax
push 0x401ef8
push ebx
push edi
call fcn.0040c4ef
add esp, 0x10
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x416472
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [ebp - 0x278], edi
sub ebx, ecx
mov dword [ebp - 0x27c], ebx
call fcn.00408a47
test al, al
je 0x4193d5
mov eax, dword [ebp - 0x280]
movzx eax, word [eax]
mov dword [ebp - 0x288], eax
mov ecx, eax
call fcn.004278ba
test eax, eax
je 0x4193d5
mov eax, dword [ebp - 0x288]
movzx eax, ax
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x280]
add eax, 2
mov dword [ebp - 0x280], eax
movzx eax, word [eax]
test ax, ax
je 0x4165a5
cmp eax, 0x24
jne 0x41645d
mov ebx, dword [ebp - 0x280]
add ebx, 2
mov dword [ebp - 0x280], ebx
mov dword [ebp - 0x29c], ebx
mov edi, esi
mov dword [ebp - 0x288], 0x4034d0
movzx eax, word [ebx]
push eax
call dword [sym.imp.msvcrt.dll_towupper]
pop ecx
mov ecx, dword [ebp - 0x288]
cmp ax, word [ecx]
je 0x41653c
inc edi
imul eax, edi, 6
lea eax, [eax + 0x4034d0]
mov dword [ebp - 0x288], eax
cmp word [eax], si
jne 0x416511
imul eax, edi, 6
cmp word [eax + 0x4034d0], si
mov edi, dword [ebp - 0x278]
mov ebx, dword [ebp - 0x27c]
je 0x4165a5
movzx ecx, word [eax + 0x4034d2]
cmp ecx, 8
jne 0x4193e0
movzx eax, word [eax + 0x4034d4]
push eax
push 0x401ef8
push ebx
push edi
call fcn.0040c4ef
add esp, 0x10
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x416580
sub ecx, edx
sar ecx, 1
sub ebx, ecx
lea edi, [edi + ecx*2]
mov dword [ebp - 0x27c], ebx
mov dword [ebp - 0x278], edi
jmp 0x4164cc
mov ebx, dword [ebp - 0x290]
jmp 0x41644e
xor eax, eax
mov ecx, dword [0x443cc8]
test ecx, ecx
setne al
test al, al
jne 0x4165c6
mov ecx, 0x443ac0
push ecx
push 0x402044
push ebx
push edi
call fcn.0040c4ef
add esp, 0x10
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x4165db
jmp 0x41658b
push 0x401f10
call fcn.00410820
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x4165f7
jmp 0x41658b
xor eax, eax
mov ecx, dword [0x443cc8]
test ecx, ecx
setne al
test al, al
jne 0x41661a
mov ecx, 0x443ac0
movzx eax, word [ecx]
push eax
push 0x401ef8
push ebx
push edi
call fcn.0040c4ef
add esp, 0x10
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x416632
jmp 0x41658b
cmp byte [0x443cd9], 0
je 0x4164cc
mov ecx, dword [0x443cf4]
cmp ebx, 1
jbe 0x4164cc
mov eax, ecx
dec ecx
test eax, eax
je 0x4164cc
push 0x2b
pop eax
mov word [edi], ax
add edi, 2
mov dword [ebp - 0x278], edi
dec ebx
mov dword [ebp - 0x27c], ebx
jmp 0x416655
mov edx, ebx
mov ecx, edi
cmp word [ebp - 0x28c], 0
jne 0x4165e8
push 0x401f08
jmp 0x4165ed
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_2_1.dll_GetDriveTypeW]
cmp eax, 4
jne 0x4164cc
xor eax, eax
mov word [ebp - 0x28], ax
mov dword [ebp - 0x298], 0x104
mov dword [ebp - 4], esi
call fcn.004174b8
test al, al
je 0x41674b
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x274]
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 - 0x284], eax
mov dword [ebp - 4], 0xfffffffe
jmp 0x4194cb
mov dword [ebp - 0x284], 0x78
jmp 0x4166ff
push esi
push 0x2335
call fcn.00415469
pop ecx
pop ecx
push dword [0x433868]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_EnterCriticalSection]
mov dword [0x42d54c], esi
push dword [0x433868]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_LeaveCriticalSection]
jmp 0x416342
mov eax, 0x448070
mov dword [ebp - 0x280], eax
jmp 0x4163a3
mov dword [ebp - 0x28c], esi
jmp 0x4164cc
lea eax, [ecx - 1]
cmp eax, 9
ja case.0x4193ec.7
jmp dword [eax*4 + 0x419579]
push ebx
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.00404cc0
jmp 0x41940d
push ebx
push edi
xor edx, edx
inc edx
xor ecx, ecx
call fcn.00405c94
lea edi, [edi + eax*2]
sub ebx, eax
jmp 0x416594
lea ecx, [ebp - 0x6c]
call fcn.00406874
lea eax, [ebp - 0x6c]
push eax
push 0x2350
call fcn.004060a5
mov esi, eax
push esi
push 0x402044
push ebx
push edi
call fcn.0040c4ef
add esp, 0x18
push esi
call dword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
mov ecx, edi
lea edx, [ecx + 2]
xor esi, esi
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x41944d
jmp 0x41658b
push 0x40204c
mov edx, ebx
mov ecx, edi
call fcn.00410820
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x419470
jmp 0x41658b
cmp byte [0x443cd9], 0
je 0x4164cc
mov dword [ebp - 0x284], esi
xor eax, eax
mov ecx, dword [0x443cc8]
test ecx, ecx
setne al
test al, al
mov eax, ecx
jne 0x4194ab
mov eax, 0x443ac0
mov ax, word [eax]
mov word [ebp - 0x2c], ax
xor eax, eax
test ecx, ecx
setne al
test al, al
jne 0x41669d
mov ecx, 0x443ac0
jmp 0x41669d
cmp dword [ebp - 0x284], 0
je 0x419508
cmp dword [ebp - 0x284], 0x8ca
je 0x4164cc
push 0x403264
push ebx
push edi
call fcn.0040c4ef
add esp, 0xc
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x4194f8
jmp 0x41658b
lea eax, [ebp - 0x274]
push eax
push 0x40325c
push ebx
push edi
call fcn.0040c4ef
add esp, 0x10
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x419523
jmp 0x41658b
mov ax, word [edx]
add edx, 2
cmp ax, si
jne 0x419533
sub edx, ecx
sar edx, 1
mov ecx, ebx
call fcn.0040c3b9
cmp dword [0x42d54c], 0
je 0x419570
push dword [0x433868]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_EnterCriticalSection]
mov dword [0x42d54c], esi
push dword [0x433868]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_LeaveCriticalSection]
call fcn.00417334
ret