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, 0x318
movaps xmmword [rsp + 0x300], xmm6
mov rbx, r9
mov ebp, r8d
mov rsi, rcx
mov r12, 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 0x1400029ab
xor ecx, ecx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x140002879
mov r14d, eax
lea eax, [r14 - 1]
movsxd rcx, eax
mov al, byte [rsp + 0x77]
test al, al
jns 0x14000285a
mov r15, qword [rsp + 0x68]
mov r13, rcx
sub r13, r15
ja 0x140002943
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x68], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov al, byte [rsp + 0x77]
test al, al
js 0x14000288f
lea rdx, [rsp + 0x60]
jmp 0x140002894
movzx r15d, al
mov r13, rcx
sub r13, r15
ja 0x140002936
mov edx, ecx
and dl, 0x7f
lea rax, [rsp + 0x60]
mov byte [rax + 0x17], dl
jmp 0x140002842
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0xf0]
mov dword [rbx], 0xef
jmp 0x1400028b9
mov rdx, qword [rsp + 0x60]
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x140002abd
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, r12
mov rdx, rbx
call fcn.140002590
cmp byte [rbx + 0x1f], 0
jns 0x1400028e9
mov rcx, qword [rsp + 0xf8]
call fcn.14000d0a0
xor eax, eax
mov qword [rsi], rax
movups xmmword [rsi + 8], xmm6
mov qword [rsi + 0x18], rax
cmp byte [rsp + 0x77], 0
jns 0x140002907
mov rcx, qword [rsp + 0x60]
call fcn.14000d0a0
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.14000dc60
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
je 0x14000284f
mov edx, 0xa
jmp 0x14000295d
je 0x14000284f
mov rax, qword [rsp + 0x70]
mov rdx, rax
btr rdx, 0x3f
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, r15
cmp rcx, r13
jb 0x14000339f
test al, al
js 0x140002977
lea rdi, [rsp + 0x60]
jmp 0x14000297c
mov rdi, qword [rsp + 0x60]
lea rcx, [rdi + r15*2]
lea r8, [r13*2]
xor edx, edx
call fcn.1400103d0
add r15, r13
cmp byte [rsp + 0x77], 0
jns 0x140003437
mov qword [rsp + 0x68], r15
lea rax, [rdi + r15*2]
jmp 0x140002846
lea r15, [rsp + 0xf0]
mov r8d, 0x208
mov rcx, r15
mov dl, 0xaa
call fcn.1400103d0
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 [0x14005c6b0]
movaps xmmword [r14], xmm0
mov rcx, r14
mov rdx, r15
call fcn.140039ab0
movzx eax, byte [r14 + 0x17]
test al, al
js 0x140002a0e
and eax, 0x7f
jmp 0x140002a1e
mov rax, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
test rax, rax
je 0x140002a45
add rax, rax
test rax, rax
je 0x140002a45
lea r9, [rax - 2]
cmp word [r14 + rax - 2], 0x5c
mov rax, r9
jne 0x140002a26
cmp r9, 0xfffffffffffffffe
jne 0x1400033da
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, r12
mov rdx, r14
call fcn.140002590
cmp byte [r14 + 0x1f], 0
jns 0x140002a8d
mov rcx, qword [rsp + 0xa8]
call fcn.14000d0a0
xor eax, eax
mov qword [rsi], rax
movups xmmword [rsi + 8], xmm6
mov qword [rsi + 0x18], rax
mov dil, 1
cmp byte [rsp + 0x97], 0
jns 0x140002ab4
mov rcx, qword [rsp + 0x80]
call fcn.14000d0a0
test dil, dil
jne 0x1400028f6
xor eax, eax
mov qword [rsi], rax
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
mov qword [rsi + 0x18], rax
mov qword [rsp + 0xb0], rax
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm6, xmmword [0x14005c6b0]
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.1400036a0
mov rcx, r14
call fcn.14002498c
mov r12, rax
mov al, byte [rsp + 0xb7]
test al, al
js 0x140003369
cmp r12, 0xa
jbe 0x140002be5
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.14000b250
jmp 0x140002c2a
lea r14, [rsp + 0xa0]
test r12, r12
je 0x140002c0f
mov r8, r12
add r8, r12
lea rdx, [rsp + 0xf0]
mov rcx, r14
call fcn.14000fd20
mov al, byte [rsp + 0xb7]
test al, al
js 0x14000335c
mov eax, r12d
and al, 0x7f
mov byte [rsp + 0xb7], al
mov word [r14 + r12*2], 0
movabs r14, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], r14
movaps xmmword [rsp + 0x80], xmm6
lea r8, str.Opera_installer_
lea rdi, [rsp + 0xd0]
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.140003470
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, rdi
call fcn.14000b5c0
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, [0x14005cb60]
mov r8d, 4
mov rcx, r12
call fcn.14000b5c0
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 0x140002cf3
mov rcx, qword [rsp + 0xf0]
call fcn.14000d0a0
cmp byte [rsp + 0xe7], 0
mov rdi, qword [rsp + 0x380]
jns 0x140002d12
mov rcx, qword [rsp + 0xd0]
call fcn.14000d0a0
cmp byte [rsp + 0x97], 0
jns 0x140002d24
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 0x140002f20
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, rdi
mov rdx, rbx
call fcn.140002590
cmp byte [rbx + 0x1f], 0
jns 0x140002da8
mov rcx, qword [rsp + 0xf8]
call fcn.14000d0a0
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
cmp r13, 2
jb 0x140002dcb
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [rsp + 0x97], 0
jns 0x140002de2
mov rcx, qword [rsp + 0x80]
call fcn.14000d0a0
lea rbx, [rsi + 8]
cmp byte [rsp + 0xb7], 0
lea r15, [rsp + 0xd0]
jns 0x140002e05
mov rcx, qword [rsp + 0xa0]
call fcn.14000d0a0
cmp rbx, r15
je 0x140002e3c
cmp byte [rsi + 0x1f], 0
movzx eax, byte [rsp + 0xe7]
js 0x140003331
test al, al
jns 0x140002edd
mov rdx, qword [rsp + 0xd0]
mov r8, qword [rsp + 0xd8]
mov rcx, rbx
call fcn.14000b960
cmp byte [rsp + 0xe7], 0
js 0x140002ef9
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 0x140002eb8
test al, al
jns 0x140002e85
mov r15, qword [rsp + 0xd0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0xe7], 0
jns 0x140002ec9
mov rax, qword [rsp + 0xd0]
mov word [rax], 0
mov qword [rsp + 0xd8], 0
mov al, byte [rsp + 0xe7]
test al, al
jns 0x140002ec9
mov rcx, qword [rsp + 0xd0]
call fcn.14000d0a0
movzx eax, byte [rsi + 0x1f]
test al, al
js 0x140002feb
and eax, 0x7f
jmp 0x140002fef
mov rax, qword [rsp + 0xe0]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rbx], xmm0
jmp 0x140002e3c
mov rax, qword [rsp + 0xd0]
mov word [rax], 0
mov qword [rsp + 0xd8], 0
xor ecx, ecx
mov al, byte [rsp + 0xe7]
jmp 0x140002e66
test ebp, ebp
je 0x140002f7a
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 0x1400032aa
mov eax, dword [rsp + 0xcc]
test eax, eax
je 0x1400032aa
add r14d, eax
cmp r14d, ebp
jne 0x140002f36
xorps xmm0, xmm0
movaps xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xe0], 0
cmp byte [rsp + 0x97], 0
js 0x14000330f
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x100], rax
movaps xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xf0], xmm0
mov rdi, qword [rsp + 0x380]
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0xf0]
call fcn.1400035e0
movabs r14, 0xaaaaaaaaaaaaaaaa
jmp 0x140002dbc
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x140003243
xorps xmm6, xmm6
movups xmmword [rsp + 0xf8], xmm6
mov qword [rsp + 0x108], 0
lea rcx, [0x14005cb14]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0xf0], rax
test rax, rax
je 0x14000309c
lea rdx, str.SetDefaultDllDirectories
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xa0], r14
movups xmmword [rsp + 0xa8], xmm6
mov qword [rsp + 0xb8], 0
test rax, rax
je 0x140003145
mov ecx, 0x800
call qword [0x140071008]
test eax, eax
je 0x1400030e6
lea rcx, str.version.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r14, rax
test rax, rax
jne 0x140003148
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [rsp + 0x80]
mov dword [rbx], 0x93
jmp 0x1400030fa
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 0x1400031df
mov rcx, qword [rsp + 0xa8]
call fcn.14000d0a0
jmp 0x1400031df
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 0x14000316c
mov rcx, qword [rsp + 0x88]
call fcn.14000d0a0
jmp 0x14000316c
cmp qword [rsp + 0xb0], 0
je 0x1400031bf
mov rcx, qword [rsp + 0xa8]
jmp 0x14000318c
xor r14d, r14d
cmp byte [rsi + 0x1f], 0
jns 0x140003152
mov rbx, qword [rsi + 8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsi], rax
test r14, r14
je 0x14000316c
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0xa0], 0
cmp byte [rsp + 0xbf], 0
js 0x14000312c
je 0x1400031cc
lea rcx, [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0xbf], 0
jns 0x1400031cc
mov rax, qword [rsp + 0xa8]
mov word [rax], 0
mov qword [rsp + 0xb0], 0
cmp byte [rsp + 0xbf], 0
jns 0x1400031cc
mov rcx, qword [rsp + 0xa8]
call fcn.14000d0a0
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x1400031df
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsp + 0xf0], 0
cmp byte [rsp + 0x10f], 0
js 0x140003292
je 0x140003243
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [rsp + 0x10f], 0
jns 0x140003243
mov rax, qword [rsp + 0xf8]
mov word [rax], 0
mov qword [rsp + 0x100], 0
cmp byte [rsp + 0x10f], 0
jns 0x140003243
mov rcx, qword [rsp + 0xf8]
call fcn.14000d0a0
cmp qword [rsi], 0
jne 0x1400028f6
lea rbx, [rsp + 0xf0]
mov qword [rbx], 0x108
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 0x1400028f6
mov rcx, qword [rsp + 0xf8]
call fcn.14000d0a0
jmp 0x1400028f6
cmp qword [rsp + 0x100], 0
je 0x140003236
mov rcx, qword [rsp + 0xf8]
jmp 0x140003203
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 rdi, qword [rsp + 0x380]
mov rcx, rdi
mov rdx, rbx
call fcn.140002590
cmp byte [rbx + 0x1f], 0
jns 0x1400032f6
mov rcx, qword [rsp + 0xf8]
call fcn.14000d0a0
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
jmp 0x140002fdc
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rcx, [rsp + 0xf0]
call fcn.14000b4c0
jmp 0x140002fbf
mov r8d, eax
and r8d, 0x7f
test al, al
cmovs r8, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xd0]
cmovns rdx, r15
mov rcx, rbx
call fcn.14000b870
jmp 0x140002e3c
mov qword [rsp + 0xa8], r12
jmp 0x140002c23
mov rax, qword [rsp + 0xb0]
mov rdx, rax
btr rdx, 0x3f
dec rdx
cmp rdx, r12
jb 0x140003392
shr rax, 0x38
mov r14, qword [rsp + 0xa0]
jmp 0x140002bed
mov r9, qword [rsp + 0xa8]
jmp 0x140002bb8
mov r8, r13
sub r8, rdx
add r8, r15
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r15
mov rdi, r12
lea r12, [rsp + 0x60]
mov rcx, r12
mov r9, r15
call fcn.14000bd00
mov qword [r12 + 8], r15
mov al, byte [r12 + 0x17]
mov r12, rdi
jmp 0x14000296c
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.14000b730
cmp byte [rsp + 0x77], 0
jns 0x140003416
mov rcx, qword [rsp + 0x60]
call fcn.14000d0a0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x60], xmm0
xor edi, edi
jmp 0x140002a9d
mov eax, r15d
and al, 0x7f
mov byte [rsp + 0x77], al
jmp 0x1400029a2