Function at 0x502ab0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x61c
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0x618], eax
push esi
mov esi, dword [esp + 0x624]
push 0x103
lea eax, [esp + 9]
push 0
push eax
mov byte [esp + 0x10], 0
call fcn.005dfd60
push 0x40f
lea ecx, [esp + 0x21d]
push 0
push ecx
mov byte [esp + 0x224], 0
call fcn.005dfd60
add esp, 0x18
test esi, esi
je 0x502b78
cmp byte [esi], 0
je 0x502b78
push 0
push 0x64a598
push esi
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
je 0x502b25
push esi
call fcn.004fb2f0
mov eax, 0x64b508
lea ebx, [ebx]
inc eax
cmp byte [eax], 0
jne 0x502b30
sub eax, 0x64b508
push eax
push 0x64b508
push esi
call fcn.004dd670
add esp, 0xc
test eax, eax
jne 0x502b62
push eax
push 0x66da34
push 0x64b4fc
push esi
call fcn.004e1b10
add esp, 0x10
cmp byte [esi], 0x5c
jne 0x502b92
cmp byte [esi + 1], 0x5c
jne 0x502b92
push esi
call fcn.004fb7f0
cmp eax, 1
jne 0x502b92
xor eax, eax
pop esi
mov ecx, dword [esp + 0x618]
xor ecx, esp
call fcn.005dfbbe
add esp, 0x61c
ret 4
mov eax, 0x64b4f0
inc eax
cmp byte [eax], 0
jne 0x502b97
sub eax, 0x64b4f0
push eax
push 0x64b4f0
push esi
call fcn.004dd670
add esp, 0xc
test eax, eax
jne 0x502b78
push edi
push eax
push 0x64b4dc
push esi
call fcn.004f5880
mov edi, eax
add esp, 0xc
cmp edi, 0xffffffff
je 0x502c94
cmp dword [0x74bccc], 0
jne 0x502bfd
push 0x64b4c8
push 0x61bed4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x74bccc], eax
test eax, eax
je 0x502c94
push 0x64b4dc
call fcn.004dd6c0
add edi, eax
lea edx, [esi + edi]
push 0x5c
push edx
call fcn.005e0940
mov edi, eax
add esp, 0xc
test edi, edi
je 0x502c94
push 0x103
lea eax, [esp + 0x111]
push 0
push eax
mov byte [esp + 0x118], 0
call fcn.005dfd60
add esp, 0xc
push 0x104
lea ecx, [esp + 0x110]
push ecx
push esi
call dword [0x74bccc]
test eax, eax
je 0x502c94
lea edx, [esp + 0x10c]
push edx
call fcn.004e24e0
add esp, 4
inc edi
push edi
lea eax, [esp + 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x10c]
mov ecx, eax
sub esi, ecx
nop
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x502c80
mov eax, 1
jmp 0x502d7d
mov edi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
push ebx
mov byte [esp + 0xd], 0x3a
mov byte [esp + 0xe], 0
mov bl, 0x61
jmp 0x502cb0
push 0x410
lea edx, [esp + 0x218]
push edx
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x18], bl
mov byte [esp + 0x220], 0
call edi
test eax, eax
je 0x502d40
push 0
lea ecx, [esp + 0x218]
push 0x64a598
push ecx
call fcn.004f5880
add esp, 0xc
cmp eax, 0xffffffff
je 0x502cfd
lea edx, [esp + 0x214]
push edx
call fcn.004fb2f0
lea eax, [esp + 0x214]
push eax
call fcn.004e24e0
add esp, 4
cmp byte [esp + 0x214], 0
lea eax, [esp + 0x214]
je 0x502d26
mov edi, edi
inc eax
cmp byte [eax], 0
jne 0x502d20
lea ecx, [esp + 0x214]
sub eax, ecx
push eax
mov edx, ecx
push edx
push esi
call fcn.004dd670
add esp, 0xc
test eax, eax
je 0x502d96
inc bl
cmp bl, 0x7a
jle 0x502cb0
push 0
push 0x66da34
push 0x64b4ac
push esi
call fcn.004e1b10
add esp, 0x10
test eax, eax
jne 0x502dbb
push eax
push 0x66da34
push 0x64b490
push esi
call fcn.004e1b10
add esp, 0x10
test eax, eax
jne 0x502dbb
pop ebx
mov ecx, dword [esp + 0x620]
pop edi
pop esi
xor ecx, esp
call fcn.005dfbbe
add esp, 0x61c
ret 4
lea eax, [esp + 0x214]
push eax
call fcn.004e2520
push 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x220]
push edx
push esi
call fcn.004e1b10
add esp, 0x14
mov eax, 1
jmp 0x502d7c