Function at 0x10024e2
Capabilities:
Accept command line arguments
Get disk information

Disassembly:
push 0x22c
push 0x10041e8
call fcn.01003ab0
mov ebx, ecx
mov dword [ebp - 0x23c], ebx
xor eax, eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], eax
mov esi, 0x10013e0
lea edi, [ebp - 0x224]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x202
push eax
lea eax, [ebp - 0x21e]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
and dword [ebp - 0x228], 0
lea esi, [ebx + 0x518]
push 8
pop ecx
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
and dword [ebp - 4], eax
lea eax, [ebp - 0x234]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
mov dword [ebp - 0x230], edi
test edi, edi
jne 0x1002582
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1002577
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x228], eax
jmp 0x1002aaa
xor eax, eax
inc eax
cmp dword [ebp - 0x234], eax
jg 0x1002594
mov byte [esi], al
jmp 0x1002aaa
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x234]
cmp dword [ebp - 0x22c], eax
jge 0x10025df
mov eax, dword [ebp - 0x22c]
mov eax, dword [edi + eax*4]
test eax, eax
je 0x1002630
movzx ecx, word [eax]
cmp cx, 0x2d
je 0x10025c4
cmp cx, 0x2f
jne 0x1002630
inc eax
inc eax
push 0x10012cc
push eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x1002630
mov byte [ebx + 0x530], 1
xor edi, edi
inc edi
mov dword [ebp - 0x22c], edi
cmp edi, dword [ebp - 0x234]
jge 0x100293a
mov eax, dword [ebp - 0x230]
mov esi, dword [eax + edi*4]
test esi, esi
je 0x100266e
movzx eax, word [esi]
cmp ax, 0x2d
je 0x1002610
cmp ax, 0x2f
jne 0x100266e
inc esi
inc esi
push 0x1001328
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x100263b
mov byte [ebx + 0x518], 1
jmp 0x1002aaa
inc dword [ebp - 0x22c]
jmp 0x100259a
push 0x10012cc
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x1002934
push 0x10012bc
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x100267d
lea eax, [ebx + 0x531]
cmp byte [eax], 0
je 0x1002697
mov dword [ebp - 0x228], 0xc0a0002a
jmp 0x1002aaa
push 0x1001314
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x100269f
lea eax, [ebx + 0x519]
jmp 0x1002669
mov byte [eax], 1
jmp 0x1002934
push 0x1001304
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x1002809
cmp dword [ebx + 0x51c], eax
jne 0x100266e
inc edi
cmp edi, dword [ebp - 0x234]
jl 0x10026d5
mov dword [ebp - 0x228], 0xc0a0001c
jmp 0x1002aaa
mov dword [ebp - 0x22c], edi
mov eax, dword [ebp - 0x230]
mov esi, dword [eax + edi*4]
mov dword [ebp - 0x238], esi
push 0x1001278
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x100270b
mov dword [ebx + 0x51c], 4
jmp 0x1002934
push 0x10012ac
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x100272c
mov dword [ebx + 0x51c], 1
jmp 0x1002934
inc edi
cmp edi, dword [ebp - 0x234]
jge 0x10026c6
push 9
push 0x100135c
push esi
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x1002775
add esi, 0x12
mov dword [ebp - 0x238], esi
movzx eax, word [esi]
cmp ax, 0x31
jb 0x1002769
cmp ax, 0x39
ja 0x1002769
cmp word [esi + 2], 0
je 0x1002792
mov dword [ebp - 0x228], 0xc0a0001d
jmp 0x1002792
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_iswalpha]
pop ecx
test eax, eax
je 0x10027fa
cmp word [esi + 2], 0x3a
jne 0x10027fa
cmp word [esi + 4], 0
jne 0x10027fa
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_towupper]
mov word [ebx + 0x51a], ax
mov dword [ebp - 0x22c], edi
mov eax, dword [ebp - 0x230]
mov esi, dword [eax + edi*4]
mov dword [esp], 0x1001290
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x10027d5
mov dword [ebx + 0x51c], 2
jmp 0x1002934
push 0x10012a0
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x10026c6
mov dword [ebx + 0x51c], 3
jmp 0x1002934
mov dword [ebp - 0x228], 0xc0a0001d
jmp 0x1002aaa
push 0x10012e4
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x1002898
cmp word [ebx + 0x520], ax
jne 0x100266e
inc edi
cmp edi, dword [ebp - 0x234]
jl 0x1002840
mov dword [ebp - 0x228], 0xc0a00021
jmp 0x1002aaa
mov dword [ebp - 0x22c], edi
mov eax, dword [ebp - 0x230]
mov esi, dword [eax + edi*4]
mov dword [ebp - 0x238], esi
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_iswalpha]
pop ecx
test eax, eax
je 0x1002889
cmp word [esi + 2], 0x3a
jne 0x1002889
cmp word [esi + 4], 0
jne 0x1002889
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_towupper]
pop ecx
mov word [ebx + 0x520], ax
jmp 0x1002934
mov dword [ebp - 0x228], 0xc0a00022
jmp 0x1002aaa
push 0x10012d8
push esi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x100266e
mov eax, dword [ebx + 0x528]
or eax, dword [ebx + 0x52c]
jne 0x100266e
inc edi
cmp edi, dword [ebp - 0x234]
jl 0x10028d8
mov dword [ebp - 0x228], 0xc0a00024
jmp 0x1002aaa
mov dword [ebp - 0x22c], edi
mov eax, dword [ebp - 0x230]
push dword [eax + edi*4]
call dword [sym.imp.msvcrt.dll__wtoi64]
pop ecx
test edx, edx
jg 0x1002907
jl 0x10028f8
test eax, eax
jae 0x1002907
mov dword [ebp - 0x228], 0xc0a00025
jmp 0x1002aaa
shld edx, eax, 0x14
shl eax, 0x14
mov dword [ebx + 0x528], eax
mov dword [ebx + 0x52c], edx
mov eax, edx
cmp eax, dword [ebx + 0x53c]
ja 0x1002934
jb 0x10028f8
mov eax, dword [ebx + 0x528]
cmp eax, dword [ebx + 0x538]
jb 0x10028f8
inc edi
jmp 0x10025e2
mov eax, dword [ebx + 0x51c]
push 3
pop esi
cmp eax, esi
jne 0x1002981
mov ecx, dword [ebx + 0x528]
or ecx, dword [ebx + 0x52c]
je 0x1002964
mov dword [ebp - 0x228], 0xc0a00026
jmp 0x1002aaa
cmp eax, esi
jne 0x1002981
cmp word [ebx + 0x520], 0
je 0x1002981
mov dword [ebp - 0x228], 0xc0a00028
jmp 0x1002aaa
xor edi, edi
cmp eax, edi
jne 0x100299f
cmp byte [ebx + 0x519], 0
jne 0x100299f
mov dword [ebp - 0x228], 0xc0a00027
jmp 0x1002aaa
movzx eax, word [ebx + 0x51a]
push eax
call dword [sym.imp.msvcrt.dll_iswalpha]
pop ecx
test eax, eax
je 0x1002a28
mov ax, word [ebx + 0x51a]
mov word [ebp - 0x224], ax
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, edi
je 0x1002a19
cmp eax, 1
je 0x1002a19
cmp eax, esi
je 0x1002a28
push 0x40a0003d
push 1
call sub.BDEHDCFGLIB.dll_BdeCfgLogError
mov eax, dword [ebx + 0x51c]
cmp eax, esi
jne 0x10029ff
mov dword [ebp - 0x228], 0xc0a00020
jmp 0x1002aaa
xor ecx, ecx
cmp eax, 2
sete cl
lea ecx, [ecx*4 - 0x3f5fffe5]
mov dword [ebp - 0x228], ecx
jmp 0x1002aaa
mov dword [ebp - 0x228], 0xc0a0001e
jmp 0x1002aaa
movzx eax, word [ebx + 0x520]
cmp ax, di
je 0x1002a5f
cmp ax, 0x43
jae 0x1002a46
mov dword [ebp - 0x228], 0xc0a00023
jmp 0x1002aaa
mov word [ebp - 0x224], ax
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jne 0x1002a3a
cmp byte [ebx + 0x519], 0
je 0x1002aaa
cmp dword [ebx + 0x51c], edi
jne 0x1002aa0
cmp word [ebx + 0x51a], di
jne 0x1002aa0
cmp word [ebx + 0x520], di
jne 0x1002aa0
mov eax, dword [ebx + 0x528]
or eax, dword [ebx + 0x52c]
jne 0x1002aa0
cmp byte [ebx + 0x530], al
jne 0x1002aa0
cmp byte [ebx + 0x531], al
je 0x1002aaa
mov dword [ebp - 0x228], 0xc0a00029
mov dword [ebp - 4], 0xfffffffe
call fcn.01002ac8
mov eax, dword [ebp - 0x228]
call fcn.01003af8
ret