Function at 0x1400b38f0
Capabilities:
Delete file
Get common file path
Get startup folder

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x710
mov qword [rsp + 0xe8], 0xfffffffffffffffe
mov rax, qword [0x14011d8d0]
xor rax, rsp
mov qword [rsp + 0x700], rax
mov qword [rsp + 0x80], r9
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xc0], rdx
mov rsi, rcx
mov qword [rsp + 0x40], rcx
mov rax, qword [rsp + 0x770]
mov qword [rsp + 0x78], rax
mov r15, qword [rsp + 0x778]
mov r14, qword [rsp + 0x780]
mov rax, qword [rsp + 0x788]
mov qword [rsp + 0xc8], rax
mov r12d, 0x80004005
mov dword [rsp + 0x38], r12d
mov dword [rax], r12d
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa8], rax
xor eax, eax
mov word [rsp + 0x4f0], ax
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x4f2]
call sub.MSVCR100.dll_memset
xor r9d, r9d
lea r8d, [r9 + 0x23]
lea rdx, [rsp + 0x4f0]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1400b442d
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x4f0]
lea rax, [rsp + 0x4f0]
test rax, 0xffffffffffff0000
jne 0x1400b3a33
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x1400b3a2a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140001f70
or r13, 0xffffffffffffffff
jmp 0x1400b3b45
xor eax, eax
or r13, 0xffffffffffffffff
mov rcx, r13
lea rdi, [rsp + 0x4f0]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x1400b3ab2
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x1400b3b45
cmp dword [rdx + 0x10], eax
jge 0x1400b3a84
cmp dword [rbx - 0xc], eax
jge 0x1400b3a79
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x1400b3b45
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b3a9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
jmp 0x1400b3b45
mov r12d, dword [rbx - 0x10]
lea rsi, [rsp + 0x4f0]
sub rsi, rbx
sar rsi, 1
test ecx, ecx
jns 0x1400b3ad3
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1400b3af5
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140001c20
mov rbx, qword [rsp + 0x30]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp rsi, r12
lea r12, [rax + rax]
mov r9, r12
ja 0x1400b3b1a
lea r8, [rbx + rsi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x1400b3b28
lea r8, [rsp + 0x4f0]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp edi, dword [rbx - 0xc]
jg 0x1400b4422
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [r12 + rbx], ax
mov rsi, qword [rsp + 0x40]
mov r12d, dword [rsp + 0x38]
mov r8d, Ordinal_32
lea rdx, str.Sony_CorporationVAIO_Update
lea rcx, [rsp + 0x30]
call fcn.140003c10
lea r8, [0x1400ddd20]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.140002ce0
nop
mov r8, qword [rsp + 0xc0]
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.140002ce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x30]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400b3bee
cmp dword [rdi + 0x10], 0
jl 0x1400b3bdf
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b3bdf
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b3bd4
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x1400b3bee
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140001e80
nop
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b3c12
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b3c35
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r8d, 4
lea rdx, str..xml
lea rcx, [rsp + 0x30]
call fcn.140003c10
mov dword [rsp + 0x48], r12d
lea rcx, [rsp + 0x310]
call fcn.140063e60
nop
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9b, 1
movzx r8d, r9b
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x310]
call fcn.140063a40
test al, al
je 0x1400b43db
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x98], rax
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0xf0]
call fcn.140048570
nop
lea rdx, [rsp + 0xf0]
mov rcx, rsi
call fcn.1400b1ed0
lea rcx, [rsp + 0x250]
call fcn.1400ac1c0
nop
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x310]
call fcn.140062540
mov rdx, qword [rsp + 0x280]
lea rcx, [rdx - 0x18]
mov rdi, qword [r15]
sub rdi, 0x18
cmp rcx, rdi
je 0x1400b3d62
cmp dword [rdi + 0x10], 0
jl 0x1400b3d56
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b3d56
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b3d4d
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [r15], rax
jmp 0x1400b3d62
mov r8d, dword [rdx - 0x10]
mov rcx, r15
call fcn.140001e80
mov rdx, qword [rsp + 0x288]
lea rcx, [rdx - 0x18]
mov rdi, qword [r14]
sub rdi, 0x18
cmp rcx, rdi
je 0x1400b3dbf
cmp dword [rdi + 0x10], 0
jl 0x1400b3db3
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b3db3
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b3daa
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [r14], rax
jmp 0x1400b3dbf
mov r8d, dword [rdx - 0x10]
mov rcx, r14
call fcn.140001e80
mov rdx, qword [rsp + 0x2c8]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x180]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400b3e2b
cmp dword [rdi + 0x10], 0
jl 0x1400b3e1a
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b3e1a
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b3e0c
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x180], rax
jmp 0x1400b3e2b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x180]
call fcn.140001e80
mov rdx, qword [rsp + 0x268]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x120]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400b3e97
cmp dword [rdi + 0x10], 0
jl 0x1400b3e86
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b3e86
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b3e78
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x120], rax
jmp 0x1400b3e97
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x120]
call fcn.140001e80
lea r8, [rsp + 0x230]
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x310]
call fcn.140063670
mov r14, qword [rsp + 0xa0]
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.140002710
nop
mov r11, qword [rsp + 0x218]
mov rdi, qword [r11 + 8]
mov r9, r11
xor r15d, r15d
mov rax, qword [rsp + 0x70]
cmp byte [rdi + 0x29], r15b
jne 0x1400b3f43
mov r10d, r15d
test rax, rax
setne r10b
test r10d, r10d
je 0x1400b3f3a
mov rcx, qword [rdi + 0x18]
mov r8, rax
sub r8, rcx
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x1400b3f18
add rcx, 2
test dx, dx
jne 0x1400b3f00
mov ecx, r15d
jmp 0x1400b3f1d
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
sets cl
test cl, cl
je 0x1400b3f2c
mov rdi, qword [rdi + 0x10]
jmp 0x1400b3f32
mov r9, rdi
mov rdi, qword [rdi]
cmp byte [rdi + 0x29], r15b
je 0x1400b3ef1
jmp 0x1400b3f43
mov ecx, r12d
call fcn.140001000
int3
mov qword [rsp + 0x88], r9
cmp r9, r11
je 0x1400b3f9f
mov rdi, qword [r9 + 0x18]
mov ecx, r15d
test rdi, rdi
setne cl
test ecx, ecx
jne 0x1400b3f6a
mov ecx, r12d
call fcn.140001000
int3
mov rcx, rax
sub rdi, rax
movzx edx, word [rcx]
cmp dx, word [rcx + rdi]
jne 0x1400b3f87
add rcx, 2
test dx, dx
jne 0x1400b3f70
mov ecx, r15d
jmp 0x1400b3f8c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
sets cl
test cl, cl
jne 0x1400b3f9f
lea rdi, [rsp + 0x88]
jmp 0x1400b3faf
mov qword [rsp + 0xb0], r11
lea rdi, [rsp + 0xb0]
mov rdi, qword [rdi]
lea rdx, [rax - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b3fcd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
cmp rdi, qword [rsp + 0x218]
je 0x1400b3fea
lea rdx, [rdi + 0x20]
mov rcx, qword [rsp + 0x80]
call fcn.140002250
jmp 0x1400b404f
mov rdx, qword [rsp + 0x250]
lea rcx, [rdx - 0x18]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsi]
sub rdi, 0x18
cmp rcx, rdi
je 0x1400b404f
cmp dword [rdi + 0x10], 0
jl 0x1400b4043
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b4043
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b403a
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsi], rax
jmp 0x1400b404f
mov r8d, dword [rdx - 0x10]
mov rcx, rsi
call fcn.140001e80
mov rdx, r14
lea rcx, [rsp + 0x40]
call fcn.140002710
nop
mov r11, qword [rsp + 0x238]
mov rdi, qword [r11 + 8]
mov r9, r11
mov rax, qword [rsp + 0x40]
cmp byte [rdi + 0x29], 0
jne 0x1400b40d3
mov r10d, r15d
test rax, rax
setne r10b
test r10d, r10d
je 0x1400b40ca
mov rcx, qword [rdi + 0x18]
mov r8, rax
sub r8, rcx
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x1400b40a8
add rcx, 2
test dx, dx
jne 0x1400b4090
mov ecx, r15d
jmp 0x1400b40ad
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
sets cl
test cl, cl
je 0x1400b40bc
mov rdi, qword [rdi + 0x10]
jmp 0x1400b40c2
mov r9, rdi
mov rdi, qword [rdi]
cmp byte [rdi + 0x29], 0
je 0x1400b4081
jmp 0x1400b40d3
mov ecx, r12d
call fcn.140001000
int3
mov qword [rsp + 0xd0], r9
cmp r9, r11
je 0x1400b412f
mov rdi, qword [r9 + 0x18]
mov ecx, r15d
test rdi, rdi
setne cl
test ecx, ecx
jne 0x1400b40fa
mov ecx, r12d
call fcn.140001000
int3
mov rcx, rax
sub rdi, rax
movzx edx, word [rcx]
cmp dx, word [rcx + rdi]
jne 0x1400b4117
add rcx, 2
test dx, dx
jne 0x1400b4100
mov ecx, r15d
jmp 0x1400b411c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
sets cl
test cl, cl
jne 0x1400b412f
lea rdi, [rsp + 0xd0]
jmp 0x1400b413f
mov qword [rsp + 0xe0], r11
lea rdi, [rsp + 0xe0]
mov rdi, qword [rdi]
lea rdx, [rax - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b415d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
cmp rdi, qword [rsp + 0x238]
je 0x1400b4177
lea rdx, [rdi + 0x20]
mov rcx, qword [rsp + 0x78]
call fcn.140002250
jmp 0x1400b41d9
mov rdx, qword [rsp + 0x258]
lea rcx, [rdx - 0x18]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsi]
sub rdi, 0x18
cmp rcx, rdi
je 0x1400b41d9
cmp dword [rdi + 0x10], 0
jl 0x1400b41cd
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b41cd
call fcn.140001b90
mov rbx, rax
mov ecx, r13d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400b41c4
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsi], rax
jmp 0x1400b41d9
mov r8d, dword [rdx - 0x10]
mov rcx, rsi
call fcn.140001e80
lea rdx, [rsp + 0x3c]
lea rcx, [rsp + 0x58]
call fcn.140022b40
nop
mov dword [rsp + 0x50], r15d
mov edx, 1
lea rcx, [rsp + 0x310]
call fcn.140061c60
mov r12d, eax
mov esi, r15d
test eax, eax
jle 0x1400b42ee
movabs r14, 0x7fffffffffffffe
nop dword [rax + rax]
lea r9, [rsp + 0x50]
mov r8d, esi
mov edx, 1
lea rcx, [rsp + 0x310]
call fcn.140063540
mov rdi, qword [rsp + 0x1f8]
lea r9, [rsp + 0x50]
mov r8, qword [rdi + 8]
mov rdx, rdi
lea rcx, [rsp + 0x1f8]
call fcn.14002bc10
mov rcx, r14
mov rdx, qword [rsp + 0x200]
sub rcx, rdx
cmp rcx, 1
jb 0x1400b42e0
inc rdx
mov qword [rsp + 0x200], rdx
mov qword [rdi + 8], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x58]
mov rbx, qword [rax]
mov qword [rax], rax
mov rax, qword [rsp + 0x58]
mov qword [rax + 8], rax
mov qword [rsp + 0x60], r15
cmp rbx, qword [rsp + 0x58]
je 0x1400b42ce
nop word [rax + rax]
mov rdi, qword [rbx]
lea rcx, [rbx + 0x10]
call fcn.140022a30
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov rbx, rdi
cmp rdi, qword [rsp + 0x58]
jne 0x1400b42b0
mov dword [rsp + 0x50], r15d
inc esi
cmp esi, r12d
jl 0x1400b4220
jmp 0x1400b42ee
lea rcx, str.list_T__too_long
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea r9, [rsp + 0x1f8]
mov r8, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x180]
lea rcx, [rsp + 0x3d]
call fcn.140088e70
cmp eax, 1
jne 0x1400b4320
mov rax, qword [rsp + 0xc8]
mov dword [rax], r15d
mov dword [rsp + 0x38], r15d
mov rax, qword [rsp + 0x58]
mov rbx, qword [rax]
mov qword [rax], rax
mov rax, qword [rsp + 0x58]
mov qword [rax + 8], rax
mov qword [rsp + 0x60], r15
mov rcx, qword [rsp + 0x58]
cmp rbx, rcx
je 0x1400b4371
nop dword [rax + rax]
mov rdi, qword [rbx]
lea rcx, [rbx + 0x10]
call fcn.140022a30
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov rbx, rdi
mov rcx, qword [rsp + 0x58]
cmp rdi, rcx
jne 0x1400b4350
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
nop
lea rcx, [rsp + 0x250]
call fcn.1400ac430
nop
lea rcx, [rsp + 0xf0]
call fcn.14002be60
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b43b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b43db
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop
jmp 0x1400b43ed
lea rcx, [rsp + 0x310]
call fcn.140064220
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b441b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r12d, dword [rsp + 0x38]
jmp 0x1400b4431
mov ecx, 0x80070057
call fcn.140001000
nop
or r13, 0xffffffffffffffff
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x1400b4454
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, r12d
mov rcx, qword [rsp + 0x700]
xor rcx, rsp
call fcn.1400cafa0
add rsp, 0x710
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret