Function at 0x18018b930
Capabilities:
Delete directory

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov qword [rbp + 0x2f], 0xfffffffffffffffe
mov qword [rsp + 0xd0], rbx
movzx edi, dl
mov rbx, rcx
lea rdx, [rbp + 0x7f]
call fcn.180158200
nop
mov rax, qword [rbp + 0x7f]
cmp dword [rax + 4], 0
jne 0x18018b9db
mov qword [rbp - 0x11], 2
xorps xmm0, xmm0
movdqu xmmword [rbp - 9], xmm0
lea rax, [0x1802fa000]
mov qword [rbp + 7], rax
lea rdx, str.Empty_filename_passed_to_function
lea rcx, [rbp - 0x11]
call sym.Qt5Core.dll_public:_void___cdecl_QMessageLogger::warning_char_const____ptr64_const___ptr64
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018b9c2
cmp ecx, 0xffffffff
je 0x18018b9d4
mov ebx, 0xffffffff
mov rax, qword [rbp + 0x7f]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x18018b9d4
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp + 0x7f]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
xor al, al
jmp 0x18018bd69
xor esi, esi
lea r9d, [rsi + 1]
xor r8d, r8d
movzx edx, si
lea rcx, [rbp + 0x7f]
call sym.Qt5Core.dll_public:_int___cdecl_QString::indexOf_class_QChar__int__enum_Qt::CaseSensitivity_const___ptr64
cmp eax, 0xffffffff
je 0x18018ba20
mov qword [rbp + 0xf], 2
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x17], xmm0
lea rax, [0x1802fa000]
mov qword [rbp + 0x27], rax
lea rdx, str.Broken_filename_passed_to_function
lea rcx, [rbp + 0xf]
jmp 0x18018b990
test dil, dil
je 0x18018bce9
lea rdx, [rbp + 0x7f]
lea rcx, [rbp - 0x39]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QDir::cleanPath_class_QString_const____ptr64_
nop
mov rdx, rax
lea rcx, [rbp - 0x41]
call sym.Qt5Core.dll_public:_static_class_QString___cdecl_QDir::toNativeSeparators_class_QString_const____ptr64_
mov rdx, qword [rbp + 0x7f]
mov qword [rbp + 0x37], rdx
mov rcx, qword [rax]
mov qword [rbp + 0x7f], rcx
mov qword [rax], rdx
mov rax, qword [rbp - 0x41]
mov ecx, dword [rax]
mov ebx, 0xffffffff
test ecx, ecx
je 0x18018ba77
cmp ecx, ebx
je 0x18018ba8a
mov ecx, ebx
mov rax, qword [rbp - 0x41]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018ba8a
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x41]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp - 0x39]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018baa8
cmp ecx, 0xffffffff
je 0x18018baba
mov ecx, ebx
mov rax, qword [rbp - 0x39]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018baba
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x39]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov rax, qword [rbp + 0x7f]
mov edi, dword [rax + 4]
test edi, edi
jle 0x18018bcb4
mov r8d, edi
lea rdx, [rbp - 0x21]
lea rcx, [rbp + 0x7f]
call sym.Qt5Core.dll_public:_class_QStringRef___cdecl_QString::leftRef_int____ptr64
cmp dword [rbp - 0x15], 2
jne 0x18018bb39
mov r8, qword [rbp - 0x21]
mov rdx, qword [r8]
movsxd r9, dword [rbp - 0x19]
mov rax, qword [rdx + 0x10]
lea rcx, [rax + r9*2]
movzx ecx, word [rcx + rdx]
lea eax, [rcx - 0x41]
cmp eax, 0x39
ja 0x18018bb06
lea eax, [rcx - 0x5b]
cmp eax, 5
ja 0x18018bb1c
cmp ecx, 0x7f
jbe 0x18018bb39
call sym.Qt5Core.dll_private:_static_bool___cdecl_QChar::isLetter_helper_unsigned_int_
test al, al
je 0x18018bb39
mov r9d, dword [rbp - 0x19]
mov r8, qword [rbp - 0x21]
lea eax, [r9 + 1]
mov rdx, qword [r8]
movsxd rcx, eax
mov rax, qword [rdx + 0x10]
lea rcx, [rax + rcx*2]
cmp word [rcx + rdx], 0x3a
je 0x18018bcb4
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x21]
call sym.Qt5Core.dll_public:_class_QString___cdecl_QStringRef::toString_void____ptr64
nop
xor edx, edx
lea rcx, [rbp - 0x49]
call fcn.18018a390
test al, al
je 0x18018bc67
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x31]
call fcn.180184a20
nop
mov rcx, rax
call sym.Qt5Core.dll_public:_unsigned_short_int_const____ptr64___cdecl_QString::utf16_void_const___ptr64
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
setne dil
mov rax, qword [rbp - 0x31]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bb9d
cmp ecx, 0xffffffff
je 0x18018bbaf
mov ecx, ebx
mov rax, qword [rbp - 0x31]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018bbaf
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x31]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
test dil, dil
je 0x18018bc0c
lea rcx, [rbp + 0x77]
call sym.Qt5Core.dll_public:_static_class_QChar___cdecl_QDir::separator_void_
lea r8d, [rsi - 1]
mov r9d, 1
movzx edx, word [rax]
lea rcx, [rbp + 0x7f]
call sym.Qt5Core.dll_public:_int___cdecl_QString::lastIndexOf_class_QChar__int__enum_Qt::CaseSensitivity_const___ptr64
mov edi, eax
mov rax, qword [rbp - 0x49]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bbf3
cmp ecx, 0xffffffff
je 0x18018bc05
mov ecx, ebx
mov rax, qword [rbp - 0x49]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018bc05
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x49]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov esi, edi
jmp 0x18018bac1
test esi, esi
setne dil
mov rax, qword [rbp - 0x49]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bc30
cmp ecx, 0xffffffff
je 0x18018bc43
mov ecx, ebx
mov rax, qword [rbp - 0x49]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018bc43
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x49]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bd52
cmp ecx, 0xffffffff
je 0x18018bd65
mov rcx, qword [rbp + 0x7f]
lock xadd dword [rcx], ebx
jmp 0x18018bd4d
mov rax, qword [rbp - 0x49]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bc85
cmp ecx, 0xffffffff
je 0x18018bc98
mov ecx, ebx
mov rax, qword [rbp - 0x49]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x18018bc98
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x49]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018b9c2
cmp ecx, 0xffffffff
je 0x18018b9d4
jmp 0x18018b9b5
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bcd0
cmp ecx, 0xffffffff
je 0x18018bce2
mov rax, qword [rbp + 0x7f]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x18018bce2
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp + 0x7f]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
mov al, 1
jmp 0x18018bd69
lea rdx, [rbp - 0x29]
mov rcx, rbx
call fcn.180158200
nop
mov rcx, rax
call fcn.18018c470
movzx edi, al
mov rcx, qword [rbp - 0x29]
mov edx, dword [rcx]
mov ebx, 0xffffffff
test edx, edx
je 0x18018bd23
cmp edx, ebx
je 0x18018bd36
mov edx, ebx
mov rcx, qword [rbp - 0x29]
lock xadd dword [rcx], edx
cmp edx, 1
jne 0x18018bd36
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x29]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
nop
mov rax, qword [rbp + 0x7f]
mov ecx, dword [rax]
test ecx, ecx
je 0x18018bd52
cmp ecx, 0xffffffff
je 0x18018bd65
mov rax, qword [rbp + 0x7f]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x18018bd65
mov r8d, 8
lea edx, [r8 - 6]
mov rcx, qword [rbp + 0x7f]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
movzx eax, dil
mov rbx, qword [rsp + 0xd0]
add rsp, 0xb0
pop rdi
pop rsi
pop rbp
ret