Function at 0x10040f60
Capabilities:
Get disk information
Get process image filename

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100aa4fb
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x100dc0d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x238], 0
push 4
lea ecx, [ebp - 0x224]
call fcn.10006260
push 0x100b9834
lea ecx, [ebp - 0x224]
call fcn.1000b5e0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x228]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [ebp - 0x284], eax
mov edx, dword [ebp - 0x228]
push edx
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 0
je 0x10041410
push 0x208
push 0
lea eax, [ebp - 0x220]
push eax
call fcn.1007cdb0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x220]
push ecx
mov edx, dword [ebp - 0x248]
push edx
call sub.KERNEL32.dll_K32GetProcessImageFileNameW
test eax, eax
je 0x10041410
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jne 0x1004107e
lea eax, [ebp - 0x224]
push eax
mov ecx, dword [ebp + 8]
call fcn.1003c690
mov ecx, dword [ebp - 0x238]
or ecx, 1
mov dword [ebp - 0x238], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.100044c0
mov eax, dword [ebp + 8]
jmp 0x10041443
mov eax, dword [ebp - 0x22c]
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1004d068
add esp, 4
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x22c]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x234]
push edx
call fcn.1007cdb0
add esp, 0xc
mov eax, dword [ebp - 0x234]
push eax
mov ecx, dword [ebp - 0x22c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jne 0x1004116e
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x24c], edx
mov eax, dword [ebp - 0x24c]
push eax
call fcn.1004cf71
add esp, 4
cmp dword [ebp - 0x24c], 0
jne 0x10041120
mov dword [ebp - 0x260], 0
jmp 0x10041136
mov dword [ebp - 0x234], 0x8123
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x260], ecx
lea edx, [ebp - 0x224]
push edx
mov ecx, dword [ebp + 8]
call fcn.1003c690
mov eax, dword [ebp - 0x238]
or eax, 1
mov dword [ebp - 0x238], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.100044c0
mov eax, dword [ebp + 8]
jmp 0x10041443
mov ecx, dword [0x100b9838]
mov dword [ebp - 0x18], ecx
mov dx, word [0x100b983c]
mov word [ebp - 0x14], dx
push 0x208
call fcn.1004d068
add esp, 4
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x240], ecx
mov edx, 2
imul eax, edx, 0
mov ecx, dword [ebp - 0x240]
mov dx, word [ecx]
mov word [ebp + eax - 0x18], dx
push 0x104
mov eax, dword [ebp - 0x230]
push eax
lea ecx, [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jne 0x100412a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x100411fc
jmp 0x10041384
mov edx, dword [ebp - 0x230]
mov dword [ebp - 0x250], edx
mov eax, dword [ebp - 0x250]
push eax
call fcn.1004cf71
add esp, 4
cmp dword [ebp - 0x250], 0
jne 0x1004122c
mov dword [ebp - 0x268], 0
jmp 0x10041242
mov dword [ebp - 0x230], 0x8123
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0x268], ecx
mov eax, dword [ebp - 0x22c]
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1004d068
add esp, 4
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x22c]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x230]
push edx
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jne 0x100412a5
jmp 0x10041384
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0x23c], ecx
mov edx, dword [ebp - 0x23c]
add edx, 2
mov dword [ebp - 0x270], edx
mov eax, dword [ebp - 0x23c]
mov cx, word [eax]
mov word [ebp - 0x242], cx
add dword [ebp - 0x23c], 2
cmp word [ebp - 0x242], 0
jne 0x100412c0
mov edx, dword [ebp - 0x23c]
sub edx, dword [ebp - 0x270]
sar edx, 1
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x230]
push edx
lea eax, [ebp - 0x220]
push eax
call fcn.10085a5a
add esp, 0xc
test eax, eax
jne 0x1004134a
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp + ecx*2 - 0x220]
push edx
lea eax, [ebp - 0x18]
push eax
push str._s_s
lea ecx, [ebp - 0x224]
push ecx
call fcn.10004b70
add esp, 0x10
jmp 0x10041384
mov edx, dword [ebp - 0x240]
movzx eax, word [edx]
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x240]
add ecx, 2
mov dword [ebp - 0x240], ecx
cmp dword [ebp - 0x278], 0
je 0x10041373
jmp 0x1004134a
mov edx, dword [ebp - 0x240]
movzx eax, word [edx]
test eax, eax
jne 0x100411ad
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x254], ecx
mov edx, dword [ebp - 0x254]
push edx
call fcn.1004cf71
add esp, 4
cmp dword [ebp - 0x254], 0
jne 0x100413b4
mov dword [ebp - 0x27c], 0
jmp 0x100413ca
mov dword [ebp - 0x234], 0x8123
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x27c], eax
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x258]
push edx
call fcn.1004cf71
add esp, 4
cmp dword [ebp - 0x258], 0
jne 0x100413fa
mov dword [ebp - 0x280], 0
jmp 0x10041410
mov dword [ebp - 0x230], 0x8123
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x280], eax
lea ecx, [ebp - 0x224]
push ecx
mov ecx, dword [ebp + 8]
call fcn.1003c690
mov edx, dword [ebp - 0x238]
or edx, 1
mov dword [ebp - 0x238], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.100044c0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004ce3a
mov esp, ebp
pop ebp
ret