Function at 0x140004b50
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 0x140004ba5
mov rax, qword [rcx + 8]
jmp 0x140004ba9
lea rax, [rcx + 8]
mov word [rax], si
call fcn.140003b20
cmp eax, 1
jne 0x140005291
lea rcx, [rbp + 0xe8]
call fcn.1400052d0
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 0x140004c12
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 0x14000517a
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 0x140004c55
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 0x140004c62
mov rax, qword [r15 + 8]
jmp 0x140004c66
lea rax, [r15 + 8]
mov r14d, 1
cmp word [rax + rdx*2], 0x5c
je 0x140004c86
mov r8d, r14d
lea rdx, [0x140016d10]
lea rcx, [r15 + 8]
call fcn.140002320
cmp dword [r15 + 0x6c], 0
je 0x140004d1f
cmp qword [r15 + 0xd0], 0
je 0x140004d1f
cmp qword [r15 + 0x80], 0
je 0x140004ce4
lea rdx, [r15 + 0x70]
lea rcx, [rbp + 0x20]
call fcn.140008520
nop
mov r9, r13
xor r8d, r8d
mov rdx, rax
lea rcx, [r15 + 8]
call fcn.140002510
nop
cmp qword [rbp + 0x38], 8
jb 0x140004cdb
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 0x140004d3d
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
jmp 0x140004d3d
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 0x14000517a
cmp qword [r15 + 0xd0], 0
je 0x14000517a
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 0x140004dac
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 0x140004d90
mov r8, qword [rbp + 0x58]
cmp dword [r15 + 0x6c], 0
je 0x140004dbd
cmp qword [r15 + 0x80], 0
jne 0x140004e37
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 0x140004e07
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x140004dfa
add rcx, 2
add rdx, 2
dec rdi
jne 0x140004de3
jmp 0x140004e07
mov r13, 0xffffffffffffffff
cmovb r14d, r13d
jmp 0x140004e0e
mov r14d, esi
or r13, 0xffffffffffffffff
movsxd rax, r14d
test r14d, r14d
jne 0x140004e2a
cmp r8, 0xd
jae 0x140004e21
mov eax, r13d
jmp 0x140004e2a
mov eax, esi
cmp r8, 0xd
setne al
test eax, eax
sete al
test al, al
je 0x14000517a
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.140008270
nop
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.1400028d0
mov edi, eax
cmp qword [rbp + 0x38], 8
jb 0x140004e84
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
test edi, edi
je 0x14000509a
mov qword [rsp + 0x60], rsi
mov ecx, 0x10
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
test rax, rax
je 0x14000506c
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.1400085d0
lea rdx, [r15 + 0x98]
mov r8, rax
lea rcx, [rsp + 0x60]
call fcn.140008620
mov r12d, esi
cmp qword [rbp - 0x80], r12
jbe 0x140005055
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.1400078c0
mov rcx, rax
mov r8, rdi
lea rdx, [rbp + 8]
call fcn.140007f50
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x140004f71
mov rax, rsi
jmp 0x140004f74
mov rax, qword [rax]
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rax + 0x10]
cmp rcx, rdx
ja 0x140004f84
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.1400041e0
mov ebx, esi
cmp qword [rbp - 0x40], rbx
jbe 0x140005032
mov rdi, rsi
nop dword [rax]
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x60]
call fcn.1400078c0
mov rcx, rax
mov r8, rdi
lea rdx, [rbp - 0x10]
call fcn.140007f50
mov rcx, rax
mov rax, qword [rax]
test rax, rax
jne 0x140004ffc
mov rax, rsi
jmp 0x140004fff
mov rax, qword [rax]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp rdx, rcx
ja 0x14000500f
sub rcx, rdx
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
cmp qword [rcx + 0x18], 8
jb 0x140005021
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
inc ebx
movsxd rdi, ebx
cmp rdi, qword [rbp - 0x40]
jb 0x140004fd0
lea rcx, [rbp - 0x60]
call fcn.140007ad0
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
inc r12d
movsxd rdi, r12d
cmp rdi, qword [rbp - 0x80]
jb 0x140004f10
lea rcx, [rsp + 0x60]
call fcn.140007ad0
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
jmp 0x14000509a
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.1400046c0
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400050db
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.140005460
nop
cmp qword [rbp + 0x38], 8
jb 0x140005159
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
call fcn.140004700
nop
cmp qword [rbp + 0xd8], 8
jb 0x140005176
mov rcx, qword [rbp + 0xc0]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
or r13, 0xffffffffffffffff
cmp qword [rbp + 0x80], 0
je 0x14000522f
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.140004560
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400051c8
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.140005460
nop
cmp qword [rbp + 0xb0], 8
jb 0x14000522f
mov rcx, qword [rbp + 0x98]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
nop
cmp qword [rbp + 0x88], 8
jb 0x140005243
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 0x14000526a
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 0x140005291
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