Function at 0x140015aca
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
mov rsi, r9
mov r12, r8
mov r13, rdx
mov r15, rcx
lea rbp, str.src_firefox_firefox.rs
mov edx, 1
mov rcx, r13
mov r8, rbp
call fcn.140067a18
mov rcx, rax
xor edx, edx
mov r8, rbp
call fcn.140067a18
mov rcx, qword [rax + 0x30]
add rcx, 0xfffffffffffffff7
cmp rcx, 1
ja 0x140015e1a
mov qword [rsp + 0x28], rsi
lea rcx, [rsp + 0x38]
mov rdx, rax
call fcn.1400546d1
lea rax, [0x1403b5f31]
lea rsi, [rsp + 0x240]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x8d25c219c13be341
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.14020499b
pxor xmm0, xmm0
movdqa xmmword [rsi], xmm0
mov r9b, 1
xor r14d, r14d
lea r10, [0x1403be6f8]
movzx r8d, byte [r14 + r10]
mov rcx, r14
or rcx, 1
movzx esi, byte [rcx + r10]
mov rcx, r14
or rcx, 2
movzx r11d, byte [rcx + r10]
mov rcx, r14
or rcx, 3
movzx ebx, byte [rcx + r10]
mov rcx, r14
or rcx, 4
movzx ecx, byte [rcx + r10]
mov rdi, r14
or rdi, 5
movzx ebp, byte [rdi + r10]
mov rdi, r14
or rdi, 6
mov rdx, r14
or rdx, 7
movzx edi, byte [rdi + r10]
movzx edx, byte [rdx + r10]
shl rdx, 0x38
shl rdi, 0x30
or rdi, rdx
shl rbp, 0x28
shl rcx, 0x20
shl rbx, 0x18
shl r11, 0x10
shl rsi, 8
or rsi, r8
or rsi, r11
or rsi, rbx
or rsi, rcx
or rsi, rbp
or rsi, rdi
xor rsi, qword [rax + r14]
mov qword [rsp + r14 + 0x240], rsi
mov r14d, 8
test r9b, 1
mov r9d, 0
jne 0x140015b70
movzx eax, word [rax + 0x10]
xor eax, 0xb56e
mov word [rsp + 0x250], ax
cmp qword [rsp + 0x48], 0x12
jne 0x140015c72
mov rax, qword [rsp + 0x40]
movdqu xmm0, xmmword [rax]
movzx eax, word [rax + 0x10]
movzx ecx, word [rsp + 0x250]
movd xmm1, eax
movd xmm2, ecx
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmmword [rsp + 0x240]
pand xmm0, xmm2
pmovmskb eax, xmm0
cmp eax, 0xffff
sete sil
jmp 0x140015c74
xor esi, esi
cmp qword [rsp + 0x38], 0
je 0x140015c90
mov r8, qword [rsp + 0x40]
mov rcx, qword [0x14051f200]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_HeapFree]
test sil, sil
je 0x140015e14
lea rbp, str.src_firefox_firefox.rs
mov edx, 1
mov rcx, r13
mov r8, rbp
call fcn.140067a18
mov edx, 1
mov rcx, rax
mov r8, rbp
call fcn.140067a18
mov rcx, qword [rax + 0x30]
lea rdx, [rcx - 2]
cmp rcx, 2
mov ecx, 0x1b
cmovae rcx, rdx
cmp rcx, 0x1b
ja 0x140015e1a
mov edx, 0x9c3fe1c
bt rdx, rcx
jae 0x140015e1a
mov rbx, qword [rax]
mov rsi, qword [rax + 8]
lea r8, str.src_firefox_firefox.rs
mov edx, 2
mov rcx, r13
call fcn.140067a18
mov rcx, qword [rax + 0x30]
lea rdx, [rcx - 2]
cmp rcx, 2
mov ecx, 0x1b
cmovae rcx, rdx
cmp rcx, 0x1b
ja 0x140015e1a
mov edx, 0x9c3fe1c
bt rdx, rcx
jae 0x140015e1a
mov rdx, qword [rsp + 0x28]
cmp rdx, 0x17
jbe 0x140015f8f
cmp rsi, 8
jne 0x140015e14
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
lea rsi, [rsp + 0x40]
mov rdx, qword [r12]
bswap rdx
lea r13, [rsp + 0x3c8]
mov rcx, r13
call fcn.140069727
mov rdx, qword [r12 + 8]
bswap rdx
lea r14, [rsp + 0x1c0]
mov rcx, r14
call fcn.140069727
mov rdx, qword [r12 + 0x10]
bswap rdx
lea rbp, [rsp + 0x140]
mov rcx, rbp
call fcn.140069727
mov ecx, 0x10
mov rdx, rsi
mov rdi, rsi
mov rsi, r13
rep movsq qword [rdi], qword [rsi]
lea rdi, [rsp + 0xc0]
mov ecx, 0x10
mov rsi, r14
rep movsq qword [rdi], qword [rsi]
lea rsi, [rsp + 0x240]
mov r8d, 0x180
mov rcx, rsi
call fcn.1403abad0
mov rcx, rbx
call fcn.140005854
mov rdi, rax
lea rcx, [rsp + 0x38]
mov r8d, 0x180
mov rdx, rsi
call fcn.1403abad0
mov qword [rbp + 0x78], rdi
mov rdi, qword [rsp + 0x28]
test dil, 7
je 0x140015e37
mov byte [r15], 0x15
jmp 0x140015e23
mov byte [r15], 0x14
mov byte [r15 + 8], 0
add rsp, 0x448
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rsp + 0x1b8]
mov rcx, rdi
xor edx, edx
call fcn.14027db2d
mov rbx, rax
mov r12, rdx
mov rcx, rdx
mov rdx, qword [rsp + 0x30]
mov r8, rdi
call fcn.1403abad0
mov rcx, rsi
call fcn.140005854
mov qword [rsp + 0x1c0], rax
cmp rdi, 7
jbe 0x140015f38
mov qword [rsp + 0x30], rbx
and rdi, 0xfffffffffffffff8
mov rsi, r12
add rsi, rdi
lea r13, [rsp + 0x138]
lea r14, [rsp + 0x38]
mov rdi, r12
mov rcx, rdi
call fcn.140005854
mov rbp, rax
mov rdx, qword [rdi]
bswap rdx
mov rcx, r13
call fcn.140069d69
mov rcx, rax
call fcn.140069a29
mov ebx, 0x80
mov rdx, qword [rsp + rbx + 0x38]
mov rcx, rax
call fcn.140069b51
add rbx, 8
cmp rbx, 0x100
jne 0x140015ebe
lea rbx, [rdi + 8]
rol rax, 0x20
mov rcx, rax
call fcn.140069abc
mov rcx, r14
mov rdx, rax
call fcn.140069d69
bswap rax
mov qword [rdi], rax
xor eax, eax
mov cl, byte [rsp + rax + 0x1c0]
xor byte [rdi + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp rcx, 8
jne 0x140015efb
mov qword [rsp + 0x1c0], rbp
mov rdi, rbx
cmp rbx, rsi
jne 0x140015e98
mov qword [rsp + 0x1b8], rbp
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
test rdi, rdi
je 0x140015f6b
movzx eax, byte [rdi + r12 - 1]
xor ecx, ecx
mov rdx, rdi
sub rdx, rax
cmovae rcx, rdx
cmp rdi, rcx
cmovb rcx, rdi
mov qword [r15 + 8], rbx
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], rcx
mov byte [r15], 0x18
jmp 0x140015e23
mov byte [r15], 0x15
test rbx, rbx
je 0x140015e23
mov rcx, qword [0x14051f200]
xor edx, edx
mov r8, r12
call qword [sym.imp.KERNEL32.DLL_HeapFree]
jmp 0x140015e23
lea r8, str.src_firefox_firefox.rs
mov ecx, 0x18
call fcn.1403af940
ud2