Function at 0x505300
Capabilities:
Enumerate files on windows
Get disk information
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x86e696
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58c
push ebx
push ebp
push esi
push edi
mov ecx, 0xd6354c
call fcn.00504bf0
mov esi, 0xf
xor edi, edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], edi
mov byte [esp + 0x18], 0
mov eax, 0x87059c
mov dword [esp + 0x5a4], edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x505350
sub eax, edx
push eax
mov eax, dword [0x8f1e1c]
push 0x87059c
push eax
push edi
mov ecx, 0x8f1e08
call fcn.00502550
test eax, eax
jne 0x505406
lea ecx, [esp + 0x18c]
push ecx
push 0x410
call dword [sym.imp.kernel32.dll_GetLogicalDriveStringsA]
mov ebp, eax
cmp ebp, edi
jle 0x505556
mov ebx, 1
lea ebx, [ebx]
mov al, byte [esp + edi + 0x18c]
test al, al
lea esi, [esp + edi + 0x18c]
je 0x505556
mov eax, esi
lea edx, [eax + 1]
jmp 0x5053c0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5053c0
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x1c]
call fcn.00401470
lea edx, [esp + 0x10]
push edx
mov ecx, 0xd6354c
mov dword [esp + 0x14], ebx
call fcn.00505290
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5053f0
sub eax, edx
lea edi, [edi + eax + 1]
cmp ebp, edi
jg 0x5053a0
jmp 0x505556
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], edi
mov byte [esp + 0x34], 0
push 0xffffffffffffffff
push edi
push 0x8f1e08
lea ecx, [esp + 0x3c]
mov byte [esp + 0x5b0], 1
call fcn.004013c0
mov eax, 0x886bdc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x505434
sub eax, edx
push eax
push 0x886bdc
lea ecx, [esp + 0x38]
call fcn.0042a1b0
mov eax, 0x886bfc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x505454
sub eax, edx
push eax
push 0x886bfc
lea ecx, [esp + 0x1c]
call fcn.00401470
lea eax, [esp + 0x10]
push eax
mov ecx, 0xd6354c
mov dword [esp + 0x14], 2
call fcn.00505290
cmp dword [esp + 0x48], 0x10
mov eax, dword [esp + 0x34]
jae 0x505492
lea eax, [esp + 0x34]
lea ecx, [esp + 0x4c]
push ecx
push eax
call dword [sym.imp.kernel32.dll_FindFirstFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x505542
mov ebx, dword [sym.imp.kernel32.dll_FindNextFileA]
nop
mov edi, 0x871254
lea esi, [esp + 0x78]
mov ecx, 2
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5054c9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50552b
mov edi, 0x886bfc
lea esi, [esp + 0x78]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5054e6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50552b
test byte [esp + 0x4c], 0x10
je 0x505583
mov dword [esp + 0x10], 2
lea eax, [esp + 0x78]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x505504
sub eax, edx
push eax
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401470
lea ecx, [esp + 0x10]
push ecx
mov ecx, 0xd6354c
call fcn.00505290
lea edx, [esp + 0x4c]
push edx
push ebp
call ebx
test eax, eax
jne 0x5054b0
push ebp
call dword [sym.imp.kernel32.dll_FindClose]
cmp dword [esp + 0x48], 0x10
jb 0x505556
mov eax, dword [esp + 0x34]
push eax
call fcn.0043b58d
add esp, 4
cmp dword [esp + 0x2c], 0x10
pop edi
pop esi
pop ebp
pop ebx
jb 0x50556e
mov ecx, dword [esp + 8]
push ecx
call fcn.0043b58d
add esp, 4
mov ecx, dword [esp + 0x58c]
mov dword fs:[0], ecx
add esp, 0x598
ret
lea eax, [esp + 0x78]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x505590
sub eax, edx
cmp eax, 4
jbe 0x5055c1
lea edx, [esp + eax + 0x74]
push str..bmp
push edx
call fcn.0044c50f
add esp, 8
test eax, eax
jne 0x5055c1
mov dword [esp + 0x10], 3
jmp 0x5054fd
mov dword [esp + 0x10], 4
jmp 0x50552b