Function at 0x100059d0
Capabilities:
Get disk information

Disassembly:
sub esp, 0xd44
lea eax, [esp + 0x524]
push ebx
push esi
mov dword [0x10029004], eax
lea eax, [esp + 0xa]
push edi
push ebp
mov dword [section..bss], eax
cmp word [0x1002c180], 0
je 0x10005a03
mov dword [esp + 0x1c], 0x1002c180
jmp 0x10005a23
lea eax, [esp + 0xb4c]
push 0x104
push eax
call fcn.10019350
lea ecx, [esp + 0xb54]
mov dword [esp + 0x24], ecx
add esp, 8
lea eax, [esp + 0x14]
push 1
push 2
push eax
call fcn.100064c0
add esp, 0xc
cmp word [0x1002f4e8], 0
je 0x10005ba7
cmp word [esp + 0x14], 0
jbe 0x10006198
mov si, word [esp + 0x14]
mov edi, 0x10
xor ebx, ebx
mov ax, word [0x1002bf24]
lea edx, [esp + 0x124]
and ax, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
mov ax, word [0x1002bf24]
lea edx, [esp + 0x53c]
and ax, 8
add esp, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
lea ecx, [esp + 0x1a]
add esp, 8
push 1
push 2
push ecx
call fcn.100064c0
add esp, 0xc
test word [0x1002bf24], di
je 0x10005b6f
mov word [esp + 0x10], bx
push 1
lea eax, [esp + 0x14]
push 1
push eax
call fcn.100064c0
add esp, 0xc
cmp word [esp + 0x10], bx
je 0x10005b6f
lea eax, [esp + 0x32c]
push 1
push 2
push eax
call fcn.100064c0
lea eax, [esp + 0x1c]
add esp, 0xc
push 1
push 2
push eax
call fcn.100064c0
mov ax, word [0x1002bf24]
lea edx, [esp + 0x338]
and ax, 8
add esp, 0xc
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
mov ax, word [0x1002bf24]
lea edx, [esp + 0x334]
and ax, 8
add esp, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
add esp, 8
cmp word [esp + 0x10], bx
jne 0x10005b6f
mov ax, word [0x1002bf24]
lea edx, [esp + 0x32c]
and ax, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
add esp, 8
push 0x1002c180
call fcn.10005850
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
add esp, 4
push eax
push 0x1002b250
push 0xffffffffffffffff
call fcn.10015520
add esp, 0xc
dec si
jne 0x10005a5a
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xd44
ret
mov edi, 0x1002f498
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x10005c03
xor ebx, ebx
call fcn.1001f8a1
add al, 0x40
mov ecx, dword [esp + 0x1c]
mov byte [0x1002f498], al
mov byte [0x1002f499], bl
cmp word [ecx + 2], 0x3a
jne 0x10005c03
xor eax, eax
mov ax, word [ecx]
push eax
call fcn.1001f7d5
add esp, 4
mov byte [0x1002f499], al
cmp al, byte [0x1002f498]
je 0x10005bfc
mov byte [0x1002f49a], bl
jmp 0x10005c03
mov byte [0x1002f499], 0
cmp byte [0x1002f498], 0x2a
jne 0x10005c70
mov eax, dword [0x1002f174]
mov dword [esp + 0x20], eax
mov al, byte [0x1002f499]
sub al, 0x2a
mov ebp, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp al, 1
sbb ebx, ebx
xor esi, esi
neg ebx
xor di, di
lea eax, [edi + 0x41]
mov byte [esp + 0x20], al
lea eax, [esp + 0x20]
push eax
call ebp
cmp eax, 3
je 0x10005c50
test ebx, ebx
je 0x10005c5e
lea eax, [esp + 0x20]
push eax
call ebp
cmp eax, 4
jne 0x10005c5e
movzx ecx, si
inc si
lea eax, [edi + 0x41]
mov byte [ecx + 0x1002f498], al
inc di
cmp di, 0x1a
jb 0x10005c2d
movzx eax, si
mov byte [eax + 0x1002f498], 0
mov edi, 0x1002f498
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea esi, [ecx - 1]
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.1001f4a6
imul si, si, 5
add si, ax
add esp, 4
lea esi, [esi*2 + 0x10]
movzx eax, si
push eax
call fcn.1000ddc0
add esp, 4
mov ebx, eax
push 0x1002f178
push ebx
call fcn.1001ef83
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
push ebx
call fcn.1001ef52
add esp, 8
push 0x1002f17c
push ebx
xor si, si
call fcn.1001ef52
add esp, 8
mov edi, 0x1002f498
push ebx
call fcn.1001f4a6
add esp, 4
lea ebp, [ebx + eax*2]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x10005d3c
movzx edi, si
inc si
push str.TX:_
push ebx
call fcn.1001ef52
add esp, 8
movzx ax, byte [edi + 0x1002f498]
push eax
call fcn.1001f74e
add esp, 4
lea ecx, [edi + edi*4]
mov word [ebp + ecx*2 + 4], ax
mov edi, 0x1002f498
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
movzx eax, si
not ecx
dec ecx
cmp ecx, eax
ja 0x10005cf8
cmp word [esp + 0x14], 0
je 0x10005d50
push 0
push 0x16
call fcn.1001be50
add esp, 8
xor si, si
cmp word [esp + 0x14], si
jbe 0x1000618f
mov ebp, dword [esp + 0xb4c]
mov ax, word [0x1002bf24]
lea edx, [esp + 0x124]
and ax, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
mov ax, word [0x1002bf24]
lea edx, [esp + 0x53c]
and ax, 8
add esp, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
lea ecx, [esp + 0x1a]
add esp, 8
push 1
push 2
push ecx
call fcn.100064c0
add esp, 0xc
test byte [0x1002bf24], 0x10
je 0x10005e89
lea eax, [esp + 0x10]
push 1
mov word [esp + 0x14], 0
push 1
push eax
call fcn.100064c0
add esp, 0xc
cmp word [esp + 0x10], 0
je 0x10005e89
lea eax, [esp + 0x16]
push 1
push 2
push eax
call fcn.100064c0
lea eax, [esp + 0x1c]
add esp, 0xc
push 1
push 2
push eax
call fcn.100064c0
mov ax, word [0x1002bf24]
lea edx, [esp + 0x338]
and ax, 8
add esp, 0xc
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
mov ax, word [0x1002bf24]
lea edx, [esp + 0x94c]
and ax, 8
add esp, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
add esp, 8
cmp word [esp + 0x10], 0
jne 0x10005e7d
mov ax, word [0x1002bf24]
lea edx, [esp + 0x73c]
and ax, 8
shr ax, 3
movzx ecx, ax
push ecx
push edx
call fcn.10006d00
add esp, 8
jmp 0x10005e90
mov word [esp + 0x73c], 0
jmp 0x10005e90
mov word [esp + 0x10], 0xffff
cmp word [esp + 0x10], 0xffff
je 0x10005f87
xor eax, eax
cmp word [esp + 0x32c], 0x21
mov dword [0x1002ae08], eax
jne 0x10005eb3
mov eax, 1
lea ecx, [esp + 0x32e]
mov dword [0x1002ae08], eax
test eax, eax
jne 0x10005eca
lea ecx, [esp + 0x32c]
lea eax, [esp + 0x73c]
lea edx, [esp + 0x944]
push eax
push edx
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.1000e6b0
add esp, 0x10
mov ebp, eax
push ebp
call fcn.1001f4a6
add esp, 4
test eax, eax
je 0x10005f17
mov eax, dword [esp + 0x16]
push eax
push ebp
call fcn.1000e620
add esp, 8
test eax, eax
jne 0x10005f17
push ebp
call fcn.1001acb0
add esp, 4
test ax, ax
jne 0x10005f60
push ebp
call fcn.1001f43e
add esp, 4
cmp dword [0x1002ae08], 0
je 0x10005f3f
push 0x1002f43c
push 0xa7
push 0x2d
call fcn.10003840
add esp, 0xc
jmp 0x10005f59
push 0xa7
push 1
call fcn.100186d0
add esp, 8
push eax
push 0x2d
call fcn.10017be0
add esp, 8
mov word [esp + 0x10], 0xffff
cmp word [esp + 0x10], 0xffff
je 0x10005f87
lea eax, [esp + 0x124]
push ebp
push eax
call fcn.1001ef83
add esp, 8
push ebp
call fcn.1001f43e
add esp, 4
jmp 0x1000612e
test byte [0x1002b5e1], 0x10
je 0x10005f9e
test byte [0x1002b5e0], 4
mov eax, 0x100061b0
jne 0x10005fa0
xor eax, eax
push eax
push ebx
lea eax, [esp + 0x12c]
push eax
call fcn.1001aed0
add esp, 0xc
cmp ax, 1
sbb eax, eax
neg eax
test ax, ax
jne 0x1000607f
test byte [0x1002b5e1], 0x10
je 0x10006068
test byte [0x1002b5e0], 4
je 0x10006068
lea eax, [esp + 0x20]
lea ecx, [esp + 0x534]
push eax
push ecx
call fcn.10018be0
lea edi, [esp + 0x28]
add esp, 8
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea edx, [esp + 0x124]
lea ecx, [esp + ecx + 0x20]
push ecx
push edx
call fcn.10018be0
lea ecx, [esp + 0x12c]
lea edx, [esp + 0x28]
add esp, 8
push ecx
push edx
push 0x14
call fcn.1001be50
add esp, 8
push eax
call fcn.10018b50
lea ecx, [esp + 0x12c]
add esp, 8
push ecx
call fcn.1001f4a6
add esp, 4
test eax, eax
jne 0x100060ee
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x124]
push ecx
push eax
call fcn.1001ef83
add esp, 8
jmp 0x100060ee
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x124]
push ecx
push eax
call fcn.1001ef83
add esp, 8
jmp 0x100060ee
xor di, di
lea eax, [esp + 0x124]
push eax
call fcn.10018c70
mov word [eax], 0
add esp, 4
cmp word [esp + 0x12], di
jbe 0x100060ee
lea eax, [esp + 0x124]
push eax
call fcn.1001f4a6
lea eax, [esp + eax*2 + 0x126]
add esp, 4
cmp word [eax], 0x5c
jne 0x100060c3
mov word [eax], 0
sub eax, 2
cmp word [eax], 0x3a
jne 0x100060d0
mov di, word [esp + 0x12]
jmp 0x100060e5
lea eax, [esp + 0x124]
push eax
call fcn.10018c70
mov word [eax], 0
add esp, 4
inc di
cmp word [esp + 0x12], di
ja 0x1000609e
lea eax, [esp + 0x124]
push eax
call fcn.1001f4a6
add esp, 4
test eax, eax
mov ax, word [0x1002f408]
jne 0x1000612e
test ax, ax
push 0x104
je 0x10006119
push 0x1002f198
jmp 0x1000611e
push 0x1002f19c
lea eax, [esp + 0x12c]
push eax
call fcn.10019260
add esp, 0xc
lea eax, [esp + 0x124]
push eax
call fcn.1001f4a6
lea eax, [esp + eax*2 + 0x126]
add esp, 4
cmp word [eax], 0x5c
je 0x1000615a
mov word [eax + 2], 0x5c
add eax, 2
mov word [eax + 2], 0
lea eax, [esp + 0x124]
push eax
call fcn.10005850
mov dword [esp + 0x1c], eax
add esp, 4
inc si
lea eax, [esp + 0x18]
push eax
push 0x1002b250
push 0xffffffffffffffff
call fcn.10015520
add esp, 0xc
cmp si, word [esp + 0x14]
jb 0x10005d65
push ebx
call fcn.1001f43e
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xd44
ret