Function at 0x10ba7580
Capabilities:
Enumerate files on windows
Get common file path
Get disk information
Set current directory

Disassembly:
sub esp, 0x24c
push ebx
push ebp
push esi
push edi
call fcn.10bd19f0
mov ebp, dword [esp + 0x264]
mov esi, dword [sym.imp.MSVCRT.dll_strchr]
mov edi, dword [sym.imp.MSVCRT.dll__mbschr]
push 0x3f
test eax, eax
push ebp
je 0x10ba75ad
call edi
jmp 0x10ba75af
call esi
add esp, 8
test eax, eax
jne 0x10ba79ec
call fcn.10bd19f0
test eax, eax
push 0x2a
push ebp
je 0x10ba75ca
call edi
jmp 0x10ba75cc
call esi
add esp, 8
test eax, eax
jne 0x10ba79ec
xor ebx, ebx
call fcn.10bd19f0
test eax, eax
je 0x10ba75f3
lea ecx, [esp + 0x14]
push ebp
push ecx
call dword [sym.imp.MSVCRT.dll__mbscpy]
add esp, 8
jmp 0x10ba7616
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x14]
test al, al
je 0x10ba7638
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x10ba7638
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24c
ret
lea edx, [esp + 0x14]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov eax, dword [esp + 0x26c]
test eax, eax
je 0x10ba7667
mov edx, dword [esp + 0x260]
lea ecx, [esp + 0x14]
push ecx
push eax
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
test ebx, ebx
je 0x10ba767f
lea eax, [esp + 0x14]
push 0x104
push eax
push ebp
call sym.PBVM90.dll_osFileGetFileName
test eax, eax
jne 0x10ba76c3
call fcn.10bd19f0
test eax, eax
je 0x10ba769d
lea ecx, [esp + 0x14]
push 0x10df2fec
push ecx
call dword [sym.imp.MSVCRT.dll__mbscpy]
add esp, 8
jmp 0x10ba76c3
mov edi, 0x10df2ff0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.10bd19f0
test eax, eax
je 0x10ba76dd
lea ecx, [esp + 0x14]
push ecx
push ebp
call dword [sym.imp.MSVCRT.dll__mbscpy]
add esp, 8
jmp 0x10ba76fe
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x268]
test edi, edi
je 0x10ba7733
mov esi, dword [esp + 0x274]
mov ecx, dword [esp + 0x260]
mov eax, esi
push 0
neg eax
sbb eax, eax
push 0
and al, 0xc7
add eax, 0x184
push eax
push edi
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
jmp 0x10ba773a
mov esi, dword [esp + 0x274]
mov ebx, dword [esp + 0x270]
test edi, edi
je 0x10ba7762
cmp ebx, 0x4000
je 0x10ba7762
lea edx, [esp + 0x11c]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [esp + 0x10], eax
jmp 0x10ba776a
mov dword [esp + 0x10], 0xffffffff
test edi, edi
je 0x10ba786c
cmp dword [esp + 0x10], 0xffffffff
je 0x10ba7848
mov ebp, ebx
and ebp, 0x8000
mov cl, byte [esp + 0x11c]
mov eax, 1
test ebp, ebp
je 0x10ba77d6
test cl, 0x20
je 0x10ba77a1
test bl, 0x20
je 0x10ba77a1
jmp 0x10ba77d6
test cl, 1
je 0x10ba77b2
test bl, 1
je 0x10ba77b2
mov eax, 1
jmp 0x10ba77d6
test cl, 2
je 0x10ba77c3
test bl, 2
je 0x10ba77c3
mov eax, 1
jmp 0x10ba77d6
test cl, 4
je 0x10ba77d4
test bl, 4
je 0x10ba77d4
mov eax, 1
jmp 0x10ba77d6
xor eax, eax
test cl, 2
je 0x10ba77e2
test bl, 2
jne 0x10ba77e2
xor eax, eax
test cl, 4
je 0x10ba77ee
test bl, 4
jne 0x10ba77ee
xor eax, eax
test cl, 0x10
je 0x10ba77f5
xor eax, eax
test eax, eax
je 0x10ba7822
mov ecx, esi
mov edx, dword [esp + 0x260]
neg ecx
sbb ecx, ecx
lea eax, [esp + 0x148]
and ecx, 0xffffffc3
push eax
add ecx, 0x180
push 0
push ecx
push edi
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x11c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x10ba7785
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
test edi, edi
je 0x10ba786c
test bl, 0x10
je 0x10ba786c
lea eax, [esp + 0x11c]
push eax
push 0x10df2ff4
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
mov dword [esp + 0x10], esi
jmp 0x10ba7878
mov dword [esp + 0x10], 0xffffffff
mov esi, dword [esp + 0x10]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
test edi, edi
je 0x10ba7973
cmp esi, 0xffffffff
je 0x10ba7973
mov al, byte [esp + 0x11c]
mov ebp, 1
test al, 2
je 0x10ba78ab
test byte [esp + 0x270], 2
jne 0x10ba78ab
xor ebp, ebp
test al, 4
je 0x10ba78bb
test byte [esp + 0x270], 4
jne 0x10ba78bb
xor ebp, ebp
test al, 0x10
jne 0x10ba78c1
xor ebp, ebp
call fcn.10bd19f0
test eax, eax
je 0x10ba78e2
lea ecx, [esp + 0x148]
push 0x10df2ff8
push ecx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
jmp 0x10ba7909
mov edi, 0x10df2ffc
lea esi, [esp + 0x148]
mov ecx, 2
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x10ba78fe
sbb eax, eax
sbb eax, 0xffffffff
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x268]
test eax, eax
jne 0x10ba790f
xor ebp, ebp
test ebp, ebp
je 0x10ba7955
lea edx, [esp + 0x148]
lea eax, [esp + 0x14]
push edx
push 0x10df3000
push eax
call ebx
mov edx, dword [esp + 0x280]
add esp, 0xc
neg edx
mov eax, dword [esp + 0x260]
lea ecx, [esp + 0x14]
sbb edx, edx
push ecx
and edx, 0xffffffc3
push 0
add edx, 0x180
push edx
push edi
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
lea ecx, [esp + 0x11c]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x10ba788f
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
test edi, edi
je 0x10ba79dc
mov eax, dword [esp + 0x270]
test ah, 0x40
je 0x10ba79dc
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ebp, eax
xor esi, esi
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x10ba79d6
lea eax, [esi + 0x61]
lea ecx, [esp + 0x14]
push eax
push str.___c__
push ecx
call ebx
mov eax, dword [esp + 0x280]
add esp, 0xc
neg eax
mov ecx, dword [esp + 0x260]
lea edx, [esp + 0x14]
sbb eax, eax
push edx
and al, 0xc3
push 0
add eax, 0x180
push eax
push edi
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
inc esi
cmp esi, 0x1a
jl 0x10ba798d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x24c
ret
lea eax, [esp + 0x14]
push 0x106
push eax
push ebp
mov ebx, 1
call sym.PBVM90.dll_osFileGetDirectory
jmp 0x10ba7616