Function at 0x58a909
Capabilities:
Copy file
Create directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
push 0x2cc
mov eax, 0x61dce4
call fcn.005b2237
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
cmp dword [esi + 0x14], 8
jb 0x58a928
mov eax, dword [esi]
jmp 0x58a92a
mov eax, esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x58a96d
call ebx
cmp eax, 0xb7
je 0x58a96d
cmp dword [esi + 0x14], 8
jb 0x58a94e
mov esi, dword [esi]
call ebx
push eax
push esi
push str.Failed_to_create_directory__ws__error__i
push str.EFRUtils::CopyDirectory
push 1
call fcn.00587c13
add esp, 0x14
xor al, al
jmp 0x58ab74
push str..
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.004658e0
add esp, 0xc
and dword [ebp - 4], 0
lea ecx, [ebp - 0x2d8]
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
push ecx
cmovae eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x58ab64
lea eax, [ebp - 0x2ac]
push 0x63db30
push eax
call fcn.005e4d3c
pop ecx
pop ecx
test eax, eax
je 0x58aabc
lea eax, [ebp - 0x2ac]
push 0x674bac
push eax
call fcn.005e4d3c
pop ecx
pop ecx
test eax, eax
je 0x58aabc
push 0x63f3c0
lea eax, [ebp - 0x70]
push edi
push eax
call fcn.004658e0
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 1
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004238e0
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 3
call fcn.00434c40
push 0x63f3c0
lea eax, [ebp - 0x88]
push esi
push eax
call fcn.004658e0
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 4
push ecx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004238e0
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 6
call fcn.00434c40
test byte [ebp - 0x2d8], 0x10
je 0x58aa7c
cmp byte [ebp + 0x10], 0
je 0x58aaa0
push 1
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0058a909
add esp, 0xc
test al, al
je 0x58ab43
jmp 0x58aaa0
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
push 0
cmovae ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x58ab10
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00434c40
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00434c40
lea eax, [ebp - 0x2d8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, 1
je 0x58a9a7
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x58ab64
cmp dword [esi + 0x14], 8
jb 0x58aaed
mov esi, dword [esi]
cmp dword [edi + 0x14], 8
jb 0x58aaf5
mov edi, dword [edi]
push eax
push esi
push edi
push str.Failed_to_copy_dir_from__ws_to__ws._Error__i
push str.EFRUtils::CopyDirectory
push 1
call fcn.00587c13
add esp, 0x18
xor bl, bl
jmp 0x58ab66
cmp dword [ebp - 0x14], 8
lea edi, [ebp - 0x28]
lea esi, [ebp - 0x40]
cmovae edi, dword [ebp - 0x28]
cmp dword [ebp - 0x2c], 8
cmovae esi, dword [ebp - 0x40]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push esi
push str.Failed_to_copy_from__ws_to__ws._Error__i
push str.EFRUtils::CopyDirectory
push 1
call fcn.00587c13
add esp, 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00434c40
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.00434c40
jmp 0x58ab0c
mov bl, 1
push 0
push 1
lea ecx, [ebp - 0x58]
call fcn.00434c40
mov al, bl
call fcn.005b21e1
ret