Function at 0x140002920
Capabilities:
Delete file
Get common file path
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
movaps xmmword [rsp + 0x300], xmm6
mov rbx, r9
mov ebp, r8d
mov rsi, rcx
mov r13, qword [rsp + 0x380]
mov rax, qword [0x140068028]
xor rax, rsp
mov qword [rsp + 0x2f8], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
test edx, edx
jne 0x140002ad5
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x1400029b6
mov r14d, eax
lea eax, [r14 - 1]
movsxd r12, eax
test r12d, r12d
jne 0x140002a6d
lea r15, [rsp + 0x60]
mov byte [r15 + 0x17], r12b
mov word [r15 + r12*2], 0
cmp byte [rsp + 0x77], 0
js 0x1400029cc
lea rdx, [rsp + 0x60]
jmp 0x1400029d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0xef
jmp 0x1400029f6
mov rdx, qword [rsp + 0x60]
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x140002be1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0xf4
mov dword [rbx + 4], eax
xorps xmm6, xmm6
movups xmmword [rbx + 8], xmm6
mov qword [rbx + 0x18], 0
mov rcx, r13
mov rdx, rbx
call fcn.140002700
cmp byte [rbx + 0x1f], 0
jns 0x140002a26
mov rcx, qword [rsp + 0xf8]
call fcn.14000d2f0
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
cmp byte [rsp + 0x77], 0
jns 0x140002a3e
mov rcx, qword [rsp + 0x60]
call fcn.14000d2f0
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.14000deb0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x300]
add rsp, 0x318
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, 0xb
jae 0x140002a9a
lea r15, [rsp + 0x60]
lea r8, [r12 + r12]
mov rcx, r15
xor edx, edx
call fcn.140010620
cmp byte [rsp + 0x77], 0
jns 0x140003488
mov qword [rsp + 0x68], r12
jmp 0x1400029a1
lea r8, [r12 - 0xa]
xor edi, edi
mov qword [rsp + 0x30], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea r15, [rsp + 0x60]
mov edx, 0xa
mov rcx, r15
xor r9d, r9d
call fcn.14000bd90
mov qword [r15 + 8], rdi
cmp byte [r15 + 0x17], 0
jns 0x140002a77
mov r15, qword [rsp + 0x60]
jmp 0x140002a77
lea r15, [rsp + 0xf0]
mov r8d, 0x208
mov rcx, r15
mov dl, 0xaa
call fcn.140010620
xor ecx, ecx
mov rdx, r15
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x80]
mov qword [r14 + 0x10], rax
movaps xmm0, xmmword [0x14005c610]
movaps xmmword [r14], xmm0
mov rcx, r14
mov rdx, r15
call fcn.140039c30
movzx eax, byte [r14 + 0x17]
test al, al
js 0x140002b38
and eax, 0x7f
jmp 0x140002b48
mov rax, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
test rax, rax
je 0x140002b6f
add rax, rax
test rax, rax
je 0x140002b6f
lea r9, [rax - 2]
cmp word [r14 + rax - 2], 0x5c
mov rax, r9
jne 0x140002b50
cmp r9, 0xfffffffffffffffe
jne 0x140003496
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r14, [rsp + 0xa0]
mov dword [r14], 0xfe
mov dword [r14 + 4], eax
xorps xmm6, xmm6
movups xmmword [r14 + 8], xmm6
mov qword [r14 + 0x18], 0
mov rcx, r13
mov rdx, r14
call fcn.140002700
cmp byte [r14 + 0x1f], 0
jns 0x140002bb7
mov rcx, qword [rsp + 0xa8]
call fcn.14000d2f0
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
mov dil, 1
cmp byte [rsp + 0x97], 0
jns 0x140002bd8
mov rcx, qword [rsp + 0x80]
call fcn.14000d2f0
test dil, dil
jne 0x140002a2d
xorps xmm0, xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi], xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
movaps xmm6, xmmword [0x14005c610]
lea r15, [rsp + 0x80]
movaps xmmword [r15], xmm6
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
lea r14, [rsp + 0xf0]
movaps xmmword [r14 + 0x20], xmm6
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
mov dword [r14 + 0x30], 0xaaaaaaaa
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
movzx ecx, word [r15 + 0xe]
movzx edx, word [r15 + 0xc]
movzx r8d, word [r15 + 0xa]
movzx r10d, word [r15 + 8]
movzx r11d, word [r15 + 6]
movzx edi, word [r15 + 2]
movzx r9d, word [r15]
mov r12d, r9d
shr r12d, 2
imul r12d, r12d, 0x147b
shr r12d, 0x11
imul r12d, r12d, 0x64
sub r9d, r12d
movzx r9d, r9w
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], edi
lea r8, str._02d_02d_02d_02d_02d_02d_03d_d
mov edx, 0x1a
mov rcx, r14
call fcn.140003760
mov rcx, r14
call fcn.140024bdc
mov r12, rax
mov al, byte [rsp + 0xb7]
test al, al
js 0x140002d0d
cmp r12, 0xa
jbe 0x140002d3d
movzx r9d, al
mov edx, 0xa
mov r8, r12
sub r8, rdx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0xa0]
call fcn.14000b320
jmp 0x140002d7e
mov r9, qword [rsp + 0xa8]
jmp 0x140002cd6
mov rax, qword [rsp + 0xb0]
mov rdx, rax
btr rdx, 0x3f
dec rdx
cmp rdx, r12
jb 0x140002d03
shr rax, 0x38
mov r14, qword [rsp + 0xa0]
jmp 0x140002d45
mov qword [rsp + 0xa8], r12
jmp 0x140002d77
lea r14, [rsp + 0xa0]
test r12, r12
je 0x140002d67
mov r8, r12
add r8, r12
lea rdx, [rsp + 0xf0]
mov rcx, r14
call fcn.14000ff70
mov al, byte [rsp + 0xb7]
test al, al
js 0x140002d33
mov eax, r12d
and al, 0x7f
mov byte [rsp + 0xb7], al
mov word [r14 + r12*2], 0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
movaps xmmword [rsp + 0x80], xmm6
lea r8, str.Opera_installer_
lea r14, [rsp + 0xd0]
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.140003520
lea rdx, [rsp + 0xa0]
movzx eax, byte [rdx + 0x17]
mov r8d, eax
and r8d, 0x7f
test al, al
cmovs r8, qword [rdx + 8]
cmovs rdx, qword [rdx]
mov rcx, r14
call fcn.14000b6b0
movups xmm0, xmmword [rax]
lea r12, [rsp + 0xf0]
movaps xmmword [r12], xmm0
mov rcx, qword [rax + 0x10]
mov qword [r12 + 0x10], rcx
xor edi, edi
mov qword [rax + 0x10], rdi
xorps xmm6, xmm6
movups xmmword [rax], xmm6
lea rdx, [0x14005cac0]
mov r8d, 4
mov rcx, r12
call fcn.14000b6b0
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x80], xmm0
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x90], rcx
mov qword [rax + 0x10], rdi
movups xmmword [rax], xmm6
cmp byte [r12 + 0x17], 0
jns 0x140002e47
mov rcx, qword [rsp + 0xf0]
call fcn.14000d2f0
cmp byte [rsp + 0xe7], 0
jns 0x140002e5e
mov rcx, qword [rsp + 0xd0]
call fcn.14000d2f0
cmp byte [rsp + 0x97], 0
jns 0x140002e70
mov r15, qword [rsp + 0x80]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
mov rcx, r15
mov edx, 0x40000000
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
mov r13, rax
inc r13
cmp r13, 2
jae 0x140003071
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0xbe
mov dword [rbx + 4], eax
xorps xmm6, xmm6
movups xmmword [rbx + 8], xmm6
mov qword [rbx + 0x18], 0
mov rcx, qword [rsp + 0x380]
mov rdx, rbx
call fcn.140002700
cmp byte [rbx + 0x1f], 0
jns 0x140002ef9
mov rcx, qword [rsp + 0xf8]
call fcn.14000d2f0
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
cmp r13, 2
jb 0x140002f1c
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [rsp + 0x97], 0
mov rdi, qword [rsp + 0x380]
jns 0x140002f3b
mov rcx, qword [rsp + 0x80]
call fcn.14000d2f0
lea rbx, [rsi + 8]
cmp byte [rsp + 0xb7], 0
jns 0x140002f56
mov rcx, qword [rsp + 0xa0]
call fcn.14000d2f0
cmp rbx, r14
je 0x140002f8d
cmp byte [rsi + 0x1f], 0
movzx eax, byte [rsp + 0xe7]
js 0x14000345d
test al, al
jns 0x14000302e
mov rdx, qword [rsp + 0xd0]
mov r8, qword [rsp + 0xd8]
mov rcx, rbx
call fcn.14000ba60
cmp byte [rsp + 0xe7], 0
js 0x14000304a
mov word [rsp + 0xd0], 0
mov byte [rsp + 0xe7], 0
mov rcx, qword [rsp + 0xd8]
xor eax, eax
mov edx, eax
and dl, 0x7f
test al, al
movzx edx, dl
cmovs rdx, rcx
test rdx, rdx
je 0x140003009
test al, al
jns 0x140002fd6
mov r14, qword [rsp + 0xd0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0xe7], 0
jns 0x14000301a
mov rax, qword [rsp + 0xd0]
mov word [rax], 0
mov qword [rsp + 0xd8], 0
mov al, byte [rsp + 0xe7]
test al, al
jns 0x14000301a
mov rcx, qword [rsp + 0xd0]
call fcn.14000d2f0
movzx eax, byte [rsi + 0x1f]
test al, al
js 0x140003177
and eax, 0x7f
jmp 0x14000317b
mov rax, qword [rsp + 0xe0]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rbx], xmm0
jmp 0x140002f8d
mov rax, qword [rsp + 0xd0]
mov word [rax], 0
mov qword [rsp + 0xd8], 0
xor ecx, ecx
mov al, byte [rsp + 0xe7]
jmp 0x140002fb7
test ebp, ebp
je 0x1400030c3
xor r14d, r14d
lea r12, [rsp + 0xcc]
mov rdi, qword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [rsp + 0xcc], 0xaaaaaaaa
mov r8d, ebp
sub r8d, r14d
mov qword [rsp + 0x20], 0
mov rcx, r15
mov rdx, rbx
mov r9, r12
call rdi
test eax, eax
je 0x14000312a
mov eax, dword [rsp + 0xcc]
test eax, eax
je 0x14000312a
add r14d, eax
cmp r14d, ebp
jne 0x140003087
xorps xmm0, xmm0
movaps xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xe0], 0
cmp byte [rsp + 0x97], 0
js 0x14000343b
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x100], rax
movaps xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xf0], xmm0
lea r14, [rsp + 0xd0]
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0xf0]
call fcn.1400036a0
jmp 0x140002f0d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0xc7
mov dword [rbx + 4], eax
xorps xmm6, xmm6
movups xmmword [rbx + 8], xmm6
mov qword [rbx + 0x18], 0
mov rcx, qword [rsp + 0x380]
mov rdx, rbx
call fcn.140002700
cmp byte [rbx + 0x1f], 0
lea r14, [rsp + 0xd0]
jns 0x140002ef9
jmp 0x140002eec
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x140003372
xorps xmm6, xmm6
movups xmmword [rsp + 0xf8], xmm6
mov qword [rsp + 0x108], 0
lea rcx, [0x14005ca74]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0xf0], rax
test rax, rax
je 0x1400032a8
lea rdx, str.SetDefaultDllDirectories
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
test rax, rax
je 0x14000321f
mov ecx, 0x800
call qword [0x140071008]
test eax, eax
je 0x1400032eb
lea rcx, str.version.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r14, rax
test rax, rax
jne 0x140003222
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0x80]
mov dword [rbx], 0x93
jmp 0x1400032ff
xor r14d, r14d
cmp byte [rsi + 0x1f], 0
jns 0x14000322c
mov rbx, qword [rsi + 8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsi], rax
test r14, r14
je 0x14000332f
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov al, byte [rsp + 0xbf]
mov qword [rsp + 0xa0], 0
test al, al
js 0x140003290
je 0x14000332f
lea rcx, [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0xbf], 0
js 0x140003407
mov byte [rsp + 0xbf], 0
jmp 0x14000332f
cmp qword [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xa8]
jne 0x14000326f
jmp 0x14000332a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xa0]
mov dword [rbx], 0x79
mov dword [rbx + 4], eax
movups xmmword [rbx + 8], xmm6
mov qword [rbx + 0x18], 0
mov rcx, rdi
mov rdx, rbx
call fcn.140002700
cmp byte [rbx + 0x1f], 0
jns 0x140003342
mov rcx, qword [rsp + 0xa8]
call fcn.14000d2f0
jmp 0x140003342
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0x80]
mov dword [rbx], 0x88
mov dword [rbx + 4], eax
xorps xmm0, xmm0
movups xmmword [rbx + 8], xmm0
mov qword [rbx + 0x18], 0
mov rcx, rdi
mov rdx, rbx
call fcn.140002700
cmp byte [rbx + 0x1f], 0
jns 0x14000332f
mov rcx, qword [rsp + 0x88]
call fcn.14000d2f0
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x140003342
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0xf0], 0
cmp byte [rsp + 0x10f], 0
js 0x1400033bc
je 0x140003372
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0x10f], 0
js 0x1400033d6
cmp qword [rsi], 0
jne 0x140002a2d
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0x108
xorps xmm0, xmm0
movups xmmword [rbx + 4], xmm0
movups xmmword [rbx + 0x10], xmm0
mov rcx, rdi
mov rdx, rbx
call fcn.140002700
cmp byte [rbx + 0x1f], 0
jns 0x140002a2d
mov rcx, qword [rsp + 0xf8]
call fcn.14000d2f0
jmp 0x140002a2d
cmp qword [rsp + 0x100], 0
mov rcx, qword [rsp + 0xf8]
jne 0x140003362
call fcn.14000d2f0
jmp 0x140003372
mov rax, qword [rsp + 0xf8]
mov word [rax], 0
mov qword [rsp + 0x100], 0
cmp byte [rsp + 0x10f], 0
jns 0x140003372
mov rcx, qword [rsp + 0xf8]
jmp 0x1400033cf
mov rax, qword [rsp + 0xa8]
mov word [rax], 0
mov qword [rsp + 0xb0], 0
cmp byte [rsp + 0xbf], 0
jns 0x14000332f
mov rcx, qword [rsp + 0xa8]
jmp 0x14000332a
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rcx, [rsp + 0xf0]
call fcn.14000b5a0
jmp 0x140003108
mov r8d, eax
and r8d, 0x7f
test al, al
cmovs r8, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xd0]
cmovns rdx, r14
mov rcx, rbx
call fcn.14000b970
jmp 0x140002f8d
mov eax, r12d
and al, 0x7f
mov byte [rsp + 0x77], al
jmp 0x1400029a1
sar r9, 1
inc r9
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x80]
xor r8d, r8d
call fcn.14000b820
cmp byte [rsp + 0x77], 0
jns 0x1400034d2
mov rcx, qword [rsp + 0x60]
call fcn.14000d2f0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x60], xmm0
xor edi, edi
jmp 0x140002bc1