Function at 0x565b40
Capabilities:
Enumerate files on windows
Get common file path
Print debug messages

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x468
push 0x9405cc
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x565b70
call dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 0x468
pop ebp
pop edi
pop esi
pop ebx
ret
push str.Finding_MP3s...
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x18]
push 0x9405cc
push eax
call fcn.005a0920
lea eax, [esp + 0x20]
pop ecx
pop ecx
push str.MP3_
push eax
call fcn.005a0970
lea eax, [esp + 0x20]
pop ecx
pop ecx
push eax
push 0x9405cc
call fcn.005a0920
pop ecx
pop ecx
push 0x9405cc
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x18]
push 0x6049c0
push eax
call fcn.005a0970
lea eax, [esp + 0x20]
lea edx, [esp + 0x330]
pop ecx
pop ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
jne 0x565bf7
call dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 0x468
pop ebp
pop edi
pop esi
pop ebx
ret
lea eax, [esp + 0x11c]
push 0x9405cc
push eax
call fcn.005a0920
lea eax, [esp + 0x330]
pop ecx
mov dword [esp + 0x10], eax
lea eax, [esp + 0x120]
add dword [esp + 0x10], 0x2c
pop ecx
push dword [esp + 0xc]
push eax
call fcn.005a0970
pop ecx
pop ecx
or ecx, 0xffffffff
lea edi, [esp + 0x11c]
xor eax, eax
mov esi, 0xfffffffe
repne scasb al, byte es:[edi]
sub esi, ecx
test esi, esi
jg 0x565c60
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FindClose]
add esp, 0x468
pop ebp
pop edi
pop esi
pop ebx
ret
push 0x6049c4
push str.MP3MP3Report.txt
call fcn.005abb00
mov ebp, eax
pop ecx
test ebp, ebp
pop ecx
je 0x565c96
push str.MP3_Report_File_n_n
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
push dword [esp + 0xc]
push str.__s_
push ebp
call fcn.0059e4d0
add esp, 0xc
cmp esi, 4
jle 0x565d35
lea eax, [esp + 0x11c]
add esi, 0xfffffffc
mov ecx, 5
add esi, eax
mov edi, str..lnk
repe cmpsb byte [esi], byte es:[edi]
movzx edx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub edx, eax
test edx, edx
jne 0x565d30
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x11c]
push ecx
push eax
call fcn.00565a10
test al, al
pop ecx
pop ecx
je 0x565d15
push str.Resolving_Link
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebp, ebp
je 0x565d26
lea eax, [esp + 0x11c]
push eax
push str.___shortcut_to___s_
push ebp
call fcn.0059e4d0
add esp, 0xc
jmp 0x565d26
test ebp, ebp
je 0x565d26
push str.___couldnt_resolve_shortcut
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
mov byte [esp + 4], 1
jmp 0x565d35
mov byte [esp + 4], 0
mov eax, dword [0x8f1a24]
lea edi, [esp + 0x11c]
push 0
push edi
push eax
call dword [0x61d5c8]
test eax, eax
mov dword [0x709c50], eax
je 0x565e70
lea edx, [esp + 0x324]
push 0
push edx
push eax
call dword [0x61d5cc]
mov eax, dword [0x709c50]
push eax
call dword [0x61d5d0]
push dword [esp + 0xc]
mov dword [0x709c50], 0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x114
call fcn.005a0690
test eax, eax
pop ecx
mov dword [0x8e2c7c], eax
jne 0x565dc0
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebp, ebp
je 0x565db2
push ebp
call fcn.005ab990
pop ecx
add esp, 0x468
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [0x8e2c7c]
mov dword [0x95cc00], 1
push dword [esp + 0xc]
push eax
call fcn.005a0920
mov eax, dword [esp + 0x32c]
mov esi, dword [0x8e2c7c]
mov dword [esi + 0x104], eax
mov eax, dword [0x8e2c7c]
mov dword [eax + 0x10c], 0
cmp byte [esp + 0xc], 0
mov ebx, dword [0x8e2c7c]
pop ecx
pop ecx
je 0x565e40
push 0x208
call fcn.0059cc90
pop ecx
mov ecx, dword [0x8e2c7c]
mov dword [ecx + 0x110], eax
lea eax, [esp + 0x11c]
mov edi, dword [0x8e2c7c]
push eax
mov eax, dword [edi + 0x110]
push eax
call fcn.005a0920
pop ecx
pop ecx
jmp 0x565e4f
mov eax, dword [0x8e2c7c]
mov dword [eax + 0x110], 0
test ebp, ebp
je 0x565e60
push str.___OK_n
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
mov byte [esp + 0x10], 0
jmp 0x566328
lea eax, [esp + 0x11c]
push str.___NOT_A_VALID_MP3
push eax
call fcn.005a0970
lea eax, [esp + 0x124]
pop ecx
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebp, ebp
je 0x565ea3
push str.___not_an_MP3_or_supported_MP3_type_n
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
mov byte [esp + 0x10], 1
jmp 0x566328
cmp byte [esp + 0x10], 0
je 0x566110
lea eax, [esp + 0x11c]
push 0x9405cc
push eax
call fcn.005a0920
lea eax, [esp + 0x124]
pop ecx
pop ecx
push dword [esp + 0xc]
push eax
call fcn.005a0970
pop ecx
pop ecx
or ecx, 0xffffffff
lea edi, [esp + 0x11c]
xor eax, eax
repne scasb al, byte es:[edi]
mov dword [esp + 8], 0xfffffffe
sub dword [esp + 8], ecx
cmp dword [esp + 8], 0
jle 0x566328
test ebp, ebp
je 0x565f1d
push dword [esp + 0xc]
push str.__s_
push ebp
call fcn.0059e4d0
add esp, 0xc
cmp dword [esp + 8], 4
jle 0x565ff2
mov esi, dword [esp + 8]
lea eax, [esp + 0x11c]
add esi, 0xfffffffc
mov edi, str..lnk
mov ecx, 5
add esi, eax
repe cmpsb byte [esi], byte es:[edi]
movzx edx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub edx, eax
test edx, edx
jne 0x565fc0
lea eax, [esp + 0x11c]
lea esi, [esp + 0x11c]
push esi
push eax
call fcn.00565a10
test al, al
pop ecx
pop ecx
je 0x565fa2
push str.Resolving_Link
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebp, ebp
je 0x565fb3
lea eax, [esp + 0x11c]
push eax
push str.___shortcut_to___s_
push ebp
call fcn.0059e4d0
add esp, 0xc
jmp 0x565fb3
test ebp, ebp
je 0x565fb3
push str.___couldnt_resolve_shortcut
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
mov byte [esp + 4], 1
jmp 0x565ff2
cmp dword [esp + 8], 0x104
mov byte [esp + 4], 0
jle 0x565ff2
test ebp, ebp
je 0x566328
lea eax, [esp + 0x11c]
push eax
push str.___Filename_and_path_too_long____s___IGNORED__n
push ebp
call fcn.0059e4d0
add esp, 0xc
jmp 0x566328
mov eax, dword [0x8f1a24]
lea ecx, [esp + 0x11c]
push 0
push ecx
push eax
call dword [0x61d5c8]
test eax, eax
mov dword [0x709c50], eax
je 0x5662f5
lea edx, [esp + 0x324]
push 0
push edx
push eax
call dword [0x61d5cc]
mov eax, dword [0x709c50]
push eax
call dword [0x61d5d0]
push dword [esp + 0xc]
mov dword [0x709c50], 0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x114
call fcn.005a0690
test eax, eax
pop ecx
mov dword [0x8e2c7c], eax
je 0x566342
mov eax, dword [0x8e2c7c]
mov dword [0x95cc00], 1
push dword [esp + 0xc]
push eax
call fcn.005a0920
mov eax, dword [esp + 0x32c]
mov edi, dword [0x8e2c7c]
mov dword [edi + 0x104], eax
mov eax, dword [0x8e2c7c]
mov dword [eax + 0x10c], 0
cmp byte [esp + 0xc], 0
pop ecx
pop ecx
je 0x5660d7
push 0x208
call fcn.0059cc90
mov esi, dword [0x8e2c7c]
pop ecx
mov dword [esi + 0x110], eax
lea eax, [esp + 0x11c]
mov ebx, dword [0x8e2c7c]
push eax
mov eax, dword [ebx + 0x110]
push eax
call fcn.005a0920
pop ecx
pop ecx
jmp 0x5660e6
mov eax, dword [0x8e2c7c]
mov dword [eax + 0x110], 0
test ebp, ebp
mov ebx, dword [0x8e2c7c]
je 0x5660fd
push str.___OK_n
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
mov byte [esp + 0x10], 0
jmp 0x566328
lea eax, [esp + 0x11c]
push 0x9405cc
push eax
call fcn.005a0920
lea eax, [esp + 0x124]
pop ecx
pop ecx
push dword [esp + 0xc]
push eax
call fcn.005a0970
pop ecx
pop ecx
or ecx, 0xffffffff
lea edi, [esp + 0x11c]
xor eax, eax
mov esi, 0xfffffffe
repne scasb al, byte es:[edi]
sub esi, ecx
test esi, esi
jle 0x566328
test ebp, ebp
je 0x56616a
push dword [esp + 0xc]
push str.__s_
push ebp
call fcn.0059e4d0
add esp, 0xc
cmp esi, 4
jle 0x56620d
lea eax, [esp + 0x11c]
add esi, 0xfffffffc
mov ecx, 5
add esi, eax
mov edi, str..lnk
repe cmpsb byte [esi], byte es:[edi]
movzx ecx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub ecx, eax
test ecx, ecx
jne 0x566208
lea eax, [esp + 0x11c]
lea edx, [esp + 0x11c]
push edx
push eax
call fcn.00565a10
test al, al
pop ecx
pop ecx
je 0x5661f0
push str.Resolving_Link
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebp, ebp
je 0x566201
lea eax, [esp + 0x11c]
push eax
push str.___is_a_shortcut_to___s_
push ebp
call fcn.0059e4d0
add esp, 0xc
jmp 0x566201
test ebp, ebp
je 0x566201
push str.___couldnt_resolve_shortcut
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
mov byte [esp + 4], 1
jmp 0x56620d
mov byte [esp + 4], 0
mov eax, dword [0x8f1a24]
lea edi, [esp + 0x11c]
push 0
push edi
push eax
call dword [0x61d5c8]
test eax, eax
mov dword [0x709c50], eax
je 0x5662f5
lea ecx, [esp + 0x324]
push 0
push ecx
push eax
call dword [0x61d5cc]
mov eax, dword [0x709c50]
push eax
call dword [0x61d5d0]
push 0x114
mov dword [0x709c50], 0
call fcn.005a0690
mov dword [ebx + 0x10c], eax
mov esi, dword [ebx + 0x10c]
test esi, esi
pop ecx
je 0x566342
push dword [esp + 0xc]
push esi
mov ebx, esi
call fcn.005a0920
mov eax, dword [esp + 0x32c]
pop ecx
mov dword [esi + 0x104], eax
mov dword [esi + 0x10c], 0
cmp byte [esp + 8], 0
pop ecx
je 0x5662d0
push 0x208
call fcn.0059cc90
mov dword [esi + 0x110], eax
lea edx, [esp + 0x120]
mov eax, dword [esi + 0x110]
pop ecx
push edx
push eax
call fcn.005a0920
pop ecx
pop ecx
jmp 0x5662da
mov dword [esi + 0x110], 0
push dword [esp + 0xc]
inc dword [0x95cc00]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebp, ebp
je 0x566328
push str.___OK_n
jmp 0x566320
lea eax, [esp + 0x11c]
push str.___NOT_A_VALID_MP3
push eax
call fcn.005a0970
lea eax, [esp + 0x124]
pop ecx
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebp, ebp
je 0x566328
push str.___not_an_MP3_or_supported_MP3_type_n
push ebp
call fcn.0059e4d0
pop ecx
pop ecx
lea eax, [esp + 0x328]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x565eb0
test ebp, ebp
je 0x566361
mov eax, dword [0x95cc00]
push eax
push str._nTOTAL_SUPPORTED_MP3s:__d_n
push ebp
call fcn.0059e4d0
add esp, 0xc
push ebp
call fcn.005ab990
pop ecx
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FindClose]
add esp, 0x468
pop ebp
pop edi
pop esi
pop ebx
ret