Function at 0x140054ab0
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.140053520
nop
mov rbx, qword [rax]
call fcn.140069614
mov rdx, rax
xor edi, edi
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054b5e
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 0x140054b8a
mov eax, edi
jmp 0x140054b9a
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140054b90
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 0x140054bc3
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.14003c0d0
mov rcx, qword [rax]
movzx eax, word [rcx]
cmp ax, word [0x140296e0c]
jne 0x140054be4
mov eax, edi
jmp 0x140054be9
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 0x140054c07
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140054e7d
lea r8, str.TempFolder
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.140053520
nop
mov rdx, qword [rax]
mov dword [rbp - 0x30], edi
test rdx, rdx
jne 0x140054c35
mov eax, edi
jmp 0x140054c4a
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140054c40
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 0x140054c70
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.14003c240
mov edx, 1
lea rcx, [rbp - 0x40]
call fcn.14003d170
test al, al
jne 0x140054d4e
call fcn.140069614
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054cb5
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 0x140054cfa
movzx r14d, dx
mov ecx, r14d
call fcn.140069024
test rax, rax
je 0x140054d0f
mov r8d, r14d
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140011830
jmp 0x140054d0a
mov r8d, SafeArrayDestroy
lea rcx, [rsp + 0x20]
call fcn.140011b80
mov rbx, qword [rsp + 0x20]
mov dword [rbp - 0x30], edi
test rbx, rbx
jne 0x140054d1b
mov eax, edi
jmp 0x140054d2a
mov rax, rsi
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x140054d20
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 0x140054d4e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 1
lea rcx, [rbp - 0x40]
call fcn.14003d170
test al, al
jne 0x140054e20
call fcn.140069614
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054d83
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 0x140054dc8
movzx r14d, dx
mov ecx, r14d
call fcn.140069024
test rax, rax
je 0x140054ddd
mov r8d, r14d
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140011830
jmp 0x140054dd8
mov r8d, SafeArrayDestroy
lea rcx, [rsp + 0x28]
call fcn.140011b80
mov rbx, qword [rsp + 0x28]
mov dword [rbp - 0x30], edi
test rbx, rbx
je 0x140054dfc
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140054df0
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 0x140054e20
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.14003c0d0
nop
mov rbx, qword [rax]
cmp qword [0x1403123f0], 0
jne 0x140054e5c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1403123f0], rax
test rax, rax
je 0x140054e73
mov ecx, 0x2ee
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8, rbx
lea rdx, str.SerChckModule
lea rcx, [0x1403123c8]
call fcn.1400536a0
nop
mov rdx, qword [rsp + 0x38]
jmp 0x140054f94
call fcn.140069614
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x140054e9c
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.14003f000
lea rdx, str.CAMSIC21.tmp
lea rcx, [rbp + 0x10]
call fcn.14003c240
mov edx, 1
lea rcx, [rbp + 0x10]
call fcn.14003d170
test al, al
je 0x140054f1f
lea rcx, [rbp - 0x78]
call fcn.140070fe4
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.14007254c
mov rcx, qword [rbp + 0x18]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
lea rcx, [rbp - 0x78]
call fcn.14007112c
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x40]
call fcn.14003c0d0
nop
mov rbx, qword [rax]
cmp qword [0x1403123f0], 0
jne 0x140054f5b
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1403123f0], rax
test rax, rax
je 0x140054f72
mov ecx, 0x2ee
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8, rbx
lea rdx, str.SerChckModule
lea rcx, [0x1403123c8]
call fcn.1400536a0
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140054f8c
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 0x140054fa9
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 0x140054fc6
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.1401f3080
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