Function at 0x45d9d1
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.004378b6
pop ecx
push 5
lea ecx, [ebp - 4]
call fcn.0043d3c3
push 0x14
lea ecx, [ebp - 0xc]
call fcn.0043d3c3
lea ecx, [ebp - 0x20]
call fcn.0043d3a5
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 0x45da24
mov dl, al
movsx esi, dl
movzx eax, ax
cmp esi, eax
jne 0x45db53
push 2
pop ebx
push 3
lea eax, [ebp + 8]
push eax
add ecx, ebx
push 0x4ad2c8
mov dword [ebp + 8], ecx
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45da5d
mov dword [ebp - 0x10], 1
jmp 0x45db43
push 6
lea eax, [ebp + 8]
push eax
push str.setvol
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45da7c
mov dword [ebp - 0x10], ebx
jmp 0x45db43
push 4
lea eax, [ebp + 8]
push eax
push str.idle
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45da9f
mov dword [ebp - 0x38], 1
jmp 0x45db43
push 5
lea eax, [ebp + 8]
push eax
push str.idlec
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45dabe
mov dword [ebp - 0x38], ebx
jmp 0x45db43
push 5
lea eax, [ebp + 8]
push eax
push str.rsort
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45dade
mov dword [ebp - 0x30], 1
jmp 0x45db43
push ebx
lea eax, [ebp + 8]
push eax
push 0x4ad28c
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45dafd
mov dword [ebp - 0x34], pe_nt_image_headers32
jmp 0x45db43
push 3
lea eax, [ebp + 8]
push eax
push 0x4ad284
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45db1d
mov dword [ebp - 8], 1
jmp 0x45db43
push 4
lea eax, [ebp + 8]
push eax
push str.devs
call fcn.0043795f
add esp, 0xc
test eax, eax
je 0x45db39
mov dword [ebp - 8], ebx
jmp 0x45db43
lea eax, [ebp + 8]
push eax
call fcn.00407fcf
pop ecx
mov ecx, dword [ebp + 8]
movzx eax, word [ecx]
cmp esi, eax
je 0x45da32
jmp 0x45db56
push 2
pop ebx
push 0x3d
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
push edi
lea eax, [ebp - 4]
push eax
call fcn.00402db0
mov eax, dword [ebp + 8]
cmp word [eax], 0x3d
mov esi, eax
jne 0x45db97
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.0043fd51
add esp, 0xc
mov eax, dword [ebp - 4]
cmp word [eax], di
jne 0x45dba9
mov esi, 0x80070057
jmp 0x45dfd6
cmp dword [ebp - 0x10], ebx
jne 0x45dbdf
push ebx
lea ecx, [ebp - 4]
call fcn.0043d3ea
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 0x45dbd2
xor eax, eax
jmp 0x45dbd8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x45dfd6
push dword [ebp - 0xc]
call fcn.004110a0
pop ecx
call fcn.004421b4
mov ebx, 0x517
push ebx
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.0043d3c3
mov edi, dword [ebp - 0x3c]
lea eax, [edi + 0x61c]
mov dword [ebp + 8], eax
xor eax, eax
cmp dword [ebp - 8], eax
je 0x45dcb3
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 0x45dc93
xor esi, esi
cmp word [edi], si
mov ecx, edi
je 0x45dc93
mov dx, word [ecx]
inc ecx
inc ecx
test dx, dx
jne 0x45dc34
inc esi
cmp word [ecx], dx
jne 0x45dc34
cmp esi, 1
jle 0x45dc93
sub ecx, edi
sar ecx, 1
mov edi, ecx
lea ecx, [edi + esi]
cmp ecx, ebx
jle 0x45dc62
add ecx, 2
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0043d3ea
lea edx, [eax + edi*2 - 4]
lea ecx, [edx + esi*2]
and word [ecx], 0
jmp 0x45dc8f
cmp ecx, edx
jbe 0x45dc82
mov si, word [edx]
mov word [ecx], si
dec ecx
dec ecx
dec edx
dec edx
test si, si
jne 0x45dc6f
mov word [ecx], 0xd
mov word [ecx + 2], 0xa
dec ecx
dec ecx
cmp ecx, edx
ja 0x45dc73
mov ecx, dword [ebp - 0x1c]
push eax
push dword [ebp - 4]
call fcn.0043cc80
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x45dcac
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x45dfce
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x10], ebx
jne 0x45df26
mov dword [edi], eax
mov dword [edi + 0x412], eax
cmp word [esi], ax
je 0x45dd01
mov cx, word [esi + 2]
cmp cx, ax
je 0x45dce1
cmp cx, 0x3a
jne 0x45dd01
cmp word [esi + 4], ax
jne 0x45dd01
push 6
lea ecx, [ebp - 0xc]
call fcn.0043d3ea
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 0x45dd66
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 0x45dd55
and dword [ebp - 8], 0
jmp 0x45ddf1
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
mov dword [ebp - 8], eax
je 0x45ddf1
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.00438b10
add esp, 0x10
cmp dword [0x4be0dc], 0
je 0x45ddf1
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.004050ca
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 0x45dde0
and dword [ebp - 8], 0
jmp 0x45dde9
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 8], eax
lea ecx, [ebp + 8]
call fcn.00402b8a
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], eax
call fcn.0043d3a5
lea ecx, [ebp - 0x34]
call fcn.0043d3a5
lea ecx, [ebp - 0x30]
call fcn.0043d3a5
lea ecx, [ebp - 0x2c]
call fcn.0043d3a5
lea ecx, [ebp - 0x28]
call fcn.0043d3a5
push 0x2c
pop esi
push esi
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45deaa
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.0043fd51
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45deaa
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45deaa
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0
je 0x45deaa
add dword [ebp + 8], ebx
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0043fd51
add esp, 0xc
mov esi, dword [ebp - 0x1c]
push edi
push dword [ebp - 0x38]
mov ecx, esi
call fcn.0043cc80
push str._08lX
push dword [ebp - 0x34]
push dword [ebp - 0x10]
push esi
call fcn.0043f6c6
push dword [ebp - 0x30]
push dword [ebp - 0x14]
push esi
call fcn.0043f6f0
push str.0x_lX
push dword [ebp - 0x28]
push dword [ebp - 0x18]
push esi
call fcn.0043f6c6
add esp, 0x2c
push dword [ebp - 0x24]
mov ecx, esi
push dword [ebp - 0x2c]
call fcn.0043cc80
lea ecx, [ebp - 0x28]
call fcn.00437884
lea ecx, [ebp - 0x2c]
call fcn.00437884
lea ecx, [ebp - 0x30]
call fcn.00437884
lea ecx, [ebp - 0x34]
call fcn.00437884
lea ecx, [ebp - 0x38]
call fcn.00437884
mov esi, dword [ebp - 8]
jmp 0x45dfce
cmp word [esi], ax
mov bl, 1
jne 0x45df31
mov cl, 0x7c
jmp 0x45df57
push esi
push 0x4ad21c
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45df55
push esi
push 0x4a973c
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45df78
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.00449dd7
add esp, 0x14
jmp 0x45dfc0
cmp word [esi + 2], 0x3a
jne 0x45df88
and word [esi + 4], 0
mov eax, esi
jmp 0x45dfc0
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.0043d3ea
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.0043cc80
xor esi, esi
lea ecx, [ebp - 0x3c]
call fcn.00437884
lea ecx, [ebp - 0x20]
call fcn.00437884
lea ecx, [ebp - 0xc]
call fcn.00437884
lea ecx, [ebp - 4]
call fcn.00437884
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8