Function at 0x485a50
Capabilities:
Get disk information

Disassembly:
sub esp, 8
push ebx
push esi
push edi
push ebp
mov esi, dword [esp + 0x20]
or esi, esi
je 0x485d6a
cmp byte [esi], 0
je 0x485d6a
cmp dword [esp + 0x1c], 0
jne 0x485ab0
push 0x104
call fcn.0047fd30
add esp, 4
mov edi, eax
or edi, edi
jne 0x485aa0
call fcn.0047f070
mov dword [eax], 0xc
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
mov dword [esp + 0x24], 0x104
jmp 0x485ad4
cmp dword [esp + 0x24], 4
jae 0x485ad0
call fcn.0047f070
mov dword [eax], 0x22
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x24]
lea ebp, [edi + eax - 1]
mov cl, byte [esi + 1]
cmp cl, 0x5c
je 0x485aed
cmp cl, 0x2f
jne 0x485aff
mov al, byte [esi]
cmp al, 0x5c
je 0x485bf4
cmp al, 0x2f
je 0x485bf4
cmp cl, 0x3a
jne 0x485b70
cmp dword [0x4a12a4], 1
jle 0x485b20
push 0x103
movsx eax, byte [esi]
push eax
call fcn.0047f3a0
add esp, 8
jmp 0x485b32
mov ecx, dword [str.________________________________H]
movsx eax, byte [esi]
mov ax, word [ecx + eax*2]
and eax, 0x103
or eax, eax
je 0x485b70
mov bl, byte [esi]
mov byte [edi], bl
inc edi
and ebx, 0x1f
mov byte [edi], 0x3a
inc edi
add esi, 2
push ebx
call fcn.00481350
add esp, 4
or eax, eax
jne 0x485b72
call fcn.0047f070
mov dword [eax], 0xd
call fcn.0047f080
mov dword [eax], 0xf
jmp 0x485d4c
sub ebx, ebx
mov al, byte [esi]
cmp al, 0x5c
je 0x485bd5
cmp al, 0x2f
je 0x485bd5
or ebx, ebx
je 0x485b87
mov al, byte [esi - 2]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
push eax
push edx
push ebx
call fcn.004811f0
add esp, 0xc
or eax, eax
je 0x485d4c
mov edi, dword [esp + 0x14]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
mov edx, dword [esp + 0x14]
lea edi, [ecx + edx - 1]
or ebx, ebx
je 0x485bc3
mov al, byte [esp + 0x13]
mov byte [edx], al
mov al, byte [edi - 1]
lea ecx, [edi - 1]
cmp al, 0x5c
je 0x485bd1
cmp al, 0x2f
jne 0x485be8
mov edi, ecx
jmp 0x485be8
or ebx, ebx
jne 0x485be7
call fcn.00485d90
add al, 0x40
mov byte [edi], al
inc edi
mov byte [edi], 0x3a
inc edi
inc esi
mov byte [edi], 0x5c
mov edx, dword [esp + 0x14]
add edx, 2
jmp 0x485c3b
sub edx, edx
cmp al, dl
je 0x485c36
mov ecx, 0x5c
nop
mov byte [edi], al
inc esi
cmp ebp, edi
jbe 0x485d41
cmp al, cl
je 0x485c13
cmp al, 0x2f
jne 0x485c2f
mov byte [edi], cl
inc edx
cmp edx, 2
jne 0x485c20
cmp byte [esi], 0
je 0x485c90
cmp edx, 3
jl 0x485c2a
cmp byte [edi - 1], cl
je 0x485ca0
cmp edx, 4
je 0x485c36
inc edi
mov al, byte [esi]
or al, al
jne 0x485c00
mov byte [edi], 0x5c
mov edx, edi
cmp byte [esi], 0
je 0x485d11
mov al, byte [esi]
cmp al, 0x2e
jne 0x485cd3
cmp byte [esi + 1], 0x2e
jne 0x485cb0
mov cl, byte [esi + 2]
lea ebx, [esi + 2]
cmp cl, 0x5c
je 0x485c68
cmp cl, 0x2f
je 0x485c68
or cl, cl
jne 0x485cb0
mov al, byte [edi - 1]
dec edi
cmp al, 0x5c
je 0x485c78
cmp al, 0x2f
je 0x485c78
cmp edi, edx
ja 0x485c68
cmp edi, edx
jb 0x485d27
mov esi, ebx
or cl, cl
je 0x485d08
lea esi, [ebx + 1]
jmp 0x485d08
call fcn.0047f070
mov dword [eax], 0x16
jmp 0x485d4c
call fcn.0047f070
mov dword [eax], 0x16
jmp 0x485d4c
cmp al, 0x2e
jne 0x485cd3
mov cl, byte [esi + 1]
lea ebx, [esi + 1]
cmp cl, 0x5c
je 0x485cc8
cmp cl, 0x2f
je 0x485cc8
or cl, cl
jne 0x485cd3
mov esi, ebx
or cl, cl
je 0x485d08
lea esi, [ebx + 1]
jmp 0x485d08
mov ecx, edi
or al, al
je 0x485cf1
mov al, byte [esi]
cmp al, 0x5c
je 0x485cf1
cmp al, 0x2f
je 0x485cf1
cmp ebp, edi
jbe 0x485d41
mov byte [edi + 1], al
inc edi
inc esi
cmp byte [esi], 0
jne 0x485cd9
cmp ebp, edi
jbe 0x485d41
cmp ecx, edi
je 0x485d34
inc edi
mov byte [edi], 0x5c
mov al, byte [esi]
cmp al, 0x5c
je 0x485d07
cmp al, 0x2f
jne 0x485d08
inc esi
cmp byte [esi], 0
jne 0x485c44
cmp byte [edi - 1], 0x3a
jne 0x485d18
inc edi
mov byte [edi], 0
mov eax, dword [esp + 0x14]
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
call fcn.0047f070
mov dword [eax], 0xd
jmp 0x485d4c
call fcn.0047f070
mov dword [eax], 0x16
jmp 0x485d4c
call fcn.0047f070
mov dword [eax], 0x22
cmp dword [esp + 0x1c], 0
jne 0x485d60
mov edx, dword [esp + 0x14]
push edx
call fcn.0047fbb0
add esp, 4
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
push eax
call fcn.004811c0
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 8
ret