Function at 0x11103070
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x111ec774]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor eax, eax
push edi
mov edi, ecx
cmp dword [0x111ee248], eax
je 0x11103206
mov ebx, dword [edi]
lea esi, [edi + 0x510]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x111030a3
sub eax, edx
je 0x11103494
mov eax, dword [ebp + 8]
push eax
push 0x111b5688
call fcn.11147060
push 0xff
lea ecx, [ebp - 0x177]
push 0
push ecx
mov byte [ebp - 0x178], 0
call fcn.11162be0
mov eax, 0x111f1724
add esp, 0x14
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x111030e5
sub eax, edx
je 0x11103128
mov eax, 0x111f1648
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x111030f8
sub eax, edx
mov eax, 0x111f1648
jne 0x1110310d
mov eax, 0x1119f114
push 0x111f1724
push eax
lea edx, [ebp - 0x178]
push 0x111b4a24
push edx
call dword [sym.imp.uSEr32.dll_wsprintfA]
add esp, 0x10
cmp dword [ebp + 8], 0
push 1
mov ecx, ebx
push 1
je 0x111031a8
lea eax, [ebp - 0x178]
push eax
call fcn.110fdbb0
push 1
push esi
push 0x111f16c4
lea ecx, [ebp - 0x178]
push ecx
mov ecx, ebx
call fcn.110fd8d0
lea eax, [ebp - 0x178]
lea edx, [edi + 0x410]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x11103166
mov eax, 0x111f16c4
add edi, 0x530
sub edi, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x11103180
push 0x111b5674
call fcn.11147060
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x178]
push edx
call fcn.110fdbb0
lea esi, [edi + 0x410]
lea eax, [ebp - 0x178]
push esi
push eax
call fcn.11081e70
add esp, 8
test eax, eax
je 0x111031da
push 1
push 1
push esi
mov ecx, ebx
call fcn.110fdbb0
add edi, 0x590
push edi
mov ecx, ebx
call fcn.110f5890
push 0x111b5674
call fcn.11147060
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
mov esi, dword [edi]
mov dword [ebp - 0x180], eax
cmp dword [ebp + 8], eax
je 0x111033b2
cmp dword [edi + 0x21c], eax
jne 0x11103494
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x90]
push 0xffffffffffffffff
mov ecx, esi
call eax
push 0x60
lea ebx, [edi + 0x224]
push ebx
push 0x11195264
push 0x111ea8d0
push 0x111ea8c8
mov dword [ebp - 0x184], ebx
call dword [sym.imp.KeRneL32.DLl_GetProfileStringA]
mov edx, dword [esi]
mov eax, dword [edx + 0x90]
push 0
push 0
mov ecx, esi
call eax
cmp byte [0x111f1648], 0
je 0x11103294
push 0x111f16a8
lea ecx, [ebp - 0x78]
push 0x111f1648
mov edx, ecx
push 0x111b5664
push edx
mov dword [ebp - 0x180], ecx
call fcn.11163f93
add esp, 0x10
jmp 0x11103302
push 0x2c
push ebx
call fcn.11081d30
add esp, 8
test eax, eax
je 0x11103302
inc eax
push 0x2c
push eax
call fcn.11081d30
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x11103302
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x111032b8
sub eax, edx
cmp byte [eax + ebx - 1], 0x3a
jne 0x11103302
push 0x111b392c
push ebx
call fcn.11081e70
add esp, 8
test eax, eax
je 0x11103302
push 9
inc ebx
push ebx
push 0x111f16a8
call fcn.11164ed0
mov eax, 0x111f16a8
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x111032f3
sub eax, edx
mov byte [eax + 0x111f16a7], cl
push 0x100
lea ebx, [edi + 0x11c]
push ebx
push 0x111f16a8
call dword [sym.imp.KeRneL32.DLl_QueryDosDeviceA]
xor edx, edx
mov ecx, ebx
mov dword [edi + 0x220], edx
cmp byte [ecx], dl
je 0x1110335c
jmp 0x11103330
mov eax, ecx
lea ebx, [eax + 1]
mov dword [ebp - 0x17c], ebx
jmp 0x11103340
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x11103340
sub eax, dword [ebp - 0x17c]
inc edx
lea ecx, [ecx + eax + 1]
mov dword [edi + 0x220], edx
cmp byte [ecx], bl
jne 0x11103330
cmp dword [edi + 0x220], 2
jle 0x11103374
push 0
push 0x111f16a8
push 3
call dword [sym.imp.KeRneL32.DLl_DefineDosDeviceA]
cmp dword [edi + 0x108], 0
je 0x111033a0
push 0x111f16a8
lea eax, [ebp - 0x18]
push 0x111b565c
push eax
call dword [sym.imp.uSEr32.dll_wsprintfW]
mov edx, dword [edi + 0x108]
add esp, 0xc
lea ecx, [ebp - 0x18]
push ecx
call edx
mov ebx, dword [ebp - 0x180]
mov dword [edi + 0x21c], 1
jmp 0x1110342a
cmp dword [edi + 0x21c], eax
je 0x11103494
cmp dword [edi + 0x220], 2
mov dword [edi + 0x21c], eax
jle 0x111033e1
lea eax, [edi + 0x11c]
push eax
push 0x111f16a8
push 1
call dword [sym.imp.KeRneL32.DLl_DefineDosDeviceA]
mov edx, dword [esi]
mov eax, dword [edx + 0x90]
push 0
push 0xffffffffffffffff
mov ecx, esi
lea ebx, [edi + 0x224]
call eax
lea ecx, [ebp - 0x78]
push 0x60
mov edx, ecx
push edx
push 0x11195264
push 0x111ea8d0
push 0x111ea8c8
mov dword [ebp - 0x184], ecx
call dword [sym.imp.KeRneL32.DLl_GetProfileStringA]
mov eax, dword [esi]
mov edx, dword [eax + 0x90]
push 0
push 0
mov ecx, esi
call edx
test ebx, ebx
je 0x11103484
mov eax, dword [ebp - 0x184]
push eax
push ebx
call fcn.11081e70
add esp, 8
test eax, eax
je 0x11103484
mov edx, dword [esi]
mov eax, dword [edx + 0x90]
push 0
push 0xffffffffffffffff
mov ecx, esi
call eax
push ebx
push 0x111ea8d0
push 0x111ea8c8
call dword [sym.imp.KeRneL32.DLl_WriteProfileStringA]
mov edx, dword [esi]
mov eax, dword [edx + 0x90]
push 0
push 0
mov ecx, esi
call eax
push 0
push 0
push 0x1a
push 0xffff
call dword [sym.imp.uSEr32.dll_SendMessageA]
mov edi, dword [edi + 0x10c]
test edi, edi
je 0x11103494
mov ecx, dword [ebp + 8]
push ecx
call edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.11162bb7
mov esp, ebp
pop ebp
ret