Function at 0x45da65
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
lea eax, [ebp + 8]
push edi
push eax
mov dword [ebp - 0x1c], ecx
call fcn.004379a9
pop ecx
push 5
lea ecx, [ebp - 4]
call fcn.0043d49b
push 0x14
lea ecx, [ebp - 0xc]
call fcn.0043d49b
lea ecx, [ebp - 0x20]
call fcn.0043d47d
mov ecx, dword [ebp + 8]
mov ax, word [ecx]
xor edi, edi
cmp ax, 0x2d
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 8], edi
mov dl, 0x2a
jne 0x45dab8
mov dl, al
movsx esi, dl
movzx eax, ax
cmp esi, eax
jne 0x45dbe7
push 2
pop ebx
push 3
lea eax, [ebp + 8]
push eax
add ecx, ebx
push 0x4ad318
mov dword [ebp + 8], ecx
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45daf1
mov dword [ebp - 0x10], 1
jmp 0x45dbd7
push 6
lea eax, [ebp + 8]
push eax
push str.setvol
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45db10
mov dword [ebp - 0x10], ebx
jmp 0x45dbd7
push 4
lea eax, [ebp + 8]
push eax
push str.idle
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45db33
mov dword [ebp - 0x38], 1
jmp 0x45dbd7
push 5
lea eax, [ebp + 8]
push eax
push str.idlec
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45db52
mov dword [ebp - 0x38], ebx
jmp 0x45dbd7
push 5
lea eax, [ebp + 8]
push eax
push str.rsort
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45db72
mov dword [ebp - 0x30], 1
jmp 0x45dbd7
push ebx
lea eax, [ebp + 8]
push eax
push 0x4ad2dc
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45db91
mov dword [ebp - 0x34], 0x100
jmp 0x45dbd7
push 3
lea eax, [ebp + 8]
push eax
push 0x4ad2d4
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45dbb1
mov dword [ebp - 8], 1
jmp 0x45dbd7
push 4
lea eax, [ebp + 8]
push eax
push str.devs
call fcn.00437a52
add esp, 0xc
test eax, eax
je 0x45dbcd
mov dword [ebp - 8], ebx
jmp 0x45dbd7
lea eax, [ebp + 8]
push eax
call fcn.0040507c
pop ecx
mov ecx, dword [ebp + 8]
movzx eax, word [ecx]
cmp esi, eax
je 0x45dac6
jmp 0x45dbea
push 2
pop ebx
push 0x3d
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fe29
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
push edi
lea eax, [ebp - 4]
push eax
call fcn.00402d87
mov eax, dword [ebp + 8]
cmp word [eax], 0x3d
mov esi, eax
jne 0x45dc2b
lea esi, [eax + 2]
push edi
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 8]
push eax
mov dword [ebp + 8], esi
call fcn.0043fe29
add esp, 0xc
mov eax, dword [ebp - 4]
cmp word [eax], di
jne 0x45dc3d
mov esi, 0x80070057
jmp 0x45e06a
cmp dword [ebp - 0x10], ebx
jne 0x45dc73
push ebx
lea ecx, [ebp - 4]
call fcn.0043d4c2
mov eax, dword [ebp - 4]
push esi
mov word [eax + 2], 0x3a
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.DLL_SetVolumeLabelW]
test eax, eax
je 0x45dc66
xor eax, eax
jmp 0x45dc6c
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x45e06a
push dword [ebp - 0xc]
call fcn.0041113a
pop ecx
call fcn.0044228c
mov ebx, 0x517
push ebx
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.0043d49b
mov edi, dword [ebp - 0x3c]
lea eax, [edi + 0x61c]
mov dword [ebp + 8], eax
xor eax, eax
cmp dword [ebp - 8], eax
je 0x45dd47
push ebx
push edi
push esi
mov word [edi], ax
call dword [sym.imp.KERNEL32.DLL_QueryDosDeviceW]
cmp dword [ebp - 8], 2
mov dword [ebp + 8], eax
mov eax, edi
jl 0x45dd27
xor esi, esi
cmp word [edi], si
mov ecx, edi
je 0x45dd27
mov dx, word [ecx]
inc ecx
inc ecx
test dx, dx
jne 0x45dcc8
inc esi
cmp word [ecx], dx
jne 0x45dcc8
cmp esi, 1
jle 0x45dd27
sub ecx, edi
sar ecx, 1
mov edi, ecx
lea ecx, [edi + esi]
cmp ecx, ebx
jle 0x45dcf6
add ecx, 2
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0043d4c2
lea edx, [eax + edi*2 - 4]
lea ecx, [edx + esi*2]
and word [ecx], 0
jmp 0x45dd23
cmp ecx, edx
jbe 0x45dd16
mov si, word [edx]
mov word [ecx], si
dec ecx
dec ecx
dec edx
dec edx
test si, si
jne 0x45dd03
mov word [ecx], 0xd
mov word [ecx + 2], 0xa
dec ecx
dec ecx
cmp ecx, edx
ja 0x45dd07
mov ecx, dword [ebp - 0x1c]
push eax
push dword [ebp - 4]
call fcn.0043cd78
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x45dd40
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x45e062
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x10], ebx
jne 0x45dfba
mov dword [edi], eax
mov dword [edi + 0x412], eax
cmp word [esi], ax
je 0x45dd95
mov cx, word [esi + 2]
cmp cx, ax
je 0x45dd75
cmp cx, 0x3a
jne 0x45dd95
cmp word [esi + 4], ax
jne 0x45dd95
push 6
lea ecx, [ebp - 0xc]
call fcn.0043d4c2
mov esi, dword [ebp - 0xc]
and word [esi + 6], 0
mov word [esi + 2], 0x3a
mov word [esi + 4], 0x5c
xor eax, eax
push 0xc
push str._HarddiskVolume3
push esi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ebx
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
mov ebx, 0x208
je 0x45ddfa
push 0x104
lea eax, [edi + 0x412]
push eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationW]
test eax, eax
je 0x45dde9
and dword [ebp - 8], 0
jmp 0x45de85
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
mov dword [ebp - 8], eax
je 0x45de85
xor ecx, ecx
push ecx
push 0x4be0dc
lea eax, [edi + 0x412]
push str.Kernel32.DLL
push str.GetVolumeInformationByHandleW
mov dword [ebp - 0x24], eax
mov dword [eax], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
call fcn.00438bfe
add esp, 0x10
cmp dword [0x4be0dc], 0
je 0x45de85
xor eax, eax
push eax
push eax
push 3
push eax
push 7
push 0x80000000
push esi
lea ecx, [ebp + 8]
mov dword [ebp + 8], eax
call fcn.0040511c
push 0x104
push dword [ebp - 0x24]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
push edi
push dword [ebp + 8]
call dword [0x4be0dc]
test eax, eax
je 0x45de74
and dword [ebp - 8], 0
jmp 0x45de7d
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 8], eax
lea ecx, [ebp + 8]
call fcn.00402b5a
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], eax
call fcn.0043d47d
lea ecx, [ebp - 0x34]
call fcn.0043d47d
lea ecx, [ebp - 0x30]
call fcn.0043d47d
lea ecx, [ebp - 0x2c]
call fcn.0043d47d
lea ecx, [ebp - 0x28]
call fcn.0043d47d
push 0x2c
pop esi
push esi
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fe29
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45df3e
push 2
pop ebx
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fe29
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45df3e
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fe29
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45df3e
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fe29
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45df3e
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fe29
add esp, 0xc
mov esi, dword [ebp - 0x1c]
push edi
push dword [ebp - 0x38]
mov ecx, esi
call fcn.0043cd78
push str._08lX
push dword [ebp - 0x34]
push dword [ebp - 0x10]
push esi
call fcn.0043f79e
push dword [ebp - 0x30]
push dword [ebp - 0x14]
push esi
call fcn.0043f7c8
push str.0x_lX
push dword [ebp - 0x28]
push dword [ebp - 0x18]
push esi
call fcn.0043f79e
add esp, 0x2c
push dword [ebp - 0x24]
mov ecx, esi
push dword [ebp - 0x2c]
call fcn.0043cd78
lea ecx, [ebp - 0x28]
call fcn.00437960
lea ecx, [ebp - 0x2c]
call fcn.00437960
lea ecx, [ebp - 0x30]
call fcn.00437960
lea ecx, [ebp - 0x34]
call fcn.00437960
lea ecx, [ebp - 0x38]
call fcn.00437960
mov esi, dword [ebp - 8]
jmp 0x45e062
cmp word [esi], ax
mov bl, 1
jne 0x45dfc5
mov cl, 0x7c
jmp 0x45dfeb
push esi
push 0x4ad26c
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45dfe9
push esi
push 0x4a978c
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45e00c
xor bl, bl
mov cl, 0x20
mov eax, dword [ebp - 0x34]
or eax, dword [ebp - 0x30]
push eax
push dword [ebp - 0x38]
movsx eax, bl
push eax
movsx ax, cl
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00449e87
add esp, 0x14
jmp 0x45e054
cmp word [esi + 2], 0x3a
jne 0x45e01c
and word [esi + 4], 0
mov eax, esi
jmp 0x45e054
mov edi, dword [ebp + 8]
and word [edi], 0
push edi
push 0x208
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryW]
push esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
push 5
lea ecx, [ebp - 0x20]
call fcn.0043d4c2
mov cx, word [edi]
mov eax, dword [ebp - 0x20]
mov word [eax], cx
mov word [eax + 2], 0x3a
and word [eax + 4], 0
mov ecx, dword [ebp - 0x1c]
push eax
push dword [ebp - 4]
call fcn.0043cd78
xor esi, esi
lea ecx, [ebp - 0x3c]
call fcn.00437960
lea ecx, [ebp - 0x20]
call fcn.00437960
lea ecx, [ebp - 0xc]
call fcn.00437960
lea ecx, [ebp - 4]
call fcn.00437960
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8