Function at 0x502dd0
Capabilities:
Get disk information

Disassembly:
sub esp, 0xc34
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0xc30], eax
push ebx
mov ebx, dword [esp + 0xc3c]
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0xe]
push ecx
mov word [esp + 0x10], ax
call fcn.005dfd60
xor edx, edx
push 0x81e
push edx
lea eax, [esp + 0x42a]
push eax
mov word [esp + 0x42c], dx
call fcn.005dfd60
add esp, 0x18
test ebx, ebx
je 0x502e87
cmp word [ebx], 0
je 0x502e87
push 0
push 0x64a59c
push ebx
call fcn.004f59a0
add esp, 0xc
cmp eax, 0xffffffff
je 0x502e48
push ebx
call fcn.004fb370
push 0xc
push 0x64b5e8
push ebx
call fcn.005e38e0
add esp, 0xc
test eax, eax
jne 0x502e6f
push 0x61fb14
push 0x64b5d0
push ebx
call fcn.004e1c90
add esp, 0xc
cmp word [ebx], 0x5c
jne 0x502ea1
cmp word [ebx + 2], 0x5c
jne 0x502ea1
push ebx
call fcn.004fb980
cmp eax, 1
jne 0x502ea1
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xc30]
xor ecx, esp
call fcn.005dfbbe
add esp, 0xc34
ret 4
push 8
push 0x64b5bc
push ebx
call fcn.005e38e0
add esp, 0xc
test eax, eax
jne 0x502e87
push esi
push edi
push eax
push 0x64b594
push ebx
call fcn.004f59a0
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x502fee
cmp dword [0x74bcd0], 0
jne 0x502efe
push str.GetVolumePathNameW
push 0x61bed4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x74bcd0], eax
test eax, eax
je 0x502fee
lea ecx, [ebx + esi*2 + 0x26]
push 0x5c
push ecx
call fcn.005e3d68
mov esi, eax
add esp, 8
test esi, esi
je 0x502fee
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x21e]
push eax
mov word [esp + 0x220], dx
call fcn.005dfd60
add esp, 0xc
push 0x104
lea ecx, [esp + 0x218]
push ecx
push ebx
call dword [0x74bcd0]
test eax, eax
je 0x502fee
lea edx, [esp + 0x214]
push edx
call fcn.004dab00
lea eax, [esi + 2]
add esp, 4
mov edx, eax
jmp 0x502f70
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x502f70
lea edi, [esp + 0x214]
sub eax, edx
add edi, 0xfffffffe
jmp 0x502f90
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x502f90
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x214]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
sub ebx, ecx
jmp 0x502fc0
movzx ecx, word [eax]
mov word [ebx + eax], cx
add eax, 2
test cx, cx
jne 0x502fc0
mov eax, 1
mov ecx, dword [esp + 0xc3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005dfbbe
add esp, 0xc34
ret 4
mov edi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov edx, 0x3a
xor eax, eax
mov word [esp + 0xe], dx
mov word [esp + 0x10], ax
mov esi, 0x61
lea ebx, [ebx]
push 0x410
lea edx, [esp + 0x420]
push edx
lea eax, [esp + 0x14]
xor ecx, ecx
push eax
mov word [esp + 0x18], si
mov word [esp + 0x428], cx
call edi
test eax, eax
je 0x5030a5
push 0
lea ecx, [esp + 0x420]
push 0x64a59c
push ecx
call fcn.004f59a0
add esp, 0xc
cmp eax, 0xffffffff
je 0x503060
lea edx, [esp + 0x41c]
push edx
call fcn.004fb370
lea eax, [esp + 0x41c]
push eax
call fcn.004dab00
lea eax, [esp + 0x420]
add esp, 4
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x503080
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x420]
push ecx
push ebx
call fcn.005e38e0
add esp, 0xc
test eax, eax
je 0x5030eb
inc esi
cmp si, 0x7a
jbe 0x503010
push 0x61fb14
push 0x64b54c
push ebx
call fcn.004e1c90
add esp, 0xc
test eax, eax
jne 0x502fcf
push 0x61fb14
push 0x64b518
push ebx
call fcn.004e1c90
add esp, 0xc
test eax, eax
jne 0x502fcf
jmp 0x502fd4
lea edx, [esp + 0x41c]
push edx
call fcn.004daa90
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x424]
push ecx
push ebx
call fcn.004e1c90
add esp, 0x10
jmp 0x502fcf