Function at 0x51bab0
Capabilities:
Copy file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x38
push 0
push 0
dec ecx
jne 0x51bab9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.0040436c
xor eax, eax
push ebp
push 0x51bf07
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x569758]
call fcn.00413f14
mov eax, dword [0x569758]
mov edx, dword [eax]
call dword [edx + 0x7c]
lea eax, [ebp - 0x168]
call fcn.0052e1c4
mov edx, dword [ebp - 0x168]
lea eax, [ebp - 0x20]
mov ecx, 0x51bf20
call fcn.00404204
xor ebx, ebx
call sub.kernel32.dll_GetTickCount
mov eax, dword [ebp + 8]
cdq
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov eax, esi
call fcn.004041b8
mov ecx, eax
mov edx, esi
mov eax, 0x51bf34
call fcn.0040d184
test al, al
jne 0x51bb53
lea eax, [ebp - 8]
mov ecx, 0x51bf34
mov edx, esi
call fcn.00404204
jmp 0x51bb5d
lea eax, [ebp - 8]
mov edx, esi
call fcn.00403fd0
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
call fcn.00404204
mov eax, dword [ebp - 0x16c]
call fcn.0040437c
push eax
call sub.kernel32.dll_FindFirstFileA_1
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x51beba
xor eax, eax
push ebp
push 0x51beb3
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x51be86
mov eax, dword [0x567568]
mov eax, dword [eax]
call fcn.0045184c
test dword [ebp - 0x164], 0x10
jbe 0x51bc5d
lea eax, [ebp - 0x170]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov eax, dword [ebp - 0x170]
mov edx, 0x51bf40
call fcn.004042c8
je 0x51be66
lea eax, [ebp - 0x174]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov eax, dword [ebp - 0x174]
mov edx, 0x51bf4c
call fcn.004042c8
je 0x51be66
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x17c]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov ecx, dword [ebp - 0x17c]
lea eax, [ebp - 0x178]
mov edx, dword [ebp - 8]
call fcn.00404204
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 4]
mov edx, edi
call fcn.0051bab0
jmp 0x51be66
lea eax, [ebp - 0x184]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov ecx, dword [ebp - 0x184]
lea eax, [ebp - 0x180]
mov edx, dword [ebp - 8]
call fcn.00404204
mov edx, dword [ebp - 0x180]
mov eax, dword [0x5677f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2dc]
call fcn.004605a4
mov al, byte [0x51bf50]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18c]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov ecx, dword [ebp - 0x18c]
lea eax, [ebp - 0x188]
mov edx, dword [ebp - 8]
call fcn.00404204
mov eax, dword [ebp - 0x188]
xor ecx, ecx
mov edx, 0x51bf34
call fcn.0040d930
mov al, byte [0x51bf50]
push eax
lea eax, [ebp - 0x190]
push eax
xor ecx, ecx
mov edx, 0x51bf5c
mov eax, dword [ebp - 0x24]
call fcn.0040d930
mov edx, dword [ebp - 0x190]
lea eax, [ebp - 0x24]
call fcn.00403fd0
push 0
push dword [ebp - 0x20]
push 0x51bf34
push dword [ebp - 0x24]
lea eax, [ebp - 0x194]
mov edx, 3
call fcn.00404278
mov eax, dword [ebp - 0x194]
call fcn.0040437c
push eax
lea eax, [ebp - 0x19c]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov ecx, dword [ebp - 0x19c]
lea eax, [ebp - 0x198]
mov edx, dword [ebp - 8]
call fcn.00404204
mov eax, dword [ebp - 0x198]
call fcn.0040437c
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
je 0x51be66
call fcn.0040b240
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x1a4]
call fcn.0040be58
push dword [ebp - 0x1a4]
push 0x51bf68
push dword [ebp - 8]
lea eax, [ebp - 0x1a8]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
push dword [ebp - 0x1a8]
push 0x51bf74
push edi
push 0x51bf74
lea eax, [ebp - 0x1c4]
lea edx, [ebp - 0x138]
mov ecx, 0x104
call fcn.00404168
mov ecx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x1c0]
mov edx, dword [ebp - 8]
call fcn.00404204
mov eax, dword [ebp - 0x1c0]
lea edx, [ebp - 0x1bc]
call fcn.004b05d4
lea eax, [ebp - 0x1bc]
lea edx, [ebp - 0x1ac]
call fcn.004b0730
push dword [ebp - 0x1ac]
push 0x51bf74
mov eax, dword [ebp - 0x148]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1c8]
call fcn.00409a98
push dword [ebp - 0x1c8]
push 0x51bf74
push dword [ebp - 0x24]
push 0x51bf74
lea eax, [ebp - 0x1a0]
mov edx, 0xd
call fcn.00404278
mov edx, dword [ebp - 0x1a0]
mov eax, dword [0x569758]
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x164]
push eax
mov eax, dword [ebp - 0x1c]
push eax
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x51be86
call sub.kernel32.dll_GetLastError_1
cmp eax, 0x12
jne 0x51be86
mov bl, 1
test bl, bl
je 0x51bba6
mov eax, dword [0x567474]
cmp byte [eax], 0
jne 0x51bba6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51beba
mov eax, dword [ebp - 0x1c]
push eax
call sub.kernel32.dll_FindClose_1
ret
call fcn.0051b0e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51bf0e
lea eax, [ebp - 0x1c8]
mov edx, 3
call fcn.00403f5c
lea eax, [ebp - 0x1ac]
mov edx, 0x12
call fcn.00403f5c
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.00403f5c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00403f5c
ret