Function at 0x580860
Capabilities:
Enumerate files on windows

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x350
mov rbp, rsp
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x320], 0
mov qword [rbp + 0x318], 0
mov qword [rbp + 0x78], rbp
mov qword [rbp + 0x370], rcx
mov qword [rbp + 0x378], rdx
mov dword [rbp + 0x380], r8d
mov dword [rbp + 0x388], r9d
mov rcx, qword [rbp + 0x370]
call fcn.0040fd20
mov rcx, qword [rbp + 0x378]
call fcn.0040fd20
nop
mov dword [rbp + 0xbc], 0
mov dword [rbp + 0xb8], 0x63
mov dword [rbp + 0xb4], 0
mov dword [rbp + 0xb0], 0x63
mov byte [rbp + 0x34f], 0
nop
mov rcx, qword [0x00561e58]
mov dl, 1
call fcn.00562b00
mov qword [rbp + 0x340], rax
mov rcx, qword [0x00546708]
mov dl, 1
call fcn.00555a70
mov qword [rbp + 0x338], rax
xor ecx, ecx
call sub.user32.dll_GetSystemMetrics
mov rcx, qword [rbp + 0x338]
mov edx, eax
mov rax, qword [rbp + 0x338]
mov rbx, qword [rax]
call qword [rbx + 0x88]
mov ecx, 1
call sub.user32.dll_GetSystemMetrics
mov rcx, qword [rbp + 0x338]
mov edx, eax
mov rax, qword [rbp + 0x338]
mov rbx, qword [rax]
call qword [rbx + 0x70]
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x80]
xor edx, edx
call fcn.0054ad10
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rbx, rax
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x60]
mov esi, eax
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x48]
lea rcx, [rbp + 0x68]
xor edx, edx
xor r8, r8
mov r9d, esi
mov dword [rsp + 0x20], eax
call fcn.004dedb0
mov rcx, rbx
lea rdx, [rbp + 0x68]
mov rbx, qword [rbx]
call qword [rbx + 0xa8]
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
lea rdx, [0x00581024]
call fcn.00549fe0
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
mov edx, 8
call fcn.0054a090
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
mov edx, 0xff00
call fcn.00549bc0
mov dword [rbp + 0xac], 0
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x370]
lea r8, [0x00581040]
call fcn.00411310
mov rcx, qword [rbp + 0x60]
call fcn.00410ef0
mov rcx, rax
lea rdx, [rbp + 0xc0]
call sub.kernel32.dll_FindFirstFileW
mov qword [rbp + 0x310], rax
cmp qword [rbp + 0x310], 0xffffffffffffffff
je 0x580cc2
lea rcx, [rbp + 0x320]
lea rdx, [rbp + 0xec]
mov r8d, 0x104
call fcn.00410fb0
mov rcx, qword [rbp + 0x320]
call fcn.00560a00
test rax, rax
jns 0x580acd
add rax, 0xfffff
sar rax, 0x14
movsxd rcx, dword [rbp + 0x388]
cmp rax, rcx
jg 0x580ca7
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x48]
cmp dword [rbp + 0xb0], eax
jl 0x580b21
mov rcx, qword [rbp + 0x338]
mov edx, dword [rbp + 0xb0]
add edx, 0x63
jno 0x580b14
call fcn.0040c210
mov rax, qword [rbp + 0x338]
mov rbx, qword [rax]
call qword [rbx + 0x70]
lea rcx, [rbp + 0x58]
mov edx, 3
mov r8, qword [rbp + 0x370]
lea r9, [0x0058105c]
mov rax, qword [rbp + 0x320]
mov qword [rsp + 0x20], rax
call fcn.00411440
mov rcx, qword [rbp + 0x340]
mov rdx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x340]
mov rbx, qword [rax]
call qword [rbx + 0xa8]
mov ecx, 1
call sub.kernel32.dll_Sleep
add dword [rbp + 0xac], 1
jno 0x580b7c
call fcn.0040c210
lea rcx, [rbp + 0x328]
mov edx, dword [rbp + 0xbc]
mov r8d, dword [rbp + 0xb4]
mov r9d, dword [rbp + 0xb8]
mov eax, dword [rbp + 0xb0]
mov dword [rsp + 0x20], eax
call fcn.004dedb0
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, rax
lea rdx, [rbp + 0x328]
mov r8, qword [rbp + 0x340]
mov rbx, qword [rax]
call qword [rbx + 0x110]
mov ecx, 1
call sub.kernel32.dll_Sleep
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rbx, rax
lea rcx, [rbp + 0x50]
mov rdx, qword [rbp + 0x320]
mov r8d, 1
mov r9d, 0xd
call fcn.00411530
mov rcx, rbx
mov edx, dword [rbp + 0xbc]
add edx, 1
jno 0x580c14
call fcn.0040c210
mov r8d, dword [rbp + 0xb4]
add r8d, 0x56
jno 0x580c26
call fcn.0040c210
mov r9, qword [rbp + 0x50]
mov rbx, qword [rbx]
call qword [rbx + 0x120]
add dword [rbp + 0xbc], 0x63
jno 0x580c41
call fcn.0040c210
add dword [rbp + 0xb8], 0x63
jno 0x580c4f
call fcn.0040c210
mov eax, dword [rbp + 0xac]
sub eax, 0xa
jno 0x580c5f
call fcn.0040c210
test eax, eax
jne 0x580c9d
mov dword [rbp + 0xbc], 0
mov dword [rbp + 0xb8], 0x63
add dword [rbp + 0xb4], 0x63
jno 0x580c85
call fcn.0040c210
add dword [rbp + 0xb0], 0x63
jno 0x580c93
call fcn.0040c210
mov dword [rbp + 0xac], 0
mov ecx, 0xfa
call sub.kernel32.dll_Sleep
mov rcx, qword [rbp + 0x310]
lea rdx, [rbp + 0xc0]
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne 0x580a9c
mov rcx, qword [rbp + 0x310]
call sub.kernel32.dll_FindClose
mov rcx, qword [rbp + 0x340]
call fcn.0040c980
lea rcx, [rbp + 0x48]
call fcn.0055ebc0
lea rcx, [rbp + 0x40]
call fcn.0055eb40
lea rcx, [rbp + 0x38]
mov rdx, qword [rbp + 0x40]
call fcn.00410ff0
lea rcx, [rbp + 0x318]
mov edx, 3
mov r8, qword [rbp + 0x48]
lea r9, [0x0058106c]
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.00411440
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
mov edx, 0x10
call fcn.0054a090
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
mov edx, 0xff
call fcn.00549bc0
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov qword [rbp + 0x98], rax
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x60]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov dword [rbp + 0xa4], ecx
mov dword [rbp + 0xa8], 0
cmp qword [rbp + 0x318], 0
je 0x580dad
mov rax, qword [rbp + 0x318]
mov eax, dword [rax - 4]
mov dword [rbp + 0xa8], eax
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x48]
mov rcx, qword [rbp + 0x98]
mov edx, dword [rbp + 0xa8]
imul edx, edx, 9
jno 0x580dd8
call fcn.0040c210
mov r8d, dword [rbp + 0xa4]
add r8d, edx
jno 0x580de9
call fcn.0040c210
mov edx, r8d
mov r8d, eax
sub r8d, 0x3c
jno 0x580dfa
call fcn.0040c210
mov r9, qword [rbp + 0x318]
mov rax, qword [rbp + 0x98]
mov rbx, qword [rax]
call qword [rbx + 0x120]
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
mov edx, 0xa
call fcn.0054a090
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov rcx, qword [rax + 0x70]
mov edx, 0xff00
call fcn.00549bc0
mov rcx, qword [rbp + 0x338]
call fcn.00556cc0
mov qword [rbp + 0x88], rax
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x60]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov dword [rbp + 0x90], ecx
mov dword [rbp + 0x94], 0
cmp qword [rbp + 0x318], 0
je 0x580ea0
mov rax, qword [rbp + 0x318]
mov eax, dword [rax - 4]
mov dword [rbp + 0x94], eax
mov rcx, qword [rbp + 0x338]
mov rax, qword [rbp + 0x338]
mov rax, qword [rax]
call qword [rax + 0x48]
mov rcx, qword [rbp + 0x88]
mov edx, dword [rbp + 0x94]
imul edx, edx, 9
jno 0x580ecb
call fcn.0040c210
mov r8d, dword [rbp + 0x90]
add r8d, edx
jno 0x580edc
call fcn.0040c210
mov edx, r8d
mov r8d, eax
sub r8d, 0x20
jno 0x580eed
call fcn.0040c210
mov r9, qword [rbp + 0x370]
mov rax, qword [rbp + 0x88]
mov rbx, qword [rax]
call qword [rbx + 0x120]
mov rcx, qword [rbp + 0x338]
mov edx, dword [rbp + 0x380]
call fcn.00580660
mov rcx, rax
mov rdx, qword [rbp + 0x378]
mov rbx, qword [rax]
call qword [rbx + 0xb0]
jmp 0x580f3e
mov byte [rbp + 0x34f], 1
nop
lea rcx, [rbp + 0x38]
call fcn.0040fb50
lea rcx, [rbp + 0x40]
call fcn.0040fba0
lea rcx, [rbp + 0x48]
mov edx, 4
call fcn.0040fc30
lea rcx, [rbp + 0x318]
mov edx, 2
call fcn.0040fc30
lea rcx, [rbp + 0x370]
mov edx, 2
call fcn.0040fc30
movzx rax, byte [rbp + 0x34f]
lea rsp, [rbp + 0x350]
pop rbx
pop rsi
pop rbp
ret