Function at 0x100c36c
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Get file attributes
Set file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x5c0
mov rax, qword [0x0101c380]
xor rax, rsp
mov qword [rsp + 0x5b0], rax
xor r15d, r15d
xor r13d, r13d
xor r14d, r14d
or rdx, 0xffffffffffffffff
cmp dword [rcx + 8], 7
mov rbp, rcx
mov qword [rsp + 0x20], r15
lea r8, [0x010064c0]
jl 0x100c40d
call fcn.0100be14
lea ebx, [r15 + 1]
test eax, eax
je 0x100c3e0
mov rcx, rbp
call fcn.0100bf78
cmp dword [rbp + 0x38], r13d
jne 0x100c3e0
mov dword [rbp + 0x4a8], ebx
cmp dword [rbp + 0x40], r13d
jne 0x100c522
mov rcx, qword [rbp + 0x458]
call fcn.01008104
test eax, eax
je 0x100c522
cmp dword [rbp + 0x38], r13d
jne 0x100c522
jmp 0x100c51c
lea rsi, [rcx + 0x44]
lea r12, [rsp + 0x170]
mov ebx, 1
mov rcx, rsi
sub r12, rsi
mov al, byte [rcx]
mov byte [r12 + rcx], al
add rcx, rbx
test al, al
jne 0x100c424
xor eax, eax
lea rdi, [rsp + 0x170]
mov rcx, rdx
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [r8 + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c445
xor eax, eax
mov rcx, rdx
lea rdi, [rsp + 0x170]
repne scasb al, byte [rdi]
lea rdx, [0x01006b30]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c46e
lea rcx, [rsp + 0x170]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov al, byte [rsi]
mov byte [r12 + rsi], al
add rsi, rbx
test al, al
jne 0x100c49c
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x170]
repne scasb al, byte [rdi]
lea rdx, [0x010064c0]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c4c5
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x170]
repne scasb al, byte [rdi]
lea rdx, [0x01006b40]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c4ee
lea rcx, [rsp + 0x170]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [rbp + 0x4a8], ebx
mov rdi, qword [rbp + 0x490]
jmp 0x100c54c
cmp dword [rbp + 8], 7
jge 0x100c540
lea rdx, [rdi + 8]
mov r8d, ebx
mov rcx, rbp
call fcn.0100cff0
lea rcx, [rdi + 8]
call fcn.0100d7c0
mov rdi, qword [rdi]
test rdi, rdi
jne 0x100c52b
mov rcx, qword [rbp + 0x498]
call fcn.01008c70
mov eax, dword [rbp + 8]
mov r12, qword [rbp + 0x488]
cmp eax, 0xc
je 0x100c598
cmp eax, 0xd
je 0x100c598
cmp eax, 0xe
je 0x100c598
cmp eax, 0xf
je 0x100c598
cmp eax, 0x10
je 0x100c598
cmp eax, 0x11
je 0x100c598
cmp eax, 0x12
je 0x100c598
cmp eax, 0x13
je 0x100c598
cmp eax, 0x14
jne 0x100c6c8
lea rcx, [0x01007050]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r13, rax
test rax, rax
je 0x100c6c8
lea rdx, [0x01007060]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
jmp 0x100c6c8
cmp dword [rbp + 0x3c], r15d
je 0x100c601
lea rcx, [0x01007078]
call fcn.010148fc
lea rcx, [r12 + 8]
mov rdi, rax
call fcn.010148fc
mov rdx, rdi
mov rcx, rax
call fcn.01014b34
test rax, rax
je 0x100c6c4
jmp 0x100c6a9
mov eax, dword [rbp + 8]
cmp eax, 0xc
je 0x100c631
cmp eax, 0xd
je 0x100c631
cmp eax, 0xe
je 0x100c631
cmp eax, 0xf
je 0x100c631
cmp eax, 0x10
je 0x100c631
cmp eax, 0x11
je 0x100c631
cmp eax, 0x12
je 0x100c631
cmp eax, 0x13
je 0x100c631
cmp eax, 0x14
jne 0x100c6a9
lea rcx, [0x01007080]
call fcn.010148fc
lea rcx, [r12 + 8]
mov rdi, rax
call fcn.010148fc
mov rdx, rdi
mov rcx, rax
call fcn.01014b34
test rax, rax
je 0x100c680
test r14, r14
je 0x100c6c4
lea rcx, [r12 + 8]
mov edx, 0x5c
call fcn.01014e78
add rax, rbx
je 0x100c6c4
xor r8d, r8d
xor edx, edx
mov rcx, rax
call r14
jmp 0x100c6c4
lea rcx, [0x01007078]
call fcn.010148fc
lea rcx, [r12 + 8]
mov rdi, rax
call fcn.010148fc
mov rdx, rdi
mov rcx, rax
call fcn.01014b34
test rax, rax
jne 0x100c6c4
lea rcx, [r12 + 8]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [r12 + 8]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov r12, qword [r12]
test r12, r12
jne 0x100c5c9
mov eax, dword [rbp + 8]
cmp eax, 0xc
je 0x100c701
cmp eax, 0xd
je 0x100c701
cmp eax, 0xe
je 0x100c701
cmp eax, 0xf
je 0x100c701
cmp eax, 0x10
je 0x100c701
cmp eax, 0x11
je 0x100c701
cmp eax, 0x12
je 0x100c701
cmp eax, 0x13
je 0x100c701
cmp eax, 0x14
jne 0x100c70f
test r13, r13
je 0x100c70f
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [rbp + 0x10], r15d
jne 0x100ce90
lea r14, [rbp + 0x24c]
cmp byte [r14], r15b
je 0x100cd83
lea rsi, [0x010064c4]
cmp dword [rbp + 0x20], r15d
je 0x100c79a
mov al, byte [0x01005afc]
mov rdx, qword [rbp]
or r8, 0xffffffffffffffff
mov rdx, qword [rdx + 0x50]
mov byte [rsp + 0x390], al
xor eax, eax
lea rdi, [rsp + 0x390]
mov rcx, r8
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c763
xor eax, eax
lea rdi, [rsp + 0x390]
mov rcx, r8
repne scasb al, byte [rdi]
lea rdx, [0x010064ec]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c78b
jmp 0x100c7b1
xor ecx, ecx
mov al, byte [rcx + rsi]
mov byte [rsp + rcx + 0x390], al
add rcx, rbx
test al, al
jne 0x100c79c
or r8, 0xffffffffffffffff
lea r13, [rsp + 0x280]
mov rcx, r14
sub r13, r14
mov al, byte [rcx]
mov byte [r13 + rcx], al
add rcx, rbx
test al, al
jne 0x100c7bf
xor eax, eax
lea rdi, [rsp + 0x280]
mov rcx, r8
repne scasb al, byte [rdi]
lea rsi, [0x010064c0]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rsi + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c7e8
lea rsi, [0x010064c4]
lea rdi, [rsp + 0x280]
mov rcx, r8
cmp byte [rsp + 0x390], r15b
je 0x100c831
xor eax, eax
lea rdx, [rsp + 0x390]
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c822
jmp 0x100c847
xor eax, eax
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rsi + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100c83a
lea rdx, [rsp + 0x4a0]
mov rcx, r14
sub rdx, r14
mov al, byte [rcx]
mov byte [rdx + rcx], al
add rcx, rbx
test al, al
jne 0x100c855
mov r12d, 0x5c
lea rcx, [rsp + 0x4a0]
mov edx, r12d
call fcn.010144d8
mov rdi, rax
test rax, rax
je 0x100c912
mov byte [rdi], 0
cmp dword [rbp + 0x454], 0
je 0x100c8f2
lea rcx, [rbp + 0x350]
lea rsi, [rsp + 0x4a0]
sub rsi, rcx
movzx eax, byte [rcx]
movzx edx, byte [rcx + rsi]
sub eax, edx
jne 0x100c8b3
add rcx, rbx
test edx, edx
jne 0x100c8a1
test eax, eax
jg 0x100c8f2
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
test rax, rax
je 0x100c8f2
lea rcx, [rsp + 0x4a0]
mov rsi, rax
lea rdx, [rsp + 0x4a0]
sub rsi, rcx
mov cl, byte [rdx]
mov byte [rsi + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100c8df
mov qword [rax], r15
mov r15, rax
lea rcx, [rdi + 1]
mov edx, r12d
mov byte [rdi], r12b
call fcn.010144d8
mov rdi, rax
test rax, rax
jne 0x100c883
mov qword [rsp + 0x20], r15
cmp dword [rbp + 0x454], 0
je 0x100c971
lea rax, [rbp + 0x350]
mov rdi, r14
sub rdi, rax
movzx ecx, byte [rax]
movzx edx, byte [rax + rdi]
sub ecx, edx
jne 0x100c93a
add rax, rbx
test edx, edx
jne 0x100c928
test ecx, ecx
jg 0x100c971
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
test rax, rax
je 0x100c971
mov rdi, rax
mov rdx, r14
sub rdi, r14
mov cl, byte [rdx]
mov byte [rdi + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100c959
mov qword [rax], r15
mov qword [rsp + 0x20], rax
mov r15, rax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x100cbbc
cmp dword [rbp + 0x470], 0
jne 0x100cbbc
lea rsi, [rsp + 0x5c]
lea rdi, [0x01006dd0]
mov ecx, 2
repe cmpsb byte [rsi], byte [rdi]
je 0x100ca08
lea rsi, [rsp + 0x5c]
lea rdi, [0x01006dd4]
mov ecx, 3
repe cmpsb byte [rsi], byte [rdi]
je 0x100ca08
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
mov rdi, rax
test rax, rax
je 0x100ca08
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x5c]
sub rax, rcx
mov cl, byte [rdx]
mov byte [rax + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100c9ea
mov rax, qword [rbp + 0x468]
mov qword [rdi], rax
mov qword [rbp + 0x468], rdi
lea rdx, [rsp + 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x100c99e
cmp dword [rbp + 0x20], eax
jne 0x100cafd
mov rcx, r14
mov al, byte [rcx]
mov byte [r13 + rcx], al
add rcx, rbx
test al, al
jne 0x100ca26
or r12, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x280]
mov rcx, r12
lea r15, [0x010064c0]
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [r15 + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100ca53
mov r15, qword [rsp + 0x20]
xor eax, eax
lea rdi, [rsp + 0x280]
mov rcx, r12
lea rdx, [0x0100666c]
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100ca81
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov rsi, rax
cmp rax, r12
je 0x100cb01
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
mov rdi, rax
test rax, rax
je 0x100cae9
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x5c]
sub rax, rcx
mov cl, byte [rdx]
mov byte [rax + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100cacb
mov rax, qword [rbp + 0x468]
mov qword [rdi], rax
mov qword [rbp + 0x468], rdi
lea rdx, [rsp + 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x100caa9
jmp 0x100cb01
or r12, 0xffffffffffffffff
mov rcx, r14
mov al, byte [rcx]
mov byte [r13 + rcx], al
add rcx, rbx
test al, al
jne 0x100cb04
xor eax, eax
lea rdi, [rsp + 0x280]
mov rcx, r12
repne scasb al, byte [rdi]
lea rsi, [0x010064c0]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rsi + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100cb2d
xor eax, eax
lea rdi, [rsp + 0x280]
mov rcx, r12
repne scasb al, byte [rdi]
lea rdx, [0x01006c58]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100cb55
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, r12
je 0x100cbc3
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
mov rdi, rax
test rax, rax
je 0x100cbc3
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x5c]
sub rax, rcx
mov cl, byte [rdx]
mov byte [rax + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100cb9c
mov rax, qword [rbp + 0x468]
mov qword [rdi], rax
mov qword [rbp + 0x468], rdi
jmp 0x100cbc3
lea rsi, [0x010064c0]
cmp dword [rbp + 0x20], 0
jne 0x100cc09
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
mov rdx, rax
test rax, rax
je 0x100cc09
mov rcx, qword [rbp]
lea rdi, [rdx + 8]
mov rax, qword [rcx + 0x40]
mov cl, byte [rax]
add rax, rbx
mov byte [rdi], cl
add rdi, rbx
test cl, cl
jne 0x100cbea
mov rax, qword [rbp + 0x468]
mov qword [rdx], rax
mov qword [rbp + 0x468], rdx
mov r12, qword [rbp + 0x468]
test r12, r12
je 0x100cd78
lea r13, [rsp + 0x170]
sub r13, r14
mov rcx, r14
mov al, byte [rcx]
mov byte [r13 + rcx], al
add rcx, rbx
test al, al
jne 0x100cc27
or rdx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x170]
mov rcx, rdx
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rsi + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100cc4d
xor eax, eax
lea rdi, [rsp + 0x170]
mov rcx, rdx
repne scasb al, byte [rdi]
lea rsi, [r12 + 8]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rsi + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100cc73
lea rdx, [rsp + 0x170]
lea rcx, [rbp + 0x148]
call fcn.0101402c
test eax, eax
je 0x100cd1d
lea rcx, [rsp + 0x170]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x100cd5f
mov rax, qword [rbp]
mov rdx, qword [rax + 0x40]
sub rdx, rsi
movzx eax, byte [rsi]
movzx ecx, byte [rsi + rdx]
sub eax, ecx
jne 0x100cce2
add rsi, rbx
test ecx, ecx
jne 0x100ccd0
test eax, eax
jne 0x100cd5f
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
test rax, rax
je 0x100cd5f
lea rcx, [rsp + 0x170]
mov rdi, rax
lea rdx, [rsp + 0x170]
sub rdi, rcx
mov cl, byte [rdx]
mov byte [rdi + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100cd0e
jmp 0x100cd52
mov edx, 0x408
mov rcx, rbx
call fcn.01012368
test rax, rax
je 0x100cd5f
lea rcx, [rsp + 0x170]
mov rdi, rax
lea rdx, [rsp + 0x170]
sub rdi, rcx
mov cl, byte [rdx]
mov byte [rdi + rdx + 8], cl
add rdx, rbx
test cl, cl
jne 0x100cd45
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x20], rax
mov qword [rax], rcx
mov r12, qword [r12]
lea rsi, [0x010064c0]
test r12, r12
jne 0x100cc24
mov r15, qword [rsp + 0x20]
mov edx, dword [rbp + 8]
mov rcx, r15
call fcn.0100c0f4
lea rcx, [rsp + 0x170]
sub rcx, r14
mov al, byte [r14]
mov byte [rcx + r14], al
add r14, rbx
test al, al
jne 0x100cd8e
or rdx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x170]
mov rcx, rdx
lea r15, [0x010064c0]
repne scasb al, byte [rdi]
sub rdi, rbx
xor ecx, ecx
mov al, byte [r15 + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100cdbb
mov eax, dword [rbp + 8]
mov r15, qword [rsp + 0x20]
cmp eax, 0xd
je 0x100ce0f
cmp eax, 0xa
je 0x100ce0f
cmp eax, 0x10
je 0x100ce0f
cmp eax, 0x13
je 0x100ce0f
xor eax, eax
mov rcx, rdx
lea rdi, [rsp + 0x170]
repne scasb al, byte [rdi]
lea rdx, [0x010067ac]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100ce00
jmp 0x100ce37
xor eax, eax
mov rcx, rdx
lea rdi, [rsp + 0x170]
repne scasb al, byte [rdi]
lea rdx, [0x010067a4]
sub rdi, rbx
xor ecx, ecx
mov al, byte [rdx + rcx]
mov byte [rdi + rcx], al
add rcx, rbx
test al, al
jne 0x100ce2a
cmp dword [rbp + 0x20], 0
jne 0x100ce6a
cmp dword [rbp + 0x470], 0
jne 0x100ce6a
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100ce78
lea rcx, [rsp + 0x170]
mov edx, eax
call fcn.01007da4
jmp 0x100ce78
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test r15, r15
je 0x100ce90
mov rdi, qword [r15]
mov rcx, r15
call fcn.0101226c
mov r15, rdi
test rdi, rdi
jne 0x100ce7d
mov rax, qword [rbp]
mov rdi, qword [rax + 0x1f8]
test rdi, rdi
je 0x100cecd
xor esi, esi
cmp qword [rdi], rsi
je 0x100cecd
mov rax, rdi
mov rcx, qword [rax]
lea r8, [rbp + 0x4a8]
mov rdx, rbp
call fcn.0100e50c
test eax, eax
jne 0x100cecd
add rsi, rbx
lea rax, [rdi + rsi*8]
cmp qword [rax], 0
jne 0x100ceaa
mov rax, qword [rbp]
mov rdi, qword [rax + 0x200]
test rdi, rdi
je 0x100cf0a
xor esi, esi
cmp qword [rdi], rsi
je 0x100cf0a
mov rax, rdi
mov rcx, qword [rax]
lea r8, [rbp + 0x4a8]
mov rdx, rbp
call fcn.0100e50c
test eax, eax
jne 0x100cf0a
add rsi, rbx
lea rax, [rdi + rsi*8]
cmp qword [rax], 0
jne 0x100cee7
xor eax, eax
mov rcx, qword [rsp + 0x5b0]
xor rcx, rsp
call fcn.0100f170
lea r11, [rsp + 0x5c0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret