Function at 0x140040010
Capabilities:
Delete file
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12f0]
mov eax, 0x13f0
call fcn.1401e33b0
sub rsp, rax
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
mov rbx, r9
mov qword [rsp + 0x70], rbx
mov r15, r8
mov qword [rsp + 0x58], r8
mov rdi, rdx
mov rsi, qword [rbp + 0x1350]
mov qword [rsp + 0x78], rsi
mov r12, qword [rbp + 0x1358]
mov qword [rsp + 0x50], r12
mov r13, qword [rbp + 0x1360]
mov qword [rsp + 0x60], r13
xor r14d, r14d
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x3c], r14d
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x44], r14d
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp + 0xd0]
call fcn.1401e7e40
xor edx, edx
mov r8d, 0x1000
lea rcx, [rbp + 0x2e0]
call fcn.1401e7e40
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xb0], xmm0
mov dword [rbp + 0xc0], eax
lea rcx, [rbp - 0x80]
call fcn.140042400
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0xa0], r14
mov qword [rbp + 0xa8], send
test rdi, rdi
je 0x140040b5d
test r15, r15
je 0x140040b5d
test rbx, rbx
je 0x140040b5d
test rsi, rsi
je 0x140040b5d
test r12, r12
je 0x140040b5d
lea rdx, [rbp + 0xd0]
mov ebx, 0x105
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov ecx, ebx
lea rax, [rbp + 0xd0]
cmp word [rax], 0
je 0x140040153
add rax, 2
sub rcx, 1
jne 0x140040143
mov rax, rbx
sub rax, rcx
test rcx, rcx
cmove rax, r14
je 0x1400401af
sub rbx, rax
lea rcx, [rbp + 0xd0]
lea rcx, [rcx + rax*2]
je 0x1400401a0
mov eax, 0x7ffffffe
lea r8, str._cn_temptypefile.typ
sub r8, rcx
test rax, rax
je 0x1400401a0
movzx edx, word [r8 + rcx]
test dx, dx
je 0x1400401a0
mov word [rcx], dx
add rcx, 2
dec rax
sub rbx, 1
jne 0x140040181
lea rax, [rcx - 2]
test rbx, rbx
cmovne rax, rcx
mov word [rax], r14w
lea r8, [rbp + 0xd0]
mov rdx, rdi
call fcn.140040d10
test eax, eax
je 0x140040b5d
mov r8d, 0x20
lea rdx, [rbp + 0xd0]
lea rcx, [rbp - 0x80]
call fcn.140042300
cmp qword [rbp + 0x10], 0
jne 0x1400401f5
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x140040b5d
mov rsi, 0xffffffffffffffff
mov r8d, esi
lea edx, [rsi + 3]
lea rcx, [rbp - 0x80]
call fcn.1400424d0
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x80]
add rcx, rax
mov dl, 0xa
call fcn.140043390
movzx r8d, al
lea rdx, [rbp + 0x90]
lea rcx, [rbp - 0x80]
call fcn.140043780
mov r8d, esi
lea edx, [rsi + 2]
lea rcx, [rbp - 0x80]
call fcn.1400424d0
mov r8, qword [rbp + 0xa0]
cmp r8, 0xfff
jbe 0x14004026f
lea rcx, [rbp - 0x80]
call fcn.140042260
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x140040b5d
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], 0x10
cmovae rdx, qword [rbp + 0x90]
lea rcx, [rbp + 0x2e0]
call fcn.1401e7770
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x140040c3b
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x2e0]
cmp rax, 0x10000
jae 0x1400402de
lea rax, [rbp + 0x2e0]
movzx edx, ax
lea rcx, [rsp + 0x20]
call fcn.1400041d0
jmp 0x14004030f
lea rcx, [rbp + 0x2e0]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400402f0
mov r8d, eax
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
call fcn.140004e60
nop
mov rax, qword [rsp + 0x20]
mov eax, dword [rax - 0x10]
dec eax
cdqe
xor ecx, ecx
mov byte [rbp + rax*2 + 0x2e0], cl
movabs rax, 0x4f004e00410043
cmp qword [rbp + 0x2e0], rax
jne 0x140040b1f
movabs rax, 0x49004c0047004e
cmp qword [rbp + 0x2e8], rax
jne 0x140040b1f
cmp word [rbp + 0x2f0], 0x50
jne 0x140040b1f
mov rbx, qword [rbp - 0x80]
movsxd rax, dword [rbx + 4]
test byte [rbp + rax - 0x70], 1
jne 0x14004077b
mov edi, ecx
cmp dword [rsp + 0x38], 0
je 0x140040399
test edi, edi
je 0x140040399
cmp dword [rsp + 0x3c], 0
je 0x140040399
cmp dword [rsp + 0x40], 0
je 0x140040399
cmp dword [rsp + 0x44], 0
jne 0x14004077b
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x2e0]
call fcn.1401e7e40
movsxd rax, dword [rbx + 4]
lea rcx, [rbp - 0x80]
add rcx, rax
mov dl, 0xa
call fcn.140043390
movzx r8d, al
lea rdx, [rbp + 0x90]
lea rcx, [rbp - 0x80]
call fcn.140043780
mov r8d, esi
mov edx, 1
lea rcx, [rbp - 0x80]
call fcn.1400424d0
mov r8, qword [rbp + 0xa0]
cmp r8, 0xfff
ja 0x140040b1f
lea rdx, [rbp + 0x90]
cmp qword [rbp + 0xa8], 0x10
cmovae rdx, qword [rbp + 0x90]
lea rcx, [rbp + 0x2e0]
call fcn.1401e7770
lea rdx, str.glips.meta_info.type_description.value
lea rcx, [rbp + 0x2e0]
call fcn.1401e7270
lea rcx, [rbp + 0x2e0]
test rax, rax
je 0x1400407b0
mov edx, 0x3d
call fcn.1401e71f4
mov r12, rax
test rax, rax
je 0x140040763
mov dword [rsp + 0x2c], 1
add r12, 2
call fcn.1401bb0c4
test rax, rax
je 0x140040c5c
mov rdx, qword [rax]
mov rcx, rax
mov rax, qword [rdx + 0x18]
call qword [case.0x1400136d6.0]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x30], rdi
mov r13d, r14d
nop word [rax + rax]
movzx r8d, word [r12]
cmp r8w, 0xd
je 0x1400406dc
test r8w, r8w
jne 0x140040629
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x1400404c8
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
jne 0x1400404ec
call fcn.1401bb0c4
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
je 0x140040c51
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
or dword [rsp + 0x28], 1
movsxd r15, dword [rdi - 0x10]
lea r14d, [r15 + 2]
test r14d, r14d
js 0x140040c46
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x140040544
lfence
mov edx, r14d
lea rcx, [rsp + 0x48]
call fcn.140004e00
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
lea rsi, [r15 + r15]
test rsi, rsi
je 0x140040572
test rbx, rbx
jne 0x140040564
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x140040572
mov r8, rsi
mov rdx, rdi
mov rcx, rbx
call fcn.1401e7770
lea rax, [rbx + rsi]
test rax, rax
jne 0x14004058d
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x140040593
mov dword [rax], 0xa000d
cmp r14d, dword [rbx - 0xc]
jg 0x140040c46
mov dword [rbx - 0x10], r14d
xor r14d, r14d
mov word [rbx + r15*2 + 4], r14w
lea rcx, [rbx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140040617
cmp dword [rdi + 0x10], r14d
jl 0x140040606
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140040606
call fcn.140004d00
mov rbx, rax
mov rsi, 0xffffffffffffffff
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x1400405f6
lfence
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
mov rax, qword [r8 + 8]
call qword [case.0x1400136d6.0]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x48]
jmp 0x14004061e
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140004e60
mov rsi, 0xffffffffffffffff
and dword [rsp + 0x28], 0xfffffffe
lea rdx, [rbx - 0x18]
jmp 0x1400406a4
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x68]
call fcn.1400426d0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14004069b
cmp dword [rdi + 0x10], 0
jl 0x14004068c
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14004068c
call fcn.140004d00
mov rbx, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x140040681
lfence
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
mov rax, qword [r8 + 8]
call qword [case.0x1400136d6.0]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14004069b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140004e60
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400406c3
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
add r12, 2
inc r13d
mov rdi, qword [rsp + 0x30]
cmp r13d, 0x200
jl 0x140040490
xor edx, edx
mov r8d, 0x100
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.1401e7e40
mov edx, 0x100
mov rcx, rbx
mov r8, rdi
sub r8, rbx
nop
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x140040723
movzx eax, word [r8 + rcx]
test ax, ax
je 0x140040723
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140040700
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r14w
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140040755
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov r15, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
mov edi, dword [rsp + 0x2c]
mov r12, qword [rsp + 0x50]
mov rbx, qword [rbp - 0x80]
movsxd rax, dword [rbx + 4]
test byte [rbp + rax - 0x70], 1
je 0x140040375
mov r14d, 1
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, r14d
jg 0x140040254
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
jmp 0x140040254
lea rdx, str.glips.meta_info.type_display_name.value
call fcn.1401e7270
lea rcx, [rbp + 0x2e0]
test rax, rax
je 0x14004088f
mov rax, rsi
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400407d0
mov r8d, eax
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
call fcn.140004e60
mov rax, qword [rsp + 0x20]
mov eax, dword [rax - 0x10]
dec eax
cdqe
xor ecx, ecx
mov byte [rbp + rax*2 + 0x2e0], cl
lea edx, [rcx + 0x3d]
lea rcx, [rbp + 0x2e0]
call fcn.1401e71f4
mov r8, rax
test rax, rax
je 0x140040768
mov dword [rsp + 0x38], 1
add r8, 2
xorps xmm0, xmm0
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm0
mov edx, 0x20
mov rcx, r15
sub r8, r15
nop dword [rax]
nop word [rax + rax]
lea rax, [rdx + 0x7fffffde]
test rax, rax
je 0x140040a34
movzx eax, word [r8 + rcx]
test ax, ax
je 0x140040a34
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140040850
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r14w
jmp 0x140040768
lea rdx, str.glips.meta_info.type_icon_id.value
call fcn.1401e7270
lea rcx, [rbp + 0x2e0]
test rax, rax
je 0x14004097b
mov rax, rsi
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400408b0
mov r8d, eax
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
call fcn.140004e60
mov rax, qword [rsp + 0x20]
mov eax, dword [rax - 0x10]
dec eax
cdqe
xor ecx, ecx
mov byte [rbp + rax*2 + 0x2e0], cl
lea edx, [rcx + 0x3d]
lea rcx, [rbp + 0x2e0]
call fcn.1401e71f4
mov r8, rax
test rax, rax
je 0x140040768
mov dword [rsp + 0x3c], 1
add r8, 2
xor eax, eax
mov qword [rbp + 0xb0], rax
mov word [rbp + 0xb8], ax
mov edx, 0xa
lea rcx, [rbp + 0xb0]
lea rax, [rbp + 0xb0]
sub r8, rax
lea rax, [rdx + 0x7ffffff4]
test rax, rax
je 0x140040953
movzx eax, word [r8 + rcx]
test ax, ax
je 0x140040953
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140040930
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r14w
lea rcx, [rbp + 0xb0]
call fcn.1401f2dc0
mov rcx, qword [rsp + 0x78]
mov word [rcx], ax
jmp 0x140040768
lea rdx, str.glips.meta_info.type_version.value
call fcn.1401e7270
lea rcx, [rbp + 0x2e0]
test rax, rax
je 0x140040a48
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400409a0
mov r8d, eax
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
call fcn.140004e60
mov rax, qword [rsp + 0x20]
mov eax, dword [rax - 0x10]
dec eax
cdqe
xor ecx, ecx
mov byte [rbp + rax*2 + 0x2e0], cl
lea edx, [rcx + 0x3d]
lea rcx, [rbp + 0x2e0]
call fcn.1401e71f4
mov r8, rax
test rax, rax
je 0x140040768
mov dword [rsp + 0x40], 1
add r8, 2
xor eax, eax
mov qword [r12], rax
mov word [r12 + 8], ax
mov edx, 0xa
mov rcx, r12
sub r8, r12
lea rax, [rdx + 0x7ffffff4]
test rax, rax
je 0x140040a34
movzx eax, word [r8 + rcx]
test ax, ax
je 0x140040a34
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140040a11
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r14w
jmp 0x140040768
lea rdx, str.glips.meta_info.type_pdlname.value
call fcn.1401e7270
test rax, rax
je 0x140040768
lea rcx, [rbp + 0x2e0]
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140040a70
mov r8d, eax
lea rdx, [rbp + 0x2e0]
lea rcx, [rsp + 0x20]
call fcn.140004e60
mov rax, qword [rsp + 0x20]
mov eax, dword [rax - 0x10]
dec eax
cdqe
xor ecx, ecx
mov byte [rbp + rax*2 + 0x2e0], cl
lea edx, [rcx + 0x3d]
lea rcx, [rbp + 0x2e0]
call fcn.1401e71f4
mov r8, rax
test rax, rax
je 0x140040768
mov dword [rsp + 0x44], 1
add r8, 2
xor eax, eax
mov qword [r13], rax
mov word [r13 + 8], ax
mov edx, 0xa
mov rcx, r13
sub r8, r13
lea rax, [rdx + 0x7ffffff4]
test rax, rax
je 0x140040a34
movzx eax, word [rcx + r8]
test ax, ax
je 0x140040a34
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140040ae0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r14w
jmp 0x140040768
lea rcx, [rbp - 0x80]
call fcn.140042260
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140040b5d
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x140040b9f
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040b99
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040c35
call fcn.1400079c0
nop
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x80], rax
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x7c], edx
lea rcx, [rbp - 0x70]
call fcn.140041fc0
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x80], rax
mov rcx, qword [rbp - 0x80]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x18]
mov dword [rsp + rdx + 0x7c], r8d
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x30], rax
lea rcx, [rbp + 0x30]
call fcn.1401e465c
nop
mov eax, r14d
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.1401e2900
mov rbx, qword [rsp + 0x1430]
add rsp, 0x13f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401ec41c
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80070057
call fcn.140001470
int3
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
int3