Function at 0x140004270
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 [0x140021030]
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 0x1400042c5
mov rax, qword [rcx + 8]
jmp 0x1400042c9
lea rax, [rcx + 8]
mov word [rax], si
call fcn.140003240
cmp eax, 1
jne 0x1400049b1
lea rcx, [rbp + 0xe8]
call fcn.1400049f0
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 0x140004332
lea rdx, [rbp + 0x70]
call fcn.140010880
xor r8d, r8d
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x48]
call fcn.140010bd0
or r13, 0xffffffffffffffff
cmp qword [rbp + 0xf8], 0
je 0x14000489a
mov r9, r13
xor r8d, r8d
lea rdx, [rbp + 0xe8]
lea rcx, [r15 + 8]
call fcn.140001b90
mov rdx, qword [r15 + 0x18]
dec rdx
cmp qword [r15 + 0x18], rdx
ja 0x140004375
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 0x140004382
mov rax, qword [r15 + 8]
jmp 0x140004386
lea rax, [r15 + 8]
mov r14d, 1
cmp word [rax + rdx*2], 0x5c
je 0x1400043a6
mov r8d, r14d
lea rdx, [0x140017f14]
lea rcx, [r15 + 8]
call fcn.140002810
cmp dword [r15 + 0x6c], 0
je 0x14000443f
cmp qword [r15 + 0xd0], 0
je 0x14000443f
cmp qword [r15 + 0x80], 0
je 0x140004404
lea rdx, [r15 + 0x70]
lea rcx, [rbp + 0x20]
call fcn.140007a20
nop
mov r9, r13
xor r8d, r8d
mov rdx, rax
lea rcx, [r15 + 8]
call fcn.140002a00
nop
cmp qword [rbp + 0x38], 8
jb 0x1400043fb
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
lea rcx, [r15 + 8]
call fcn.140010db0
lea r8, [0x140017f18]
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x20]
call fcn.140007750
nop
mov r9, r13
xor r8d, r8d
mov rdx, rax
lea rcx, [r15 + 8]
call fcn.140002a00
nop
cmp qword [rbp + 0x38], 8
jb 0x14000445d
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
jmp 0x14000445d
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.140002810
cmp qword [r15 + 0xa8], 0
je 0x14000489a
cmp qword [r15 + 0xd0], 0
je 0x14000489a
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 0x1400044cc
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 0x1400044b0
mov r8, qword [rbp + 0x58]
cmp dword [r15 + 0x6c], 0
je 0x1400044dd
cmp qword [r15 + 0x80], 0
jne 0x140004557
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 0x140004527
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x14000451a
add rcx, 2
add rdx, 2
dec rdi
jne 0x140004503
jmp 0x140004527
mov r13, 0xffffffffffffffff
cmovb r14d, r13d
jmp 0x14000452e
mov r14d, esi
or r13, 0xffffffffffffffff
movsxd rax, r14d
test r14d, r14d
jne 0x14000454a
cmp r8, 0xd
jae 0x140004541
mov eax, r13d
jmp 0x14000454a
mov eax, esi
cmp r8, 0xd
setne al
test eax, eax
sete al
test al, al
je 0x14000489a
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.140007690
nop
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.140010a90
mov edi, eax
cmp qword [rbp + 0x38], 8
jb 0x1400045a4
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
test edi, edi
je 0x1400047ba
mov qword [rsp + 0x60], rsi
mov ecx, 0x10
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
test rax, rax
je 0x14000478c
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.140007ad0
lea rdx, [r15 + 0x98]
mov r8, rax
lea rcx, [rsp + 0x60]
call fcn.140007b20
mov r12d, esi
cmp qword [rbp - 0x80], r12
jbe 0x140004775
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.140001b90
nop
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140001d90
mov rcx, rax
mov r8, rdi
lea rdx, [rbp + 8]
call fcn.1400073e0
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x140004691
mov rax, rsi
jmp 0x140004694
mov rax, qword [rax]
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rax + 0x10]
cmp rcx, rdx
ja 0x1400046a4
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.140001b90
nop
lea r8, [rbp + 0x98]
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x60]
call fcn.140003900
mov ebx, esi
cmp qword [rbp - 0x40], rbx
jbe 0x140004752
mov rdi, rsi
nop dword [rax]
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x60]
call fcn.140001d90
mov rcx, rax
mov r8, rdi
lea rdx, [rbp - 0x10]
call fcn.1400073e0
mov rcx, rax
mov rax, qword [rax]
test rax, rax
jne 0x14000471c
mov rax, rsi
jmp 0x14000471f
mov rax, qword [rax]
mov rcx, qword [rcx + 0x10]
mov rdx, qword [rax + 0x10]
cmp rdx, rcx
ja 0x14000472f
sub rcx, rdx
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8]
cmp qword [rcx + 0x18], 8
jb 0x140004741
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
inc ebx
movsxd rdi, ebx
cmp rdi, qword [rbp - 0x40]
jb 0x1400046f0
lea rcx, [rbp - 0x60]
call fcn.140002080
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
inc r12d
movsxd rdi, r12d
cmp rdi, qword [rbp - 0x80]
jb 0x140004630
lea rcx, [rsp + 0x60]
call fcn.140002080
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
jmp 0x1400047ba
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, [0x14001eb58]
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.140003de0
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400047fb
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, [0x140025c40]
call fcn.140004b80
nop
cmp qword [rbp + 0x38], 8
jb 0x140004879
mov rcx, qword [rbp + 0x20]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
call fcn.140003e20
nop
cmp qword [rbp + 0xd8], 8
jb 0x140004896
mov rcx, qword [rbp + 0xc0]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
or r13, 0xffffffffffffffff
cmp qword [rbp + 0x80], 0
je 0x14000494f
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.140001b90
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x98]
call fcn.140003c80
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400048e8
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, [0x140025c40]
call fcn.140004b80
nop
cmp qword [rbp + 0xb0], 8
jb 0x14000494f
mov rcx, qword [rbp + 0x98]
call qword [sym.imp.mfc100u.dll_CThreadLocalObject::CThreadLocalObject]
nop
cmp qword [rbp + 0x88], 8
jb 0x140004963
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 0x14000498a
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 0x1400049b1
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.1400121a0
mov rbx, qword [rsp + 0x390]
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret