Function at 0x10017c09
Capabilities:
Get disk information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
push ebx
xor ebx, ebx
mov dword [ebp - 0x20], edx
push esi
push edi
mov dword [ebp - 0x48], ecx
cmp byte [ebp + 8], bl
je 0x100181b4
mov dword [ebp - 0xc], 0x5ba7
mov dword [ebp - 0x14], 0xff82ff40
mov dword [ebp + 8], 0xfffffffc
mov dword [ebp - 8], 0x4c3f
mov dword [ebp - 0x3c], 0xfffffffb
mov dword [ebp - 0x18], 0xb395b91
mov dword [ebp - 0x20], 0x6a67
mov dword [ebp - 0x20], 0x55b90cb9
mov dword [ebp - 0x24], 0xac86e89b
mov dword [ebp - 0x30], 0xd7ad251a
mov dword [ebp - 0x20], 0xa74b80cd
push 2
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 4], ebx
pop edi
jmp 0x10017c90
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x38], 0x4902314a
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x10017c82
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jne 0x10017caf
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
xor esi, esi
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0xc]
inc esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 8], ebx
jmp 0x10017ebd
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x2c], 0xb5881f6c
mov dword [ebp - 4], 0x654a1373
mov dword [ebp - 0x44], 0x309ce07b
mov dword [ebp - 0x20], esi
mov dword [ebp + 8], ebx
jmp 0x10017eb1
mov dword [ebp - 0x1c], 6
mov dword [ebp - 4], 0xf484
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], 0xfffffffe
mov dword [ebp - 0x28], 0x285b5f73
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x38], ecx
cmp dword [ebp - 0x10], ebx
je 0x10017d6b
cmp dword [ebp - 0x1c], ebx
je 0x10017d57
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul edx, ecx, 0x6037
dec edx
sub edx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
neg edx
cmp edx, eax
mov eax, dword [ebp + 8]
setg cl
cmp ecx, dword [ebp + eax*4 - 0x38]
jge 0x10017d57
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, esi
mov eax, esi
setg cl
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
jne 0x10017d6d
mov eax, ebx
mov ecx, dword [ebp - 0x38]
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setl dl
xor ecx, ecx
sub edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
cmp edx, eax
setle cl
cmp ecx, dword [ebp - 0x10]
je 0x10017e1c
mov dword [ebp - 0x1c], 0xf6d70783
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x1c], 0xb81002a9
dec dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
jmp 0x10017e11
mov dword [ebp - 0x18], 0x8ac39fbd
cmp dword [ebp - 0x24], ebx
jne 0x10017dc3
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setge dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 4]
setle cl
sub eax, ecx
jne 0x10017de8
mov edx, ebx
cmp dword [ebp - 0x14], ebx
je 0x10017dea
mov edx, esi
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x10]
cmp eax, esi
setle cl
mov dword [ebp - 0x18], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x13
jge 0x10017db4
jmp 0x10017eae
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0xa94edb4a
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 3
je 0x10017eae
mov dword [ebp - 0x28], 0x4a01c31e
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], 0xb5ce3a63
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x18]
cmp eax, 0xfffffff6
je 0x10017e60
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x3c]
setl dl
xor ebx, ebx
cmp edx, 0xffffffff
setg bl
xor ecx, ecx
cmp eax, ebx
setle cl
xor eax, eax
cmp ecx, 0x72c
setg al
xor edx, edx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
setle dl
mov dword [ebp - 0x18], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jne 0x10017e2f
xor ebx, ebx
inc dword [ebp + 8]
cmp dword [ebp + 8], esi
jle 0x10017ce9
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x10017cc6
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp + 8], 0x938d10fb
mov dword [ebp + 8], 0x4177fd8b
mov dword [ebp + 8], 0x2bb650eb
mov dword [ebp + 8], 0x919d6b80
mov dword [ebp - 0x10], 0x15
jmp 0x10018073
mov dword [ebp - 8], 0xa18885c6
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x30], 0x8da9
mov dword [ebp + 8], 0xa583
mov dword [ebp + 8], ebx
mov dword [ebp + 8], edi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 8], ebx
jmp 0x10018066
mov dword [ebp - 4], 0xf36f6dd8
mov dword [ebp + 8], 0x618b2576
mov dword [ebp + 8], 0x8c0775da
mov dword [ebp - 4], 7
jmp 0x10018030
mov dword [ebp - 0x14], 0x8bb4aad9
mov dword [ebp - 0x24], 0x2a4f2a6c
mov dword [ebp + 8], ebx
jmp 0x10017f6e
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x5c], 0x52a42bbd
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x10017f60
mov eax, dword [ebp - 0xc]
inc dword [ebp - 0xc]
test eax, eax
jne 0x10017f90
mov ecx, dword [ebp - 4]
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp eax, ecx
setne dl
sub edx, 3
je 0x10017f92
mov ebx, esi
mov eax, dword [ebp - 0x10]
xor edx, edx
cmp ebx, eax
mov eax, dword [ebp - 0x58]
sete dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
setge dl
imul eax, dword [ebp - 0x14], 0xb151
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x24]
setl bl
xor ecx, ecx
cmp ebx, eax
setl cl
mov dword [ebp + 8], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 4], 0xdf3e2e16
mov eax, dword [ebp - 8]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
xor ebx, ebx
mov dword [ebp + 8], ecx
cmp dword [ebp + 8], ebx
jne 0x10017fff
mov eax, ebx
cmp dword [ebp - 8], ebx
je 0x10018001
mov eax, esi
xor ecx, ecx
cmp eax, 0x2b0a
sete cl
xor eax, eax
cmp ecx, 0xe874d4a7
setne al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp + 8], eax
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], bl
je 0x1001802d
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffff1
je 0x10017f4d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
neg ecx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
sbb ecx, ecx
neg ecx
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 8], ecx
mov eax, dword [ebp + 8]
mov eax, dword [ebp - 0x2c]
push 0xfffffffffffffff8
pop ecx
sub ecx, eax
mov dword [ebp + 8], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x13
jge 0x10017f2c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x17
jne 0x10017ef5
mov dword [ebp - 0xc], 0xca4f833f
lea ecx, [ebp - 0x68]
mov dword [ebp + 8], 0xffffffff
mov dword [ebp + 8], 0x14c90d29
mov dword [ebp + 8], 0x36b1
mov dword [ebp + 8], 0xfffffff7
mov dword [ebp + 8], 0x38e8
push 3
call fcn.10015bd6
push 3
mov dword [ebp + 8], 0x8ec
mov dword [ebp + 8], ebx
pop edx
jmp 0x100180cd
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x8c], esi
inc dword [ebp + 8]
cmp dword [ebp + 8], edx
jl 0x100180c0
mov dword [ebp + 8], ebx
jmp 0x100180e7
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0x79753589
inc dword [ebp + 8]
cmp dword [ebp + 8], edx
jl 0x100180d7
mov dword [ebp - 0xc], edi
cmp dword [ebp - 0xc], ebx
jl 0x10018178
push 0xfffffffffffffff7
pop eax
mov dword [ebp + 8], esi
mov dword [ebp + 8], 0xf3d4210e
mov dword [ebp + 8], 0xa61eefb6
mov dword [ebp + 8], esi
mov dword [ebp + 8], 0xfffffff9
mov dword [ebp + 8], ebx
mov dword [ebp + 8], 0x1af7f3e7
mov dword [ebp + 8], 0x191b4956
mov dword [ebp + 8], 0xc556123d
mov dword [ebp + 8], esi
mov dword [ebp + 8], esi
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 8], 0x32d6
inc dword [ebp - 8]
mov dword [ebp - 8], ebx
cmp dword [ebp - 8], edi
jg 0x10018173
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x10018168
push ebx
push 0x1053
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jle 0x10018152
push 0xfffffffffffffff7
pop eax
dec dword [ebp - 0xc]
jns 0x100180fb
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x1001818e
push 0xaa4
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea ecx, [ebp - 0x68]
call fcn.10015c58
mov eax, dword [ebp - 0x48]
cmp byte [eax], 0
je 0x100182cf
push 0x2b9
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
jmp 0x100182cf
mov dword [ebp - 8], ebx
mov dword [ebp - 8], ebx
jmp 0x100181dd
mov dword [ebp + 8], ebx
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], bl
je 0x100181d4
push 0x1245
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov eax, dword [ebp - 8]
mov dword [ebp + 8], eax
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffffe
jg 0x100181bc
push 2
mov dword [ebp - 4], 0xffffffff
mov dword [ebp + 8], ebx
pop edi
jmp 0x10018200
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x50], 0xf6d4a0d4
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x100181f2
xor esi, esi
mov dword [ebp + 8], ebx
inc esi
jmp 0x10018217
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x40], edi
inc dword [ebp + 8]
cmp dword [ebp + 8], esi
jl 0x1001820d
dec dword [ebp - 4]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, 0xb95
setle cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x40], ebx
je 0x10018252
mov dword [ebp + 8], 0xf823aaf5
mov dword [ebp + 8], esi
jmp 0x100182b0
mov dword [ebp + 8], 0xfffffffc
mov dword [ebp - 0xc], ebx
jmp 0x10018268
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x80], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x1001825e
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp eax, 3
setl cl
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4c], eax
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], bl
je 0x100182b0
push 0x52d
push ebx
push 0x1854
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
mov edx, dword [ebp - 0x20]
mov dword [edx], ebx
cmp dword [edx], 3
jge 0x100182cf
mov esi, dword [ebp + 0xc]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xe34edf6b
inc dword [edx]
cmp dword [edx], 3
jl 0x100182bd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret