Function at 0x10002200
Capabilities:
Get disk information

Disassembly:
sub esp, 0x418
mov eax, dword [0x100140c0]
xor eax, esp
mov dword [esp + 0x414], eax
push esi
mov esi, dword [esp + 0x420]
push edi
push 0x104
lea eax, [esp + 0x114]
push 0
push eax
mov edi, ecx
mov dword [esp + 0x14], 0
call fcn.100044b0
push 0x104
lea ecx, [esp + 0x328]
push 0
push ecx
call fcn.100044b0
push 0x104
lea edx, [esp + 0x28]
push 0
push edx
call fcn.100044b0
push 0x104
lea eax, [esp + 0x23c]
push 0
push eax
call fcn.100044b0
lea ecx, [esp + 0x38]
push ecx
push str.LPT_d
push esi
mov dword [edi + 0x20], 1
call fcn.1000490d
add esp, 0x3c
cmp eax, 1
je 0x1000229d
mov eax, 0x20000010
jmp 0x100025db
mov edx, dword [esp + 8]
add edx, 0xffffffff
cmp edx, 2
ja 0x10002293
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileA]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
xor esi, esi
lea esp, [esp]
push 0x104
lea eax, [esp + 0x11c]
push 0
push eax
call fcn.100044b0
push 0x104
lea ecx, [esp + 0x24]
push 0
push ecx
call fcn.100044b0
mov eax, dword [esp + 0x28]
add esp, 0x18
sub eax, 1
je 0x10002451
sub eax, 1
je 0x100023ac
sub eax, 1
jne 0x100024fb
test esi, esi
jne 0x10002368
mov edx, dword [str.epparp3.4]
mov eax, dword [0x100102b8]
mov cx, word [0x100102bc]
mov dword [esp + 0x118], edx
mov edx, dword [str.DeviceParallel2.4]
mov dword [esp + 0x11c], eax
mov eax, dword [0x100102a4]
mov word [esp + 0x120], cx
mov ecx, dword [0x100102a8]
mov dword [esp + 0x14], edx
mov edx, dword [0x100102ac]
mov dword [esp + 0x18], eax
mov eax, dword [0x100102b0]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jmp 0x100024fb
mov ecx, dword [str.epparp3]
mov edx, dword [0x1001029c]
mov eax, dword [str.DeviceParallel2]
mov dword [esp + 0x118], ecx
mov ecx, dword [0x10010288]
mov dword [esp + 0x11c], edx
mov edx, dword [0x1001028c]
mov dword [esp + 0x14], eax
mov eax, dword [0x10010290]
mov dword [esp + 0x18], ecx
mov cx, word [0x10010294]
jmp 0x100024ee
test esi, esi
jne 0x1000240d
mov edx, dword [str.epparp2.4]
mov eax, dword [0x1001027c]
mov cx, word [0x10010280]
mov dword [esp + 0x118], edx
mov edx, dword [str.DeviceParallel1.4]
mov dword [esp + 0x11c], eax
mov eax, dword [0x10010268]
mov word [esp + 0x120], cx
mov ecx, dword [0x1001026c]
mov dword [esp + 0x14], edx
mov edx, dword [0x10010270]
mov dword [esp + 0x18], eax
mov eax, dword [0x10010274]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jmp 0x100024fb
mov ecx, dword [str.epparp2]
mov edx, dword [0x10010260]
mov eax, dword [str.DeviceParallel1]
mov dword [esp + 0x118], ecx
mov ecx, dword [0x1001024c]
mov dword [esp + 0x11c], edx
mov edx, dword [0x10010250]
mov dword [esp + 0x14], eax
mov eax, dword [0x10010254]
mov dword [esp + 0x18], ecx
mov cx, word [0x10010258]
jmp 0x100024ee
test esi, esi
jne 0x100024af
mov edx, dword [str.epparp1.4]
mov eax, dword [0x10010240]
mov cx, word [0x10010244]
mov dword [esp + 0x118], edx
mov edx, dword [str.DeviceParallel0.4]
mov dword [esp + 0x11c], eax
mov eax, dword [0x1001022c]
mov word [esp + 0x120], cx
mov ecx, dword [0x10010230]
mov dword [esp + 0x14], edx
mov edx, dword [0x10010234]
mov dword [esp + 0x18], eax
mov eax, dword [0x10010238]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jmp 0x100024fb
mov ecx, dword [str.epparp1]
mov edx, dword [0x10010224]
mov eax, dword [str.DeviceParallel0]
mov dword [esp + 0x118], ecx
mov ecx, dword [0x10010210]
mov dword [esp + 0x11c], edx
mov edx, dword [0x10010214]
mov dword [esp + 0x14], eax
mov eax, dword [0x10010218]
mov dword [esp + 0x18], ecx
mov cx, word [0x1001021c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov word [esp + 0x24], cx
push 0x104
lea edx, [esp + 0x220]
push 0
push edx
call fcn.100044b0
add esp, 0xc
push 0x104
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x120]
push ecx
call ebp
lea ecx, [esp + 0x14]
lea eax, [esp + 0x21c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10002554
test dl, dl
je 0x10002550
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10002554
add eax, 2
add ecx, 2
test dl, dl
jne 0x10002534
xor eax, eax
jmp 0x10002559
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10002576
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x11c]
push eax
push 1
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceA]
test eax, eax
je 0x100025d4
push 0x104
lea ecx, [esp + 0x324]
push 0
push ecx
call fcn.100044b0
lea edx, [esp + 0x124]
push edx
lea eax, [esp + 0x330]
push str.._s
push eax
call fcn.1000492c
add esp, 0x18
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea ecx, [esp + 0x338]
push ecx
call ebx
cmp eax, 0xffffffff
mov dword [edi + 0x24], eax
jne 0x100025f4
add esi, 1
cmp esi, 2
jl 0x100022c0
mov eax, 0x20000101
pop ebp
pop ebx
mov ecx, dword [esp + 0x41c]
pop edi
pop esi
xor ecx, esp
call fcn.1000452a
add esp, 0x418
ret 4
mov eax, 1
jmp 0x100025d9