Function at 0x1400549a0
Capabilities:
Delete file

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2c8]
sub rsp, 0x3a0
mov qword [rbp - 0x80], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1402fcb80]
xor rax, rsp
mov qword [rbp + 0x290], rax
lea r12, vtable.CUtlXProperty.0
mov qword [rsp + 0x58], r12
lea rcx, [rsp + 0x60]
call qword [sym.imp.SetupXML.dll_public:_void___cdecl_CXMLFileManagerInterface::constructor_void____ptr64]
lea r13, vtable.CUtlX.0
mov qword [rsp + 0x60], r13
mov edx, 2
lea rcx, [rsp + 0x60]
call qword [sym.imp.SetupXML.dll_public:_void___cdecl_CXMLFileManagerInterface::SetFileIndex_enum_XMLFILENAMES____ptr64]
nop
lea r8, str.SerChckModule
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x58]
call fcn.140053410
nop
mov rbx, qword [rax]
call fcn.1400694ec
mov rdx, rax
xor edi, edi
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054a4e
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x38], rax
lea r15, vtable.CUtlCommonPath.0
mov qword [rbp - 0x40], r15
mov dword [rbp - 0x30], edi
or rsi, 0xffffffffffffffff
test rbx, rbx
jne 0x140054a7a
mov eax, edi
jmp 0x140054a8a
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140054a80
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x38]
call fcn.140011b80
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054ab3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x40]
call fcn.14003bfc0
mov rcx, qword [rax]
movzx eax, word [rcx]
cmp ax, word [0x140296e0c]
jne 0x140054ad4
mov eax, edi
jmp 0x140054ad9
sbb eax, eax
or eax, 1
test eax, eax
sete bl
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054af7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140054d6d
lea r8, str.TempFolder
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.140053410
nop
mov rdx, qword [rax]
mov dword [rbp - 0x30], edi
test rdx, rdx
jne 0x140054b25
mov eax, edi
jmp 0x140054b3a
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140054b30
mov r8d, eax
lea rcx, [rbp - 0x38]
call fcn.140011b80
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054b60
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, str.CAMSIC21.tmp
lea rcx, [rbp - 0x40]
call fcn.14003c130
mov edx, 1
lea rcx, [rbp - 0x40]
call fcn.14003d060
test al, al
jne 0x140054c3e
call fcn.1400694ec
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054ba5
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
lea rdx, str.SerChck.dll
test rdx, 0xffffffffffff0000
jne 0x140054bea
movzx r14d, dx
mov ecx, r14d
call fcn.140068f14
test rax, rax
je 0x140054bff
mov r8d, r14d
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140011830
jmp 0x140054bfa
mov r8d, SafeArrayDestroy
lea rcx, [rsp + 0x20]
call fcn.140011b80
mov rbx, qword [rsp + 0x20]
mov dword [rbp - 0x30], edi
test rbx, rbx
jne 0x140054c0b
mov eax, edi
jmp 0x140054c1a
mov rax, rsi
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x140054c10
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x38]
call fcn.140011b80
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054c3e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 1
lea rcx, [rbp - 0x40]
call fcn.14003d060
test al, al
jne 0x140054d10
call fcn.1400694ec
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054c73
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x28], rbx
lea rdx, str.SerChckv2.dll
test rdx, 0xffffffffffff0000
jne 0x140054cb8
movzx r14d, dx
mov ecx, r14d
call fcn.140068f14
test rax, rax
je 0x140054ccd
mov r8d, r14d
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140011830
jmp 0x140054cc8
mov r8d, SafeArrayDestroy
lea rcx, [rsp + 0x28]
call fcn.140011b80
mov rbx, qword [rsp + 0x28]
mov dword [rbp - 0x30], edi
test rbx, rbx
je 0x140054cec
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140054ce0
mov edi, eax
mov r8d, edi
mov rdx, rbx
lea rcx, [rbp - 0x38]
call fcn.140011b80
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054d10
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x40]
call fcn.14003bfc0
nop
mov rbx, qword [rax]
cmp qword [0x1403123f0], 0
jne 0x140054d4c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1403123f0], rax
test rax, rax
je 0x140054d63
mov ecx, 0x2ee
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8, rbx
lea rdx, str.SerChckModule
lea rcx, [0x1403123c8]
call fcn.140053590
nop
mov rdx, qword [rsp + 0x38]
jmp 0x140054e84
call fcn.1400694ec
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054d8c
mov ecx, 0x80004005
call fcn.140011b60
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x10], r15
mov dword [rbp + 0x20], edi
lea rcx, [rbp + 0x10]
call fcn.14003eef0
lea rdx, str.CAMSIC21.tmp
lea rcx, [rbp + 0x10]
call fcn.14003c130
mov edx, 1
lea rcx, [rbp + 0x10]
call fcn.14003d060
test al, al
je 0x140054e0f
lea rcx, [rbp - 0x78]
call fcn.140070da8
nop
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], rdi
mov dword [rbp + 0x80], edi
xor r8d, r8d
lea rdx, [rbp + 0x60]
mov rcx, qword [rbp + 0x18]
call fcn.140072310
mov rcx, qword [rbp + 0x18]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
lea rcx, [rbp - 0x78]
call fcn.140070ef0
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x40]
call fcn.14003bfc0
nop
mov rbx, qword [rax]
cmp qword [0x1403123f0], 0
jne 0x140054e4b
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1403123f0], rax
test rax, rax
je 0x140054e62
mov ecx, 0x2ee
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8, rbx
lea rdx, str.SerChckModule
lea rcx, [0x1403123c8]
call fcn.140053590
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054e7c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp + 0x10], r15
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054e99
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp - 0x40], r15
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054eb6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
lea rcx, [rsp + 0x60]
call qword [sym.imp.SetupXML.dll_public_virtual:_void___cdecl_CXMLFileManagerInterface::destructor_void____ptr64]
mov rcx, qword [rbp + 0x290]
xor rcx, rsp
call fcn.1401f2f70
lea r11, [rsp + 0x3a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret