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 [str.________________________________H]
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 [str.________________________________H]
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 [str.________________________________H]
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 [str.________________________________H]
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 str.___creating:___22s_n
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 str.mapname:__conversion_of__s_failed_n
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 [str._bum]
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 str.labelling__s___22s_n
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 str.mapname:__error_setting_volume_label_n
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