Function at 0x14003a550
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x238]
sub rsp, 0x338
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov rax, qword [0x1400cfdf0]
xor rax, rsp
mov qword [rbp + 0x220], rax
mov r13, r9
mov qword [rsp + 0x38], r9
mov r15, r8
mov qword [rsp + 0x40], r8
mov rbx, rdx
mov qword [rsp + 0x78], rdx
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x60], rdx
mov qword [rbp - 0x58], r8
xor esi, esi
mov r14d, esi
mov dword [rsp + 0x30], esi
xor eax, eax
mov qword [rbp - 0x50], rax
lea r8, [0x14009a910]
mov rdx, r15
lea rcx, [rbp - 0x50]
call fcn.1400262f0
nop
mov rcx, qword [rbx]
sub rcx, 0x18
call fcn.14001e050
lea rdi, [rax + 0x18]
mov qword [rsp + 0x70], rdi
lea rdx, [rbp - 0x30]
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x58], rax
mov r12, 0xffffffffffffffff
cmp rax, r12
je 0x14003ab26
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], rsi
test byte [rbp - 0x30], 0x10
je 0x14003a648
lea rdx, [0x14009a918]
lea rcx, [rbp - 4]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x14003aafd
lea rdx, [0x14009a91c]
lea rcx, [rbp - 4]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x14003aafd
xor eax, eax
mov qword [rsp + 0x48], rax
mov rax, qword [r15]
mov rdi, qword [rax - 0x18]
test rdi, rdi
je 0x14003a678
mov rax, qword [rdi]
mov rbx, qword [rax + 0x20]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
mov rdi, rax
test rax, rax
jne 0x14003a698
call fcn.140015220
mov rdi, rax
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x20]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
mov rdi, rax
test rdi, rdi
je 0x14003ac36
mov rcx, qword [rdi]
mov rbx, qword [rcx + 0x18]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rdi
call rbx
add rax, 0x18
mov qword [rsp + 0x48], rax
or r14d, 1
mov dword [rsp + 0x30], r14d
mov r13d, r14d
mov rdx, qword [r15]
mov dword [rsp + 0x20], 1
lea r9, [0x14009a8f8]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.14001e110
nop
xor eax, eax
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x48]
lea rax, [rdi - 0x18]
mov qword [rbp - 0x70], rax
mov rsi, qword [rdi - 0x18]
test rsi, rsi
je 0x14003a726
mov rax, qword [rsi]
mov rbx, qword [rax + 0x20]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rsi
call rbx
mov rsi, rax
test rax, rax
jne 0x14003a746
call fcn.140015220
mov rsi, rax
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x20]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rsi
call rbx
mov rsi, rax
test rsi, rsi
je 0x14003ac2b
mov rcx, qword [rsi]
mov rbx, qword [rcx + 0x18]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rcx, rsi
call rbx
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
or r14d, 2
mov dword [rsp + 0x30], r14d
lea rax, [rbp - 4]
mov r14, r12
nop dword [rax]
inc r14
cmp word [rax + r14*2], 0
jne 0x14003a780
movsxd rsi, dword [rdi - 0x10]
lea r15d, [rsi + r14]
test r15d, r15d
js 0x14003ac20
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r15d
or eax, ecx
jge 0x14003a7c0
mov edx, r15d
lea rcx, [rsp + 0x50]
call fcn.1400184a0
mov rbx, qword [rsp + 0x50]
add rsi, rsi
mov r9, rsi
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14001d3a0
lea rcx, [rsi + rbx]
movsxd r8, r14d
add r8, r8
je 0x14003a800
test rcx, rcx
jne 0x14003a7f7
call fcn.14005cecc
mov dword [rax], 0x16
call fcn.14005cd7c
jmp 0x14003a800
lea rdx, [rbp - 4]
call fcn.1400537d0
cmp r15d, dword [rbx - 0xc]
jg 0x14003ac15
mov dword [rbx - 0x10], r15d
movsxd rax, r15d
xor ecx, ecx
mov word [rbx + rax*2], cx
lea r14, [rbx - 0x18]
mov rsi, qword [rbp - 0x50]
add rsi, 0xffffffffffffffe8
cmp r14, rsi
je 0x14003a882
cmp dword [rsi + 0x10], ecx
jl 0x14003a872
mov rax, qword [rsi]
cmp qword [r14], rax
jne 0x14003a872
mov rcx, r14
call fcn.14001e050
mov r15, rax
mov ecx, r12d
lock xadd dword [rsi + 0x10], ecx
sub ecx, 1
jg 0x14003a868
mov rdi, qword [rsi]
mov r8, qword [rdi]
mov rbx, qword [r8 + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rdx, rsi
mov rcx, rdi
call rbx
lea rax, [r15 + 0x18]
mov qword [rbp - 0x50], rax
jmp 0x14003a882
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.14001b050
mov eax, r13d
and eax, 0xfffffffd
mov dword [rsp + 0x30], eax
mov eax, r12d
lock xadd dword [r14 + 0x10], eax
sub eax, 1
jg 0x14003a8b5
mov rdi, qword [r14]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rdx, r14
mov rcx, rdi
call rbx
and r13d, 0xfffffffc
mov dword [rsp + 0x30], r13d
mov eax, r12d
mov rsi, qword [rbp - 0x70]
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x14003a8ea
mov rdi, qword [rsi]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rdx, rsi
mov rcx, rdi
call rbx
lea rdx, [rbp - 4]
mov rdi, qword [rsp + 0x70]
mov rcx, rdi
call fcn.140068814
test eax, eax
jne 0x14003aadb
cmp dword [0x1400d4348], 2
jge 0x14003aadb
mov rcx, qword [rbp - 0x50]
mov edx, dword [rcx - 0x10]
test edx, edx
js 0x14003ac0a
mov r8d, 1
sub r8d, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, edx
or eax, r8d
jge 0x14003a940
lea rcx, [rbp - 0x50]
call fcn.1400184a0
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov r13, qword [rsp + 0x38]
test eax, eax
je 0x14003aae0
movsxd r8, dword [0x1400d4348]
lea r14, [r8*8]
add r14, r13
inc r8d
mov dword [0x1400d4348], r8d
mov rdx, qword [rbp - 0x50]
lea rcx, [rdx - 0x18]
mov rsi, qword [r14]
sub rsi, 0x18
cmp rcx, rsi
je 0x14003a9bd
cmp dword [rsi + 0x10], 0
jl 0x14003a9aa
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14003a9aa
call fcn.14001e050
mov rbx, rax
mov rcx, rsi
call fcn.14001a8a0
lea rax, [rbx + 0x18]
mov qword [r14], rax
jmp 0x14003a9b6
mov r8d, dword [rdx - 0x10]
mov rcx, r14
call fcn.14001b050
mov r8d, dword [0x1400d4348]
cmp r8d, 2
jne 0x14003aae0
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rsi, qword [rbp - 0x48]
mov rbx, rsi
mov qword [rbp - 0x78], rbx
mov r14, qword [rbp - 0x40]
cmp rsi, r14
je 0x14003aa4c
mov r15, qword [rsp + 0x78]
mov r12, qword [rbp - 0x80]
nop
lea rax, [rsp + 0x60]
mov qword [rbp - 0x78], rax
mov rcx, qword [rbx]
sub rcx, 0x18
call fcn.14001e050
add rax, 0x18
mov qword [rsp + 0x60], rax
mov rcx, qword [r15]
sub rcx, 0x18
call fcn.14001e050
add rax, 0x18
mov qword [rsp + 0x68], rax
mov r9, r13
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x68]
mov rcx, r12
call fcn.14003a550
add rbx, 8
cmp rbx, r14
jne 0x14003a9f0
mov qword [rbp - 0x78], rbx
mov r12, 0xffffffffffffffff
test rsi, rsi
je 0x14003ab21
cmp rsi, r14
je 0x14003aaa1
nop word [rax + rax]
mov r14, qword [rsi]
mov eax, r12d
lock xadd dword [r14 - 8], eax
sub eax, 1
jg 0x14003aa8e
mov rdi, qword [r14 - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
lea rdx, [r14 - 0x18]
mov rcx, rdi
call rbx
add rsi, 8
cmp rsi, qword [rbp - 0x40]
jne 0x14003aa60
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
sub rax, rsi
sar rax, 3
lea rdx, [rax*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003ab19
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003ac04
jmp 0x14003ab19
mov r13, qword [rsp + 0x38]
test byte [rbp - 0x30], 0x10
je 0x14003aaf3
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x48]
call fcn.140025b90
mov r15, qword [rsp + 0x40]
mov r14d, dword [rsp + 0x30]
lea rdx, [rbp - 0x30]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x14003a9c7
jmp 0x14003a610
mov rcx, rsi
call fcn.14004d92c
mov r15, qword [rsp + 0x40]
lea rsi, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x14003ab53
mov rdi, qword [rsi]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
mov rdx, rsi
mov rcx, rdi
call rbx
nop
mov rsi, qword [rbp - 0x50]
mov eax, r12d
lock xadd dword [rsi - 8], eax
sub eax, 1
jg 0x14003ab82
mov rdi, qword [rsi - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
lea rdx, [rsi - 0x18]
mov rcx, rdi
call rbx
nop
mov rax, qword [rsp + 0x78]
mov rsi, qword [rax]
mov eax, r12d
lock xadd dword [rsi - 8], eax
sub eax, 1
jg 0x14003abb5
mov rdi, qword [rsi - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
lea rdx, [rsi - 0x18]
mov rcx, rdi
call rbx
nop
mov rsi, qword [r15]
lock xadd dword [rsi - 8], r12d
sub r12d, 1
jg 0x14003abe1
mov rdi, qword [rsi - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.14000dba0]
lea rdx, [rsi - 0x18]
mov rcx, rdi
call rbx
mov rcx, qword [rbp + 0x220]
xor rcx, rsp
call fcn.14004e4a0
add rsp, 0x338
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14005cd9c
nop
mov ecx, 0x80070057
call fcn.140012af0
nop
mov ecx, 0x80070057
call fcn.140012af0
int3
mov ecx, 0x80070057
call fcn.140012af0
int3
mov ecx, 0x80004005
call fcn.140012af0
nop
mov ecx, 0x80004005
call fcn.140012af0
int3