Function at 0x4742e7
Capabilities:
Get disk information

Disassembly:
mov eax, 0x4abf56
call fcn.004a8254
sub esp, 0xb4
push ebx
push esi
push edi
lea eax, [ebp - 0xc0]
xor esi, esi
push eax
mov ebx, ecx
mov dword [ebp - 0x10], esi
call fcn.0040177e
mov dword [ebp - 0x48], esi
mov dword [ebp - 4], esi
mov eax, dword [ebp + 8]
push dword [eax]
lea ecx, [ebp - 0xc0]
call fcn.00409c35
test eax, eax
je 0x4748ce
mov eax, str.packet
lea esi, [ebp - 0xc0]
call fcn.00409cb0
test eax, eax
je 0x4748ce
lea edi, [ebx + 4]
push edi
push str.tid1
mov eax, esi
mov dword [ebp - 0x30], edi
call fcn.00409de2
lea eax, [ebx + 8]
push eax
mov dword [ebp - 0x1c], eax
push str.tid2
mov eax, esi
call fcn.00409de2
lea eax, [ebx + 0xc]
push eax
mov dword [ebp - 0x2c], eax
push str.tod1
mov eax, esi
call fcn.00409de2
lea eax, [ebx + 0x10]
push eax
mov dword [ebp - 0x28], eax
push str.tod2
mov eax, esi
call fcn.00409de2
lea eax, [ebx + 0x14]
push eax
push 0x4c100c
mov eax, esi
call fcn.00409de2
lea eax, [ebx + 0x18]
push eax
push 0x4c1010
mov eax, esi
call fcn.00409de2
and dword [ebp - 0x3c], 0
lea eax, [ebp - 0x3c]
push eax
push 0x4c1014
mov eax, esi
call fcn.00409de2
test eax, eax
je 0x4743cd
mov eax, dword [ebp - 0x3c]
mov dword [ebx + 0x1c], eax
push str.uidreg
lea eax, [ebp - 0xc0]
lea ecx, [ebx + 0x40]
push eax
call fcn.00409e10
push 0x4be980
lea eax, [ebp - 0xc0]
lea ecx, [ebx + 0x44]
push eax
call fcn.00409e10
push str.rcmdid
lea eax, [ebp - 0xc0]
lea ecx, [ebx + 0x48]
push eax
call fcn.00409e10
mov eax, dword [0x4da2a0]
mov esi, 0x4da2a0
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x24], eax
xor eax, eax
mov byte [ebp - 4], 1
mov dword [ebp + 8], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 8]
push eax
mov dword [ebp - 0x14], 1
call fcn.00458c8b
add esp, 0x20
test eax, eax
je 0x47449b
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov dword [edi], eax
mov eax, dword [ebp - 0x34]
mov dword [ecx], eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x474490
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp - 0x18]
jmp 0x4744b9
call fcn.00474a38
test eax, eax
je 0x4744bc
mov ecx, dword [ebp - 0x1c]
xor eax, eax
inc eax
mov dword [edi], 0x834
mov dword [ecx], eax
mov dword [ebx + 0x4c], 2
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0x24]
cmp dword [eax - 0xc], 0
je 0x4744d3
lea edi, [ebx + 0x54]
lea eax, [ebp - 0x24]
call fcn.00405db2
mov edi, dword [ebp - 0x30]
mov edi, dword [edi]
xor eax, eax
cmp edi, dword [eax + 0x4d9f24]
je 0x4744e9
add eax, 4
cmp eax, 0x24
jb 0x4744d7
jmp 0x4744f7
mov dword [ebx + 0x50], 1
mov dword [ebx + 0x4c], 2
lea edi, [ebx + 0x20]
push 0x4be5e4
mov eax, edi
call fcn.00474102
test eax, eax
je 0x474532
push 0x4be5e4
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4be5f0
mov eax, edi
call fcn.00474102
test eax, eax
je 0x47456a
push 0x4be5f0
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4be730
mov eax, edi
call fcn.00474102
test eax, eax
je 0x4745a2
push 0x4be730
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4be73c
mov eax, edi
call fcn.00474102
test eax, eax
je 0x4745da
push 0x4be73c
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4be728
mov eax, edi
call fcn.00474102
test eax, eax
je 0x474610
push 0x4be728
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 8]
pop ecx
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4c0028
mov eax, edi
call fcn.00474102
test eax, eax
je 0x474646
push 0x4c0028
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 8]
pop ecx
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4be020
mov eax, edi
call fcn.00474102
test eax, eax
jne 0x474666
push 0x4b9938
mov eax, edi
call fcn.00474102
test eax, eax
je 0x47466d
mov dword [ebx + 0x18], 0x24f
push str.atrm
mov eax, edi
call fcn.00474102
test eax, eax
je 0x4746a3
push str.atrm
lea eax, [ebp + 8]
push eax
mov eax, edi
call fcn.004634dd
push dword [eax]
call fcn.0047be33
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp + 8]
pop ecx
add eax, 0xfffffff0
call fcn.00405cd2
push 0x4c1038
mov eax, edi
call fcn.00474102
test eax, eax
je 0x4746bf
xor eax, eax
inc eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x44]
cmp dword [eax - 0xc], 0
je 0x47471c
mov eax, dword [ebx + 0x40]
cmp dword [eax - 0xc], 0
je 0x47471c
call fcn.00455091
mov dword [ebp + 8], eax
lea edi, [eax + 4]
lea eax, [ebx + 0x44]
call fcn.00405db2
mov edi, dword [ebp + 8]
add edi, 8
lea eax, [ebx + 0x40]
call fcn.00405db2
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 1
call fcn.00455091
cmp dword [eax + 0xc], 0
je 0x47471c
lea ecx, [ebp + 8]
push ecx
push eax
call fcn.004551a7
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
mov edi, 0x4c1040
push edi
lea eax, [ebx + 0x20]
call fcn.00474102
test eax, eax
je 0x4747a9
push edi
lea eax, [ebp + 8]
push eax
lea eax, [ebx + 0x20]
call fcn.004634dd
lea edi, [ebx + 0x58]
mov byte [ebp - 4], 2
call fcn.00405db2
mov byte [ebp - 4], 1
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
mov eax, dword [edi]
push 3
pop ecx
cmp dword [eax - 0xc], ecx
jl 0x474782
lea edx, [ebp - 0x20]
mov eax, edi
call fcn.00407082
push dword [eax]
mov dword [ebp - 0x10], 1
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
mov byte [ebp + 0xb], 1
jne 0x474786
mov byte [ebp + 0xb], 0
test byte [ebp - 0x10], 1
je 0x474797
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
call fcn.00405cd2
cmp byte [ebp + 0xb], 0
je 0x4747a9
mov esi, edi
call fcn.00405d72
mov esi, 0x4da2a0
mov eax, dword [ebx + 0x18]
cmp eax, 1
je 0x4747b8
cmp eax, 0x24f
jne 0x4747bf
mov dword [ebx + 0x4c], 2
mov eax, dword [0x4da2a0]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 3
mov eax, dword [0x4da2a0]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 4
mov eax, dword [0x4da2a0]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 5
mov eax, dword [0x4da2a0]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
lea eax, [ebp - 0x10]
push eax
push 0x4be5e4
mov byte [ebp - 4], 6
call fcn.00455091
push eax
call fcn.0045565d
lea eax, [ebp - 0x18]
push eax
push 0x4be5f0
call fcn.00455091
push eax
call fcn.0045565d
lea eax, [ebp - 0x14]
push eax
push 0x4be730
call fcn.00455091
push eax
call fcn.0045565d
lea eax, [ebp + 8]
push eax
push 0x4be73c
call fcn.00455091
push eax
call fcn.0045565d
mov esi, dword [ebp - 0x10]
cmp dword [esi - 0xc], 0
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
je 0x4748a0
push esi
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x30]
push edi
mov dword [ecx], eax
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x1c]
push ebx
mov dword [ecx], eax
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x2c]
push dword [ebp + 8]
mov dword [ecx], eax
call fcn.0047be33
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.00405cd2
lea eax, [ebx - 0x10]
call fcn.00405cd2
lea eax, [edi - 0x10]
call fcn.00405cd2
lea eax, [esi - 0x10]
call fcn.00405cd2
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
call fcn.00405cd2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc0]
call fcn.00402ea7
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 4