Function at 0x140004b80
Capabilities:
Delete file

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x240]
sub rsp, 0x340
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov qword [rsp + 0x390], rbx
mov rax, qword [0x140020030]
xor rax, rsp
mov qword [rbp + 0x230], rax
mov rbx, rdx
mov r15, rcx
xor esi, esi
mov qword [rcx + 0x18], rsi
cmp qword [rcx + 0x20], 8
jb 0x140004bd5
mov rax, qword [rcx + 8]
jmp 0x140004bd9
lea rax, [rcx + 8]
mov word [rax], si
call fcn.140003b50
cmp eax, 1
jne 0x1400052c1
lea rcx, [rbp + 0xe8]
call fcn.140005300
nop
mov qword [rbp + 0x60], 7
mov qword [rbp + 0x58], rsi
mov word [rbp + 0x48], si
mov qword [rbp + 0x88], 7
mov qword [rbp + 0x80], rsi
mov word [rbp + 0x70], si
mov rcx, qword [r15 + 0xd0]
test rcx, rcx
je 0x140004c42
lea rdx, [rbp + 0x70]
call fcn.1400026c0
xor r8d, r8d
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x48]
call fcn.140002a10
or r13, 0xffffffffffffffff
cmp qword [rbp + 0xf8], 0
je 0x1400051aa
mov r9, r13
xor r8d, r8d
lea rdx, [rbp + 0xe8]
lea rcx, [r15 + 8]
call fcn.1400010b0
mov rdx, qword [r15 + 0x18]
dec rdx
cmp qword [r15 + 0x18], rdx
ja 0x140004c85
lea rcx, str.invalid_string_position
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
cmp qword [r15 + 0x20], 8
jb 0x140004c92
mov rax, qword [r15 + 8]
jmp 0x140004c96
lea rax, [r15 + 8]
mov r14d, 1
cmp word [rax + rdx*2], 0x5c
je 0x140004cb6
mov r8d, r14d
lea rdx, [0x140016d10]
lea rcx, [r15 + 8]
call fcn.140002320
cmp dword [r15 + 0x6c], 0
je 0x140004d4f
cmp qword [r15 + 0xd0], 0
je 0x140004d4f
cmp qword [r15 + 0x80], 0
je 0x140004d14
lea rdx, [r15 + 0x70]
lea rcx, [rbp + 0x20]
call fcn.140008530
nop
mov r9, r13
xor r8d, r8d
mov rdx, rax
lea rcx, [r15 + 8]
call fcn.140002510
nop
cmp qword [rbp + 0x38], 8
jb 0x140004d0b
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
lea rcx, [r15 + 8]
call fcn.140002bf0
lea r8, str..log
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x20]
call fcn.1400033b0
nop
mov r9, r13
xor r8d, r8d
mov rdx, rax
lea rcx, [r15 + 8]
call fcn.140002510
nop
cmp qword [rbp + 0x38], 8
jb 0x140004d6d
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
jmp 0x140004d6d
xor eax, eax
mov rcx, r13
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rbx
lea rcx, [r15 + 8]
call fcn.140002320
cmp qword [r15 + 0xa8], 0
je 0x1400051aa
cmp qword [r15 + 0xd0], 0
je 0x1400051aa
lea r13, [rbp + 0x48]
mov rdx, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x60]
cmp rcx, 8
cmovae r13, rdx
lea rax, [rbp + 0x48]
cmovae rax, rdx
mov r8, qword [rbp + 0x58]
lea rdi, [rax + r8*2]
lea rbx, [rbp + 0x48]
cmovae rbx, rdx
cmp rbx, rdi
je 0x140004ddc
sub r13, rbx
nop dword [rax]
movzx ecx, word [rbx]
call qword [sym.imp.MSVCR100.dll_tolower]
mov word [r13 + rbx], ax
add rbx, 2
cmp rbx, rdi
jne 0x140004dc0
mov r8, qword [rbp + 0x58]
cmp dword [r15 + 0x6c], 0
je 0x140004ded
cmp qword [r15 + 0x80], 0
jne 0x140004e67
lea rcx, [rbp + 0x48]
cmp qword [rbp + 0x60], 8
cmovae rcx, qword [rbp + 0x48]
mov edi, 0xd
cmp r8, rdi
cmovb rdi, r8
lea rdx, str.es2controller
test rdi, rdi
je 0x140004e37
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x140004e2a
add rcx, 2
add rdx, 2
dec rdi
jne 0x140004e13
jmp 0x140004e37
mov r13, 0xffffffffffffffff
cmovb r14d, r13d
jmp 0x140004e3e
mov r14d, esi
or r13, 0xffffffffffffffff
movsxd rax, r14d
test r14d, r14d
jne 0x140004e5a
cmp r8, 0xd
jae 0x140004e51
mov eax, r13d
jmp 0x140004e5a
mov eax, esi
cmp r8, 0xd
setne al
test eax, eax
sete al
test al, al
je 0x1400051aa
mov qword [rbp + 0xd8], 7
mov qword [rbp + 0xd0], rsi
mov word [rbp + 0xc0], si
lea r8, [r15 + 0x70]
lea rdx, [r15 + 8]
lea rcx, [rbp + 0x20]
call fcn.140008280
nop
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.1400028d0
mov edi, eax
cmp qword [rbp + 0x38], 8
jb 0x140004eb4
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
test edi, edi
je 0x1400050ca
mov qword [rsp + 0x60], rsi
mov ecx, 0x10
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
test rax, rax
je 0x14000509c
mov qword [rsp + 0x60], rax
mov qword [rax], rsi
mov qword [rax + 8], rsi
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x60]
mov qword [rax], rcx
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rsi
lea rcx, [rbp + 0x20]
call fcn.1400085e0
lea rdx, [r15 + 0x98]
mov r8, rax
lea rcx, [rsp + 0x60]
call fcn.140008630
mov r12d, esi
cmp qword [rbp - 0x80], r12
jbe 0x140005085
lea rax, [rbp + 0x98]
mov qword [rbp - 0x68], rax
mov rdi, rsi
nop dword [rax]
mov qword [rbp + 0xb0], 7
mov qword [rbp + 0xa8], rsi
mov word [rbp + 0x98], si
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x98]
call fcn.1400010b0
nop
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400078d0
mov rcx, rax
mov r8, rdi
lea rdx, [rbp + 8]
call fcn.140007f60
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x140004fa1
mov rax, rsi
jmp 0x140004fa4
mov rax, qword [rax]
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rax + 0x10]
cmp rcx, rdx
ja 0x140004fb4
sub rdx, rcx
mov rax, qword [rax + 8]
mov rdx, qword [rax + rdx*8]
mov qword [rbp + 0x38], 7
mov qword [rbp + 0x30], rsi
mov word [rbp + 0x20], si
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp + 0x20]
call fcn.1400010b0
nop
lea r8, [rbp + 0x98]
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x60]
call fcn.140004210
mov ebx, esi
cmp qword [rbp - 0x40], rbx
jbe 0x140005062
mov rdi, rsi
nop dword [rax]
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x60]
call fcn.1400078d0
mov rcx, rax
mov r8, rdi
lea rdx, [rbp - 0x10]
call fcn.140007f60
mov rcx, rax
mov rax, qword [rax]
test rax, rax
jne 0x14000502c
mov rax, rsi
jmp 0x14000502f
mov rax, qword [rax]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp rdx, rcx
ja 0x14000503f
sub rcx, rdx
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
cmp qword [rcx + 0x18], 8
jb 0x140005051
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
inc ebx
movsxd rdi, ebx
cmp rdi, qword [rbp - 0x40]
jb 0x140005000
lea rcx, [rbp - 0x60]
call fcn.140007ae0
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
inc r12d
movsxd rdi, r12d
cmp rdi, qword [rbp - 0x80]
jb 0x140004f40
lea rcx, [rsp + 0x60]
call fcn.140007ae0
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
jmp 0x1400050ca
mov qword [rbp - 0x70], rsi
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x30]
call qword [sym.imp.MSVCR100.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, vtable.std::bad_alloc.0
mov qword [rbp - 0x30], rdx
lea rdx, [0x14001deb8]
lea rcx, [rbp - 0x30]
call sub.MSVCR100.dll__CxxThrowException
nop
xor edx, edx
mov r8d, ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >
lea rcx, [rbp + 0x110]
call sub.MSVCR100.dll_memset
mov dword [rbp + 0x110], ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >
lea rcx, [rbp + 0x110]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
lea rcx, [rbp + 0x20]
call fcn.1400046f0
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14000510b
mov rdx, qword [rax]
movzx eax, word [rbp + 0x226]
movzx ecx, word [rbp + 0x224]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x50], ecx
mov eax, dword [rbp + 0x11c]
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x40], rdx
mov eax, dword [rbp + 0x118]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x114]
mov dword [rsp + 0x30], eax
lea rax, str.Environment_OSVER:_d._d__s_Build:_d_SP:_d._d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1b4
lea r9, str...CommonUtilityDbgLog.cpp
lea r8, str.CDbgLog::BuildLogName
mov edx, 5
lea rcx, [0x140022d60]
call fcn.140005490
nop
cmp qword [rbp + 0x38], 8
jb 0x140005189
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
call fcn.140004730
nop
cmp qword [rbp + 0xd8], 8
jb 0x1400051a6
mov rcx, qword [rbp + 0xc0]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
or r13, 0xffffffffffffffff
cmp qword [rbp + 0x80], 0
je 0x14000525f
mov qword [rbp + 0x38], 7
mov qword [rbp + 0x30], rsi
mov word [rbp + 0x20], si
mov r9, r13
xor r8d, r8d
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x20]
call fcn.1400010b0
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x98]
call fcn.140004590
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400051f8
mov rdx, qword [rax]
lea rax, [rbp + 0x70]
cmp qword [rbp + 0x88], 8
cmovae rax, qword [rbp + 0x70]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
lea rax, str.LoadModule_Path:__s__Ver:__s_
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1bf
lea r9, str...CommonUtilityDbgLog.cpp
lea r8, str.CDbgLog::BuildLogName
mov edx, 5
lea rcx, [0x140022d60]
call fcn.140005490
nop
cmp qword [rbp + 0xb0], 8
jb 0x14000525f
mov rcx, qword [rbp + 0x98]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
nop
cmp qword [rbp + 0x88], 8
jb 0x140005273
mov rcx, qword [rbp + 0x70]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
mov qword [rbp + 0x88], 7
mov qword [rbp + 0x80], rsi
mov word [rbp + 0x70], si
cmp qword [rbp + 0x60], 8
jb 0x14000529a
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
mov qword [rbp + 0x60], 7
mov qword [rbp + 0x58], rsi
mov word [rbp + 0x48], si
cmp qword [rbp + 0x100], 8
jb 0x1400052c1
mov rcx, qword [rbp + 0xe8]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
cmp qword [r15 + 0x18], 0
setne sil
mov eax, esi
mov rcx, qword [rbp + 0x230]
xor rcx, rsp
call fcn.140012160
mov rbx, qword [rsp + 0x390]
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret