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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2e8
mov rax, qword [0x14033e810]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov ebx, r9d
mov dword [rsp + 0x50], ebx
mov rbp, r8
mov rdi, rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x70], rcx
mov r13, qword [rsp + 0x350]
test rdx, rdx
je 0x140086783
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x140086275
test rax, rax
je 0x140086783
test r13, r13
je 0x140086783
test rbp, rbp
je 0x140086783
cmp qword [r8 + 0x10], 0
je 0x140086783
mov ecx, 0x2000
call fcn.1400164e0
mov r14, rax
mov qword [rsp + 0x78], rax
mov ecx, 0x2000
call fcn.1400164e0
mov r12, rax
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x80]
call fcn.140241ba0
mov r9, rdi
lea r8, [0x1402f38c4]
mov edx, 0x1000
mov rcx, r14
call fcn.140055b60
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
mov edx, 0x1000
mov rcx, r14
cmp word [rcx], 0
je 0x140086311
add rcx, 2
sub rdx, 1
jne 0x140086301
mov eax, 0x1000
sub rax, rdx
xor r10d, r10d
test rdx, rdx
cmove rax, r10
je 0x140086372
mov edx, 0x1000
sub rdx, rax
lea rcx, [r14 + rax*2]
je 0x140086363
mov eax, 0x7ffffffe
lea r9, [0x1402ee760]
sub r9, rcx
test rax, rax
je 0x140086363
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140086363
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140086342
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r10w
lea rdx, [rsp + 0x80]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
jne 0x1400863a6
mov rcx, r14
call fcn.140095d64
mov rcx, r12
call fcn.140095d64
jmp 0x140086783
mov r15d, dword [rsp + 0x360]
mov r14, qword [rsp + 0x70]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [r14 + 8]
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140086768
lea rax, [rsp + 0xac]
mov qword [rsp + 0x20], rax
mov r9, rdi
lea r8, str._s_s
mov edx, 0x1000
mov rcx, r12
call fcn.140055b60
mov eax, dword [rsp + 0x80]
bt eax, 0xa
jb 0x1400866af
test al, 0x10
je 0x140086555
movzx ecx, word [rsp + 0xac]
movzx eax, word [rsp + 0xae]
cmp cx, 0x2e
jne 0x14008644d
test ax, ax
je 0x1400866af
cmp cx, cx
jne 0x14008644d
cmp ax, cx
jne 0x14008644d
cmp word [rsp + 0xb0], 0
je 0x1400866af
test ebx, ebx
je 0x1400864b7
xor eax, eax
mov edi, eax
mov ebx, eax
mov rcx, qword [rbp + 0x10]
test rcx, rcx
jle 0x1400864ae
test r15d, r15d
je 0x1400864d5
test rbx, rbx
js 0x1400867b4
cmp rbx, rcx
jge 0x1400867b4
mov rax, qword [rbp + 8]
mov rdx, qword [rax + rbx*8]
lea rcx, [rsp + 0xac]
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x140086502
mov r8, r12
mov rdx, qword [r13 + 0x10]
mov rcx, r13
call fcn.1400a6854
cmp dword [rsp + 0x370], 0
jne 0x140086746
mov ebx, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
cmp dword [rsp + 0x358], 0
je 0x1400866af
mov eax, dword [rsp + 0x368]
cmp eax, 1
jle 0x140086519
dec eax
jmp 0x140086521
test rbx, rbx
js 0x1400867b4
cmp rbx, rcx
jge 0x1400867b4
mov rax, qword [rbp + 8]
mov rdx, qword [rax + rbx*8]
lea rcx, [rsp + 0xac]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140086491
inc edi
inc rbx
mov rcx, qword [rbp + 0x10]
movsxd rax, edi
cmp rax, rcx
jl 0x140086460
jmp 0x1400864ae
test eax, eax
jns 0x1400866af
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r13
mov r9d, ebx
mov r8, rbp
mov rdx, r12
mov rcx, r14
call fcn.140086220
jmp 0x1400866af
test ebx, ebx
jne 0x1400866af
call fcn.1400a2364
nop
test rax, rax
je 0x1400867a9
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xac]
cmp rax, 0x10000
jae 0x1400865a5
lea rax, [rsp + 0xac]
movzx edx, ax
lea rcx, [rsp + 0x60]
call fcn.14000d610
jmp 0x1400865d4
lea rcx, [rsp + 0xac]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400865b4
mov r8d, eax
lea rdx, [rsp + 0xac]
lea rcx, [rsp + 0x60]
call fcn.14000df90
nop
mov rbx, qword [rsp + 0x60]
cmp dword [rbx - 8], 1
jle 0x1400865f1
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.14000dd30
mov rbx, qword [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
test rbx, rbx
jne 0x140086605
xor ecx, ecx
mov eax, ecx
jmp 0x14008661b
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.14024bd08
test eax, eax
js 0x1400867c0
xor ecx, ecx
cmp eax, dword [rbx - 0xc]
jg 0x1400867c0
mov dword [rbx - 0x10], eax
mov eax, eax
mov word [rbx + rax*2], cx
test rbx, rbx
je 0x14008668d
mov esi, ecx
mov rdi, rcx
mov rcx, qword [rbp + 0x10]
test rcx, rcx
jle 0x140086683
test r15d, r15d
je 0x140086700
test rdi, rdi
js 0x1400867ba
cmp rdi, rcx
jge 0x1400867ba
mov rax, qword [rbp + 8]
mov rdx, qword [rax + rdi*8]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x14008672c
mov r8, r12
mov rdx, qword [r13 + 0x10]
mov rcx, r13
call fcn.1400a6854
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x58]
mov eax, 0xffffffff
lock xadd dword [rbx - 8], eax
sub eax, 1
jg 0x1400866aa
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r14, qword [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
mov ebx, dword [rsp + 0x50]
jne 0x1400863c0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x1400863c0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x78]
call fcn.140095d64
mov rcx, r12
call fcn.140095d64
mov eax, 1
jmp 0x140086785
test rdi, rdi
js 0x1400867ba
cmp rdi, rcx
jge 0x1400867ba
mov rax, qword [rbp + 8]
mov rdx, qword [rax + rdi*8]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140086674
inc esi
inc rdi
mov rcx, qword [rbp + 0x10]
movsxd rax, esi
cmp rax, rcx
jl 0x140086640
jmp 0x140086683
mov rcx, qword [rsp + 0x78]
call fcn.140095d64
mov rcx, r12
call fcn.140095d64
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
jmp 0x140086785
mov rcx, qword [rsp + 0x78]
call fcn.140095d64
mov rcx, r12
call fcn.140095d64
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.1402155d0
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x80004005
call fcn.1400080b0
int3
call fcn.1400a2cd8
nop
call fcn.1400a2cd8
nop
mov ecx, 0x80070057
call fcn.1400080b0
int3