Function at 0x180005cc0
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
mov qword [rbp - 9], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1802678f0]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rsi, rcx
xor ebx, ebx
mov dword [rbp - 0x59], ebx
lea edx, [rbx + 1]
call fcn.1800217d0
lea r15, [rsi + 0x348]
mov rax, qword [r15]
cmp dword [rax - 0x10], ebx
jne 0x180005d40
lea edx, [rbx + 0x30]
mov ecx, 0x1f45
mov r8d, 0xffffffff
call fcn.180018714
lea rcx, [rsi + 0x260]
call fcn.180024a5c
lea rax, [rbx - 1]
jmp 0x1800065c2
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x1800065fa
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x41], rax
lea r13, [0x180228b98]
mov rdi, 0xffffffffffffffff
cmp r13, 0x10000
jae 0x180005d85
movzx edx, r13w
lea rcx, [rbp - 0x41]
call fcn.180002ab0
jmp 0x180005dac
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [r13 + rax*2], 0
jne 0x180005d90
mov r8d, eax
mov rdx, r13
lea rcx, [rbp - 0x41]
call fcn.180002e50
nop
mov qword [rbp - 0x39], rbx
mov rbx, qword [rbp - 0x41]
lea r14, [rbx - 0x18]
mov rcx, qword [r14]
test rcx, rcx
je 0x180005dce
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x180005ddf
call fcn.18000fc98
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x180006605
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x39], rax
mov dword [rbp - 0x59], 1
mov r9, qword [r15]
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp - 0x39]
call fcn.180004830
mov rbx, qword [rbp - 0x39]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
sete r12b
mov dword [rbp - 0x59], 0
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180005e4d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, edi
lock xadd dword [r14 + 0x10], eax
sub eax, 1
jg 0x180005e66
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r12b, r12b
je 0x18000605d
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x180006610
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 1], rax
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x18000661b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 7], rax
mov edx, 0x1f47
lea rcx, [rbp - 1]
call fcn.180002ab0
mov r8, qword [r15]
mov rdx, qword [rbp - 1]
lea rcx, [rbp + 7]
call fcn.180003b70
xor r8d, r8d
lea edx, [r8 + 0x24]
mov rbx, qword [rbp + 7]
mov rcx, rbx
call fcn.1800187d8
cmp eax, 6
jne 0x180005fe3
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x180006626
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x51], rax
cmp r13, 0x10000
jae 0x180005f1e
movzx edx, r13w
lea rcx, [rbp - 0x51]
call fcn.180002ab0
jmp 0x180005f3d
mov rax, rdi
inc rax
cmp word [r13 + rax*2], 0
jne 0x180005f21
mov r8d, eax
mov rdx, r13
lea rcx, [rbp - 0x51]
call fcn.180002e50
nop
mov r8, r15
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x21]
call fcn.180004780
xor edx, edx
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
sete bl
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180005f7b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180005f98
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x180006022
mov edx, 0x1f48
lea rcx, [rbp - 1]
call fcn.180002ab0
mov r8, qword [r15]
mov rdx, qword [rbp - 1]
lea rcx, [rbp + 7]
call fcn.180003b70
mov edx, 0x30
mov ecx, 0x1f48
mov r8d, 0xffffffff
call fcn.180018714
lea rcx, [rsi + 0x260]
call fcn.180024a5c
mov rbx, qword [rbp + 7]
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180005ffd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18000601a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rdi
jmp 0x1800065c2
mov rdx, qword [rbp + 7]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180006040
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18000605d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsi + 0x350]
cmp dword [rcx - 0x10], 0
jne 0x180006093
mov edx, 0x30
mov ecx, 0x1f46
mov r8d, 0xffffffff
call fcn.180018714
lea rcx, [rsi + 0x178]
call fcn.180024a5c
mov rax, rdi
jmp 0x1800065c2
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov rcx, rax
lea r14, str..torrent
mov rdx, r14
call fcn.1801a80dc
test eax, eax
je 0x180006102
mov edx, 0x23
mov ecx, 0x1f4e
mov r8d, 0xffffffff
call fcn.180018714
cmp eax, 6
jne 0x1800060f9
mov rax, rdi
nop dword [rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x1800060d0
mov r8d, eax
mov rdx, r14
lea rcx, [rsi + 0x350]
call fcn.1800025b0
xor edx, edx
mov rcx, rsi
call fcn.1800217d0
jmp 0x180006102
cmp eax, 7
jne 0x18000607f
xor r14d, r14d
mov qword [rbp + 0xf], r14
mov rdx, r15
lea rcx, [rbp - 0x19]
call fcn.180004640
nop
lea r8, [rsi + 0x350]
mov rdx, rax
lea rcx, [rbp + 0xf]
call fcn.180004780
nop
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180006147
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x180006631
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x31], rax
cmp r13, 0x10000
jae 0x18000617e
movzx edx, r13w
lea rcx, [rbp - 0x31]
call fcn.180002ab0
jmp 0x18000619d
mov rax, rdi
inc rax
cmp word [r13 + rax*2], 0
jne 0x180006181
mov r8d, eax
mov rdx, r13
lea rcx, [rbp - 0x31]
call fcn.180002e50
nop
mov qword [rbp - 0x29], r14
mov rbx, qword [rbp - 0x31]
lea r14, [rbx - 0x18]
mov rcx, qword [r14]
test rcx, rcx
je 0x1800061bf
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x1800061d0
call fcn.18000fc98
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x18000663c
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x29], rax
mov dword [rbp - 0x59], 2
mov r9, qword [rbp + 0xf]
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rbp - 0x29]
call fcn.180004830
mov rbx, qword [rbp - 0x29]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
setne r12b
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180006238
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, edi
lock xadd dword [r14 + 0x10], eax
sub eax, 1
jg 0x180006251
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r12b, r12b
je 0x1800063fd
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x180006647
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x17], rax
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x180006652
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x1f], rax
mov edx, 0x1f49
lea rcx, [rbp + 0x17]
call fcn.180002ab0
mov r8, qword [rbp + 0xf]
mov rdx, qword [rbp + 0x17]
lea rcx, [rbp + 0x1f]
call fcn.180003b70
xor r8d, r8d
lea edx, [r8 + 0x24]
mov rbx, qword [rbp + 0x1f]
mov rcx, rbx
call fcn.1800187d8
cmp eax, 6
je 0x18000630e
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800062e9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180006306
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, rdi
jmp 0x1800065a3
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x18000665d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x49], rax
cmp r13, 0x10000
jae 0x180006345
movzx edx, r13w
lea rcx, [rbp - 0x49]
call fcn.180002ab0
jmp 0x18000636c
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [r13 + rax*2], 0
jne 0x180006350
mov r8d, eax
mov rdx, r13
lea rcx, [rbp - 0x49]
call fcn.180002e50
nop
lea r8, [rbp + 0xf]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x11]
call fcn.180004780
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800063a4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800063c2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x1f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800063e0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800063fd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9, qword [r15]
mov r8, rdi
mov edx, 0x158
mov rcx, qword [rsi + 0x2a0]
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jns 0x1800064dc
mov r9, qword [r15]
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [rsi + 0x2a0]
call qword [sym.imp.USER32.dll_SendMessageW]
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x1800065ef
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x27], rax
xor r9d, r9d
lea r8, str.Count
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001a6d8
mov ebx, eax
lea r8d, [rbx + 1]
lea rdx, str._.3i.Path
lea rcx, [rbp + 0x27]
call fcn.180003b70
lea r9d, [rbx + 1]
lea r8, str.Count
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001ae0c
mov r9, qword [r15]
mov rbx, qword [rbp + 0x27]
mov r8, rbx
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001aecc
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800064dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9, qword [r15]
lea r8, str.Last
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001aecc
mov r9d, dword [rsi + 0x358]
lea r8, str.AutoPieceSize
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001ae0c
mov r9d, dword [rsi + 0x44c]
lea r8, [0x180228b10]
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001ae0c
mov r9d, dword [rsi + 0x450]
lea r8, [0x180228b20]
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001ae0c
mov r9d, dword [rsi + 0x454]
lea r8, [0x180228b30]
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001ae0c
mov r9d, dword [rsi + 0x448]
lea r8, str.PieceSize
lea rdx, str.Folders
lea rcx, [0x1802946c0]
call fcn.18001ae0c
mov ebx, VarBstrFromDisp
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1800065bf
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, rbx
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.18019ab50
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
int3