Function at 0x40d5e0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x330
mov eax, dword [0x41a8b0]
push ebx
mov ebx, dword [esp + 0x338]
push ebp
push esi
xor esi, esi
xor ebp, ebp
cmp eax, esi
push edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
je 0x40d617
cmp ebx, esi
jne 0x40d617
mov dword [0x424f70], esi
mov edx, 1
jmp 0x40d622
mov edx, 1
mov dword [0x424f70], edx
mov edi, 0x41cde0
or ecx, 0xffffffff
xor eax, eax
mov dword [0x41c304], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ebx, esi
mov dword [0x41c328], esi
mov dword [0x41c320], ecx
je 0x40d709
mov cl, byte [0x41cde0]
mov eax, 0x41cde0
test cl, cl
je 0x40d66e
cmp byte [eax], 0x5c
jne 0x40d668
mov byte [eax], 0x2f
mov cl, byte [0x41cde0]
inc eax
cmp byte [eax], 0
jne 0x40d65a
cmp cl, 0x2f
mov ebp, 0x41cde0
jne 0x40d68e
mov dword [0x41c328], edx
mov byte [esp + 0x30], cl
mov byte [esp + 0x31], 0
mov ebp, 0x41cde1
jmp 0x40d709
cmp dword [0x41a2ec], edx
jle 0x40d6b5
xor eax, eax
push 0x103
mov al, cl
push eax
call fcn.0040e439
mov cl, byte [0x41cde0]
add esp, 8
mov edx, 1
jmp 0x40d6c8
mov edi, dword [0x41a0e0]
xor eax, eax
mov al, cl
mov ax, word [edi + eax*2]
and eax, 0x103
cmp eax, esi
je 0x40d709
cmp byte [0x41cde1], 0x3a
jne 0x40d709
mov byte [esp + 0x30], cl
mov cl, byte [0x41cde2]
cmp cl, 0x2f
mov dword [0x41c328], edx
mov byte [esp + 0x31], 0x3a
lea eax, [esp + 0x32]
mov ebp, 0x41cde2
jne 0x40d706
mov byte [esp + 0x32], 0x2f
lea eax, [esp + 0x33]
mov ebp, 0x41cde3
mov byte [eax], 0
lea ecx, [esp + 0x30]
push edx
push ecx
call fcn.0040c820
add esp, 8
cmp eax, esi
mov dword [esp + 0x20], eax
jne 0x40da8b
xor edi, edi
mov byte [esp + 0x30], 0
cmp ebx, edi
lea esi, [esp + 0x30]
jne 0x40d757
cmp dword [0x41a8b8], edi
je 0x40d74b
push 0x2f
push 0x41cde0
call fcn.0040dcd0
add esp, 8
mov ebp, eax
cmp ebp, edi
jne 0x40d756
mov ebp, 0x41cde0
jmp 0x40d757
inc ebp
xor ebx, ebx
mov bl, byte [ebp]
inc ebp
cmp ebx, edi
je 0x40d8fd
cmp dword [esp + 0x10], edi
je 0x40d777
mov byte [esi], bl
inc esi
mov dword [esp + 0x10], edi
jmp 0x40d8ef
lea eax, [ebx - 0x16]
cmp eax, 0x25
ja case.0x40d78b.27
xor edx, edx
mov dl, byte [eax + 0x40dab0]
jmp dword [edx*4 + 0x40da98]
lea eax, [esp + 0x30]
push 2
push eax
mov byte [esi], 0
call fcn.0040c820
add esp, 8
cmp eax, 1
mov dword [esp + 0x20], eax
jg 0x40da8b
lea esi, [esp + 0x30]
mov dword [esp + 0x14], edi
jmp 0x40d8ef
mov dword [esp + 0x14], esi
mov byte [esi], 0x3b
jmp 0x40d8ee
mov dword [esp + 0x10], 1
jmp 0x40d8ef
cmp dword [0x41a8d0], edi
jne case.0x40d78b.25
cmp dword [0x41a2ec], 1
jle 0x40d804
xor ecx, ecx
push 0x103
mov cl, byte [0x41cde0]
push ecx
call fcn.0040e439
add esp, 8
jmp 0x40d81a
mov eax, dword [0x41a0e0]
xor edx, edx
mov dl, byte [0x41cde0]
mov ax, word [eax + edx*2]
and eax, 0x103
cmp eax, edi
je 0x40d82e
cmp byte [0x41cde1], 0x3a
jne 0x40d82e
mov eax, 0x41cde0
jmp 0x40d852
lea ecx, [esp + 0x18]
lea edx, [esp + 0x138]
push ecx
push edx
push 0x104
push 0x41cde0
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea eax, [esp + 0x138]
push 3
mov dword [esp + 0x1c], eax
push eax
lea eax, [esp + 0x24]
push eax
call fcn.0040e270
add esp, 0xc
lea ecx, [esp + 0x23c]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x24]
push 0x104
push ecx
push edx
lea ecx, [esp + 0x34]
push eax
push ecx
lea edx, [esp + 0x14c]
push 0x104
lea eax, [esp + 0x34]
push edx
push eax
mov byte [esp + 0x3f], 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
cmp dword [esp + 0x24], 0xc
jbe case.0x40d78b.25
mov byte [esi], 0x20
jmp 0x40d8ee
mov byte [esi], 0x5f
jmp 0x40d8ee
cmp dword [0x41a2ec], 1
jle 0x40d8c9
push 0x157
push ebx
call fcn.0040e439
add esp, 8
jmp 0x40d8d8
mov ecx, dword [0x41a0e0]
mov ax, word [ecx + ebx*2]
and eax, 0x157
cmp eax, edi
jne 0x40d8ec
cmp ebx, 0x80
jb 0x40d8ef
cmp ebx, 0xfe
ja 0x40d8ef
mov byte [esi], bl
inc esi
xor ebx, ebx
mov bl, byte [ebp]
inc ebp
cmp ebx, edi
jne 0x40d765
mov eax, dword [0x41a8e8]
mov byte [esi], 0
cmp eax, edi
jne 0x40d94d
mov ebx, dword [esp + 0x14]
cmp ebx, edi
je 0x40d94d
lea esi, [ebx + 1]
cmp dword [0x41a2ec], 1
jle 0x40d92e
xor edx, edx
push 4
mov dl, byte [esi]
push edx
call fcn.0040e439
add esp, 8
jmp 0x40d93e
mov ecx, dword [0x41a0e0]
xor eax, eax
mov al, byte [esi]
mov al, byte [ecx + eax*2]
and eax, 4
cmp eax, edi
je 0x40d945
inc esi
jmp 0x40d914
cmp byte [esi], 0
jne 0x40d94d
mov byte [ebx], 0
mov edx, dword [0x41c320]
cmp byte [edx + 0x41cddf], 0x2f
jne 0x40d9ab
push 4
push 0x41cde0
call fcn.0040c820
mov eax, dword [0x41c304]
add esp, 8
cmp eax, edi
je 0x40da77
cmp dword [0x41a8cc], edi
jne 0x40da77
push 0x41cde0
push 0x419d98
push 0x419e80
call fcn.0040dba4
add esp, 0xc
mov eax, 0x4d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x330
ret
mov al, byte [esp + 0x30]
test al, al
jne 0x40d9da
push 0x41cde0
push 0x419dac
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x330
ret
lea eax, [esp + 0x30]
push 3
push eax
call fcn.0040c820
push 4
push 0x41cde0
call fcn.0040c820
mov ecx, dword [0x416044]
add esp, 0x10
test byte [ecx + 0x14], 0x20
je 0x40da87
mov dl, byte [0x41c300]
mov eax, dword [0x41a8cc]
add dl, 0x60
cmp eax, edi
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], 0x3a
mov byte [esp + 0x12], 0
jne 0x40da41
lea eax, [esp + 0x10]
push 0x41cde0
push eax
push 0x419dd0
push 0x419e80
call fcn.0040dba4
add esp, 0x10
lea ecx, [esp + 0x10]
push 0x41cde0
push ecx
call dword [sym.imp.KERNEL32.dll_SetVolumeLabelA]
test eax, eax
jne 0x40da77
push 0x419de4
push 0x419ea0
call fcn.0040dba4
add esp, 8
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x330
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x330
ret
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x330
ret