Function at 0x4070b1
Capabilities:
Enumerate files on windows
Enumerate files recursively
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb4
lea eax, [ebp - 0x13e]
push eax
push 0x410d8d
call sub.KERNEL32.DLL_FindFirstFileA
mov dword [ebp - 0x144], eax
cmp eax, 0xffffffff
je 0x407393
lea eax, [ebp - 0x13e]
push eax
push dword [ebp - 0x144]
call sub.KERNEL32.DLL_FindNextFileA
or eax, eax
je 0x40730b
mov eax, dword [ebp - 0x13e]
test ax, 2
jne 0x4070da
push 0
lea eax, [ebp - 0x112]
push eax
call sub.KERNEL32.DLL__lopen
cmp eax, 0xffffffff
je 0x4070da
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x112]
push eax
push str.Compressing:__.68s
push 0x4116ff
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0x4116ff
push dword [0x412b8c]
call sub.user32.dll_SetWindowTextA
lea eax, [ebp - 0x112]
cmp byte [0x412c86], 0
jle 0x407184
push 0x4116ff
push 0x104
call sub.KERNEL32.DLL_GetCurrentDirectoryA
mov eax, 0x4116ff
add eax, dword [0x412c82]
inc eax
push 0x410e60
push eax
call sub.KERNEL32.DLL_lstrcatA
lea ecx, [ebp - 0x112]
push ecx
push eax
call sub.KERNEL32.DLL_lstrcatA
push eax
push dword [0x412c29]
call sub.KERNEL32.DLL_lstrcpyA
push eax
call sub.KERNEL32.DLL_lstrlenA
add eax, dword [0x412c29]
inc eax
mov edi, eax
mov eax, dword [ebp - 0x11e]
or eax, eax
jne 0x4071b5
stosd dword es:[edi], eax
mov dword [0x412c29], edi
jmp 0x4072fb
mov eax, dword [0x412c2d]
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x11e]
xor edx, edx
mov ebx, 0x100000
div ebx
or edx, edx
je 0x4071cf
inc eax
stosw word es:[edi], ax
mov dword [0x412c29], edi
mov dword [ebp - 0x148], eax
mov dword [0x412cd8], 1
cmp dword [ebp - 0x148], 0
je 0x4072e8
mov dword [0x412a54], 0x4098d8
mov dword [0x412a58], 0x409900
push 0x1e
push 0
push 9
push 0x412a30
call fcn.0040b2e9
mov eax, dword [0x412c49]
push 0x100000
push eax
push dword [ebp - 0x14c]
call sub.KERNEL32.DLL__hread
push dword [0x412c49]
pop dword [0x412a30]
mov dword [0x412a34], eax
push dword [0x412c51]
pop dword [0x412a40]
mov dword [0x412a44], 0x107ff8
push 2
push 0x412a30
call fcn.0040b4e6
mov edi, dword [0x412c51]
add edi, 6
mov ecx, edi
mov eax, dword [0x412a48]
stosd dword es:[edi], eax
sub eax, 6
push eax
push ecx
push dword [0x412c7e]
call sub.KERNEL32.DLL__hwrite
add dword [0x412c2d], eax
mov eax, dword [0x412a48]
sub eax, 0xa
push eax
mov eax, dword [0x412c51]
add eax, 0xa
push eax
push 0x412cd8
call fcn.0040de9b
push 0x412a30
call fcn.0040ba85
inc dword [0x412d0d]
mov eax, dword [0x412d0d]
mov ebx, 0x64
mul ebx
xor edx, edx
mov ebx, dword [0x412d11]
div ebx
push 0
push eax
push 0x402
push dword [0x412b84]
call sub.user32.dll_SendMessageA
dec dword [ebp - 0x148]
jmp 0x4071e7
mov eax, dword [0x412cd8]
mov edi, dword [0x412c29]
stosd dword es:[edi], eax
add dword [0x412c29], 4
push dword [ebp - 0x14c]
call sub.KERNEL32.DLL__lclose
jmp 0x4070da
inc byte [0x412c86]
push dword [ebp - 0x144]
call sub.KERNEL32.DLL_FindClose
lea eax, [ebp - 0x13e]
push eax
push 0x410d8d
call sub.KERNEL32.DLL_FindFirstFileA
mov dword [ebp - 0x144], eax
cmp eax, 0xffffffff
je 0x407393
lea eax, [ebp - 0x13e]
push eax
push dword [ebp - 0x144]
call sub.KERNEL32.DLL_FindNextFileA
or eax, eax
je 0x407382
mov eax, dword [ebp - 0x13e]
test ax, 0x10
je 0x407338
test ax, 2
jne 0x407338
lea eax, [ebp - 0x112]
cmp byte [eax], 0x2e
je 0x407338
push eax
call sub.KERNEL32.DLL_SetCurrentDirectoryA
call fcn.004070b1
push 0x410d93
call sub.KERNEL32.DLL_SetCurrentDirectoryA
jmp 0x407338
dec byte [0x412c86]
push dword [ebp - 0x144]
call sub.KERNEL32.DLL_FindClose
leave
ret