Function at 0x1400027b0
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, 0x328
movaps xmmword [rsp + 0x310], xmm7
movaps xmmword [rsp + 0x300], xmm6
mov rbx, r9
mov ebp, r8d
mov rsi, rcx
mov r13, qword [rsp + 0x390]
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 0x140002975
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14000284e
mov r14d, eax
lea eax, [r14 - 1]
movsxd r12, eax
test r12d, r12d
jne 0x14000290d
lea r15, [rsp + 0x60]
mov byte [r15 + 0x17], r12b
mov word [r15 + r12*2], 0
cmp byte [rsp + 0x77], 0
js 0x140002864
lea rdx, [rsp + 0x60]
jmp 0x140002869
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0xef
jmp 0x14000288e
mov rdx, qword [rsp + 0x60]
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x140002a81
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.140002590
cmp byte [rbx + 0x1f], 0
jns 0x1400028be
mov rcx, qword [rsp + 0xf8]
call fcn.14000cf20
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
cmp byte [rsp + 0x77], 0
jns 0x1400028d6
mov rcx, qword [rsp + 0x60]
call fcn.14000cf20
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.14000dae0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x300]
movaps xmm7, xmmword [rsp + 0x310]
add rsp, 0x328
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, 0xb
jae 0x14000293a
lea r15, [rsp + 0x60]
lea r8, [r12 + r12]
mov rcx, r15
xor edx, edx
call fcn.140010250
cmp byte [rsp + 0x77], 0
jns 0x140002ba2
mov qword [rsp + 0x68], r12
jmp 0x140002839
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.14000bad0
mov qword [r15 + 8], rdi
cmp byte [r15 + 0x17], 0
jns 0x140002917
mov r15, qword [rsp + 0x60]
jmp 0x140002917
lea r15, [rsp + 0xf0]
mov r8d, 0x208
mov rcx, r15
mov dl, 0xaa
call fcn.140010250
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.140039860
movzx eax, byte [r14 + 0x17]
test al, al
js 0x1400029d8
and eax, 0x7f
jmp 0x1400029e8
mov rax, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
test rax, rax
je 0x140002a0f
add rax, rax
test rax, rax
je 0x140002a0f
lea r9, [rax - 2]
cmp word [r14 + rax - 2], 0x5c
mov rax, r9
jne 0x1400029f0
cmp r9, 0xfffffffffffffffe
jne 0x140003245
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.140002590
cmp byte [r14 + 0x1f], 0
jns 0x140002a57
mov rcx, qword [rsp + 0xa8]
call fcn.14000cf20
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
mov dil, 1
cmp byte [rsp + 0x97], 0
jns 0x140002a78
mov rcx, qword [rsp + 0x80]
call fcn.14000cf20
test dil, dil
jne 0x1400028c5
xorps xmm6, xmm6
movups xmmword [rsi + 0x10], xmm6
movups xmmword [rsi], xmm6
xor eax, eax
lea r12, [rsp + 0xa0]
mov qword [r12 + 0x10], rax
movaps xmmword [r12], xmm6
movaps xmm7, xmmword [0x14005c610]
lea r15, [rsp + 0x80]
movaps xmmword [r15], xmm7
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
lea r14, [rsp + 0xf0]
movaps xmmword [r14 + 0x20], xmm7
movaps xmmword [r14 + 0x10], xmm7
movaps xmmword [r14], xmm7
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 r13d, word [r15]
mov r9d, r13d
shr r9d, 2
imul r9d, r9d, 0x147b
shr r9d, 0x11
imul r9d, r9d, 0x64
sub r13d, r9d
movzx r9d, r13w
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.140003530
mov rcx, r12
mov rdx, r14
call fcn.14000b320
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r15 + 0x10], rax
movaps xmmword [r15], xmm7
lea r8, str.Opera_installer_
lea r14, [rsp + 0xd0]
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.1400032f0
movzx r8d, byte [r12 + 0x17]
test r8b, r8b
js 0x140002cd9
and r8d, 0x7f
jmp 0x140002ce9
mov eax, r12d
and al, 0x7f
mov byte [rsp + 0x77], al
jmp 0x140002839
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 + 0x390]
mov rdx, rbx
call fcn.140002590
cmp byte [rbx + 0x1f], 0
lea r14, [rsp + 0xd0]
jns 0x140002e10
jmp 0x140002e03
test ebp, ebp
je 0x140002c57
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 0x140002bb0
mov eax, dword [rsp + 0xcc]
test eax, eax
je 0x140002bb0
add r14d, eax
cmp r14d, ebp
jne 0x140002c13
xorps xmm0, xmm0
movaps xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xe0], 0
cmp byte [rsp + 0x97], 0
js 0x140002cba
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.140003470
jmp 0x140002e24
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rcx, [rsp + 0xf0]
call fcn.14000b160
jmp 0x140002c98
mov r8, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xa0]
mov rcx, r14
mov rdx, r12
call fcn.14000b350
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
movups xmmword [rax], xmm6
lea rdx, [0x14005cae8]
mov r8d, 4
mov rcx, r12
call fcn.14000b350
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 0x140002d5e
mov rcx, qword [rsp + 0xf0]
call fcn.14000cf20
cmp byte [rsp + 0xe7], 0
jns 0x140002d75
mov rcx, qword [rsp + 0xd0]
call fcn.14000cf20
cmp byte [rsp + 0x97], 0
jns 0x140002d87
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 0x140002bfd
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 + 0x390]
mov rdx, rbx
call fcn.140002590
cmp byte [rbx + 0x1f], 0
jns 0x140002e10
mov rcx, qword [rsp + 0xf8]
call fcn.14000cf20
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
cmp r13, 2
jb 0x140002e33
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [rsp + 0x97], 0
mov rdi, qword [rsp + 0x390]
jns 0x140002e52
mov rcx, qword [rsp + 0x80]
call fcn.14000cf20
lea rbx, [rsi + 8]
cmp byte [rsp + 0xb7], 0
jns 0x140002e6d
mov rcx, qword [rsp + 0xa0]
call fcn.14000cf20
cmp rbx, r14
je 0x140002ea4
cmp byte [rsi + 0x1f], 0
movzx eax, byte [rsp + 0xe7]
js 0x1400032a2
test al, al
jns 0x140002f3e
mov rdx, qword [rsp + 0xd0]
mov r8, qword [rsp + 0xd8]
mov rcx, rbx
call fcn.14000b700
cmp byte [rsp + 0xe7], 0
js 0x140002f5a
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 0x140002f20
test al, al
jns 0x140002eed
mov r14, qword [rsp + 0xd0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0xe7], 0
jns 0x140002f31
mov rax, qword [rsp + 0xd0]
mov word [rax], 0
mov qword [rsp + 0xd8], 0
mov al, byte [rsp + 0xe7]
test al, al
jns 0x140002f31
mov rcx, qword [rsp + 0xd0]
call fcn.14000cf20
movzx eax, byte [rsi + 0x1f]
test al, al
js 0x140002f81
and eax, 0x7f
jmp 0x140002f85
mov rax, qword [rsp + 0xe0]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rbx], xmm0
jmp 0x140002ea4
mov rax, qword [rsp + 0xd0]
mov word [rax], 0
mov qword [rsp + 0xd8], 0
xor ecx, ecx
mov al, byte [rsp + 0xe7]
jmp 0x140002ece
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x14000317c
xorps xmm6, xmm6
movups xmmword [rsp + 0xf8], xmm6
mov qword [rsp + 0x108], 0
lea rcx, [0x14005ca9c]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0xf0], rax
test rax, rax
je 0x1400030b2
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 0x140003029
mov ecx, 0x800
call qword [0x140071008]
test eax, eax
je 0x1400030f5
lea rcx, str.version.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r14, rax
test rax, rax
jne 0x14000302c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0x80]
mov dword [rbx], 0x93
jmp 0x140003109
xor r14d, r14d
cmp byte [rsi + 0x1f], 0
jns 0x140003036
mov rbx, qword [rsi + 8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsi], rax
test r14, r14
je 0x140003139
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov al, byte [rsp + 0xbf]
mov qword [rsp + 0xa0], 0
test al, al
js 0x14000309a
je 0x140003139
lea rcx, [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0xbf], 0
js 0x140003211
mov byte [rsp + 0xbf], 0
jmp 0x140003139
cmp qword [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xa8]
jne 0x140003079
jmp 0x140003134
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.140002590
cmp byte [rbx + 0x1f], 0
jns 0x14000314c
mov rcx, qword [rsp + 0xa8]
call fcn.14000cf20
jmp 0x14000314c
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.140002590
cmp byte [rbx + 0x1f], 0
jns 0x140003139
mov rcx, qword [rsp + 0x88]
call fcn.14000cf20
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x14000314c
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0xf0], 0
cmp byte [rsp + 0x10f], 0
js 0x1400031c6
je 0x14000317c
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0x10f], 0
js 0x1400031e0
cmp qword [rsi], 0
jne 0x1400028c5
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.140002590
cmp byte [rbx + 0x1f], 0
jns 0x1400028c5
mov rcx, qword [rsp + 0xf8]
call fcn.14000cf20
jmp 0x1400028c5
cmp qword [rsp + 0x100], 0
mov rcx, qword [rsp + 0xf8]
jne 0x14000316c
call fcn.14000cf20
jmp 0x14000317c
mov rax, qword [rsp + 0xf8]
mov word [rax], 0
mov qword [rsp + 0x100], 0
cmp byte [rsp + 0x10f], 0
jns 0x14000317c
mov rcx, qword [rsp + 0xf8]
jmp 0x1400031d9
mov rax, qword [rsp + 0xa8]
mov word [rax], 0
mov qword [rsp + 0xb0], 0
cmp byte [rsp + 0xbf], 0
jns 0x140003139
mov rcx, qword [rsp + 0xa8]
jmp 0x140003134
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.14000b4c0
cmp byte [rsp + 0x77], 0
jns 0x140003281
mov rcx, qword [rsp + 0x60]
call fcn.14000cf20
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x60], xmm0
xor edi, edi
jmp 0x140002a61
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.14000b610
jmp 0x140002ea4