Function at 0x407a30
Capabilities:
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
sub esp, 0x15c
mov eax, dword [0x42419c]
xor eax, esp
mov dword [esp + 0x154], eax
push ebx
mov ebx, dword [esp + 0x168]
push ebp
push esi
mov esi, dword [esp + 0x16c]
mov ebp, ebx
and ebp, 4
push edi
mov eax, esi
mov dword [esp + 0x10], ebp
call fcn.00407db0
mov dword [esp + 0x1c], eax
test bl, 8
je 0x407a86
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
inc eax
add dword [0x4436a8], eax
jmp 0x407c80
mov edi, ebx
and edi, 1
mov dword [esp + 0x14], edi
je 0x407aa2
test eax, eax
je 0x407c1a
test bl, 2
je 0x407c1a
push 0x400
push esi
push 0x43eb90
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
test edi, edi
je 0x407ad1
push str..
push 0x43eb90
call ebp
jmp 0x407af4
push esi
call ebx
mov edi, dword [sym.imp.USER32.dll_CharPrevA]
add eax, esi
lea esp, [esp]
cmp byte [eax], 0x5c
je 0x407aed
push eax
push esi
call edi
cmp eax, esi
ja 0x407ae0
mov edi, dword [esp + 0x14]
mov byte [eax], 0
cmp byte [esi], 0
jne 0x407b02
cmp byte [0x43eb90], 0x5c
jne 0x407b0a
push 0x420124
push esi
call ebp
push esi
call ebx
mov ebp, eax
lea eax, [esp + 0x20]
push eax
push 0x43eb90
add ebp, esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
mov dword [esp + 0x18], ebx
cmp ebx, 0xffffffff
je 0x407c0e
mov cl, byte [esp + 0x4c]
lea edi, [esp + 0x4c]
mov eax, edi
test cl, cl
je 0x407b6a
mov edi, edi
cmp cl, 0x3f
je 0x407b54
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x407b40
jmp 0x407b6a
cmp byte [eax], 0
je 0x407b6a
cmp byte [esp + 0x150], 0
je 0x407b6a
lea edi, [esp + 0x150]
cmp byte [edi], 0x2e
jne 0x407b80
mov al, byte [edi + 1]
test al, al
je 0x407bef
cmp al, 0x2e
jne 0x407b80
cmp byte [edi + 2], 0
je 0x407bef
push 0x400
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
test byte [esp + 0x20], 0x10
je 0x407bae
mov eax, dword [esp + 0x174]
mov ecx, eax
and ecx, 3
cmp cl, 3
jne 0x407bef
push eax
push esi
call fcn.00407a30
jmp 0x407bef
mov edi, dword [esp + 0x10]
push edi
call fcn.004079c0
test eax, eax
jne 0x407be3
test edi, edi
je 0x407bdb
mov ecx, esi
mov eax, 0xfffffff1
call fcn.00407330
xor edi, edi
mov ebx, esi
call fcn.004081d0
mov ebx, dword [esp + 0x18]
jmp 0x407bef
inc dword [0x4436a8]
jmp 0x407bef
mov ecx, esi
mov eax, 0xfffffff2
call fcn.00407330
lea edx, [esp + 0x20]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x407b30
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [esp + 0x14]
test edi, edi
je 0x407c16
mov byte [ebp - 1], 0
mov ebp, dword [esp + 0x10]
test edi, edi
je 0x407c80
cmp dword [esp + 0x1c], 0
je 0x407c6c
push 0x43e650
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x407c80
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
call fcn.00407ca0
mov eax, ebp
or eax, 1
push eax
call fcn.004079c0
test eax, eax
jne 0x407c74
test ebp, ebp
je 0x407c6c
mov ecx, esi
mov eax, 0xfffffff1
call fcn.00407330
xor edi, edi
mov ebx, esi
call fcn.004081d0
jmp 0x407c80
inc dword [0x4436a8]
jmp 0x407c80
mov ecx, esi
mov eax, 0xffffffe5
call fcn.00407330
mov ecx, dword [esp + 0x164]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040f602
add esp, 0x15c
ret 8