Function at 0x14039aac0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov rbx, rdx
mov rsi, rcx
lea r15, [r8 + 1]
pxor xmm0, xmm0
movdqa xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
lea rcx, [0x14042de64]
movsxd rax, dword [0x14042de64]
mov r13, rax
not r13
mov rdx, r13
and rdx, rcx
or r13, rcx
not r13
or r13, rdx
and rax, rcx
add rax, rax
mov ecx, dword [0x140536380]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14039ab50
mov ecx, dword [0x140536380]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x14039ab5e
nop word cs:[rax + rax]
cmp dword [0x140523d88], 0x71b19dfd
jne 0x14039ab50
jmp 0x14039ab32
add r13, rax
xor eax, eax
test al, al
jne 0x14039ab79
mov r12d, dword [0x14042de68]
mov eax, dword [0x140536384]
cmp eax, 0x37
jl 0x14039ab81
mov eax, dword [0x14042de68]
jmp 0x14039ab67
movabs rdx, 0x323b2c05678d826d
test r15, r15
je 0x14039abf9
js 0x14039ae1f
mov qword [rbp - 8], rsi
mov rax, qword [0x140523d90]
mov rcx, rax
xor rcx, rdx
and rax, rdx
lea rax, [rcx + rax*2]
cmp r15, rax
jbe 0x14039ac10
mov rsi, r8
lea rcx, [r8 + 0x28]
mov r9d, dword [0x140523d88]
lea edx, [r9 + 0x79484c70]
lea r8d, [r9 - 0x1837cb11]
add r9d, 0xf2e37189
call fcn.1400a83d0
lea rcx, [rax + 0x27]
mov r14d, ecx
not r14d
xor rcx, 0xffffffffffffffe0
and r14d, 0x1f
or r14, rcx
not r14
mov qword [r14 - 8], rax
jmp 0x14039ac2f
test rbx, rbx
je 0x14039ae31
mov r14, qword [rbp - 0x20]
test r14, r14
jne 0x14039ac7d
jmp 0x14039ae31
mov rsi, r8
mov rcx, r15
mov edx, 0xeaf9ea6d
mov r8d, 0x5979d2ec
mov r9d, 0x64950f86
call fcn.1400a83d0
mov r14, rax
mov qword [rbp - 0x20], r14
lea rdi, [r14 + r15]
mov qword [rbp - 0x10], rdi
mov rcx, r14
xor edx, edx
mov r8, r15
call fcn.1403e40c0
mov qword [rbp - 0x18], rdi
test rbx, rbx
setne al
test r14, r14
setne cl
xor cl, al
mov rax, rbx
or rax, r14
sete al
or al, cl
cmp al, 1
mov r8, rsi
mov rsi, qword [rbp - 8]
je 0x14039ae31
test r8, r8
je 0x14039ae24
xor eax, eax
cmp r8, 8
jb 0x14039b147
mov rdx, r14
sub rdx, rbx
movabs rcx, 0x323b2c05678d728e
mov r9, qword [0x140523d90]
add r9, rcx
cmp rdx, r9
jb 0x14039b147
add rcx, qword [0x140523d90]
mov qword [rbp - 8], r8
cmp r8, rcx
setb al
or al, byte [0x140532a38]
mov edx, dword [0x140536368]
lea ecx, [rdx + 1]
mov dword [0x140536368], ecx
mov r8d, edx
not r8d
mov r9d, r8d
and r9d, ecx
not ecx
and edx, ecx
or edx, r9d
and ecx, r8d
or ecx, edx
xor ecx, 0xffffffff
je 0x14039acf3
xor edx, edx
jmp 0x14039ad00
xor r8d, r8d
mov edx, 0
test r12d, r12d
jg 0x14039ad11
xor r8d, r8d
test r8b, r8b
je 0x14039af64
jmp 0x14039af79
xor r9d, r9d
xor edx, edx
jmp 0x14039ad25
cmp r9d, r12d
jge 0x14039ad00
mov r10d, dword [0x140536384]
nop dword [rax]
mov r10d, dword [0x140536380]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
jne 0x14039ad30
movsxd r10, r9d
mov r11d, dword [0x140536380]
mov edi, r11d
not edi
imul edi, r11d
test dil, 1
mov r11d, dword [0x140536384]
cmp r11d, 0xa
jg 0x14039ad5c
add r10, r13
test r8b, r8b
jne 0x14039ada0
nop word cs:[rax + rax]
movzx r11d, word [r10]
mov edi, dword [0x140536380]
lea r15d, [rdi - 1]
imul r15d, edi
test r15b, 1
je 0x14039adc0
nop dword [rax + rax]
movzx r11d, word [r10]
mov r11d, dword [0x140536384]
cmp r11d, 0x49
jge 0x14039ada0
jmp 0x14039ad80
xor edx, r11d
add r9d, 0xdd637ddb
mov r10d, r9d
xor r10d, 2
and r9d, 2
lea r9d, [r10 + r9*2]
add r9d, 0x229c8225
mov r10d, dword [0x140536384]
cmp r10d, 0x14
jge 0x14039ae10
nop dword [rax]
mov r10d, dword [0x140536380]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x14039ad20
nop dword [rax]
mov r10d, dword [0x140536384]
cmp r10d, 0x17
jge 0x14039ae10
jmp 0x14039adf0
call fcn.140245a60
movzx eax, byte [0x140523d98]
add al, 0x28
mov byte [r14 + r8], al
movsxd r8, r8d
mov rdx, qword [rbp - 0x20]
lea rax, [rsi + 8]
mov qword [rbp - 8], rax
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0xf
mov byte [rsi + 8], 0
lea rax, [0x1403fe9c8]
mov qword [rsi], rax
mov rcx, rsi
call fcn.140244900
cmp byte [0x140531658], 0
jne 0x14039af4b
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x14039af4b
mov rdx, qword [rbp - 0x10]
sub rdx, rcx
movabs rax, 0x323b2c05678d826d
add rax, qword [0x140523d90]
cmp rdx, rax
jbe 0x14039af31
mov rax, qword [rcx - 8]
mov r8, rcx
xor r8, 0xfffffffffffffff8
mov r9, rcx
not r9
movabs r10, 0x7ffffffffffffff8
and r10, r9
and ecx, 7
or rcx, r10
and r9d, 7
or r9, rcx
not r9
lea rcx, [r8 + r9*2]
mov r8, rax
sub r8, rcx
movabs rcx, 0xd65b175e5459e284
sub rcx, r8
mov r9, qword [0x140523d90]
movabs r10, 0x5be014a713338fea
add r10, r9
movabs r11, 0x29a4e8a1aba61d7b
add r11, r8
movabs r8, 0xa41feb58eccc7015
sub r8, r9
and r11, r10
and r8, rcx
or r8, r11
and r10, rcx
lea rcx, [r8 + r10*2]
cmp rcx, 0x20
jae 0x14039af5f
add rdx, 0x27
mov rcx, rax
mov r9d, dword [0x140523d88]
lea r8d, [r9 - 0x3a20b620]
add r9d, 0xc7be8838
call fcn.1400a6550
mov rax, rsi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14039c09c
mov r8d, dword [0x140536380]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x14039af87
mov r8b, 1
nop dword [rax]
test r8b, r8b
je 0x14039af80
jmp 0x14039af64
test al, 1
mov r8, qword [rbp - 8]
je 0x14039af96
xor eax, eax
jmp 0x14039b0dd
mov rax, qword [0x140523d90]
movabs r10, 0x323b2c05678d724e
xor r10, rax
not rax
movabs r9, 0x4dc4d3fa98728db1
and r9, rax
or r9, r10
not r9
lea rax, [r10 + r9*2]
and rax, r8
mov r9d, 0x20
movdqa xmm0, xmmword [0x14042de10]
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rbx + r9 - 0x20]
movdqu xmm2, xmmword [rbx + r9 - 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r14 + r9 - 0x20], xmm1
movdqu xmmword [r14 + r9 - 0x10], xmm2
cmp rax, r9
je 0x14039b00f
add r9, 0x20
jmp 0x14039afe0
cmp rax, r8
je 0x14039ae24
movzx r8d, word [0x14042de50]
cmp dword [0x140523d88], 0x71b19dfd
jne 0x14039b050
xor r9d, r9d
test ecx, ecx
setne r10b
mov r11d, dword [0x140536384]
cmp r11d, 0xa
jl 0x14039b067
nop word cs:[rax + rax]
mov r9d, dword [0x140536380]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x14039b050
jmp 0x14039b02c
mov r9b, r10b
movzx ecx, r9w
mov r9d, ecx
not r9d
lea ecx, [r9 + rcx*2]
sub r8d, edx
and r8d, ecx
mov ecx, dword [0x140536384]
cmp ecx, 0x40
nop word [rax + rax]
test r8w, r8w
setne cl
or cl, byte [0x140531658]
and cl, 1
mov byte [0x140531658], cl
mov ecx, dword [0x140536380]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140523d88]
mov r9d, ecx
xor r9d, 0x8e4e6203
and ecx, 0xe4e6203
lea ecx, [r9 + rcx*2]
cmp edx, ecx
jne 0x14039b090
mov r8, qword [rbp - 8]
test r8b, 0x18
je 0x14039b147
mov rcx, rax
movabs rax, 0x323b2c05678d7266
add rax, qword [0x140523d90]
xor rax, r8
not rax
and rax, r8
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [0x14042de40]
movabs rdx, 0x323b2c05678d7276
movq xmm2, qword [rbx + rcx]
movdqa xmm3, xmm2
pand xmm3, xmm1
por xmm2, xmm1
pxor xmm2, xmm0
por xmm2, xmm3
movq qword [r14 + rcx], xmm2
add rcx, qword [0x140523d90]
add rcx, rdx
cmp rcx, rax
jne 0x14039b110
cmp rax, r8
je 0x14039ae24
mov rcx, rax
not rcx
mov rdx, rcx
xor rdx, r8
and rcx, r8
lea rcx, [rdx + rcx*2]
mov rdx, r8
not rdx
mov r9, r8
xor r9, 3
and rdx, 0xfffffffffffffffc
or rdx, r9
xor rdx, 0xffffffffffffffff
je 0x14039b1a3
inc rax
xor r10d, r10d
nop word [rax + rax]
movzx r9d, byte [0x140523d98]
add r9b, 0x8f
xor r9b, byte [rbx + rax - 1]
mov byte [r14 + rax - 1], r9b
inc r10
cmp r10, rdx
je 0x14039b1a3
inc rax
jmp 0x14039b180
movabs rdx, 0x323b2c05678d7271
add rdx, qword [0x140523d90]
cmp rcx, rdx
jb 0x14039ae24
lea rcx, [r8 - 4]
nop word cs:[rax + rax]
movzx edx, byte [rbx + rax]
xor dl, 0x67
mov byte [r14 + rax], dl
movzx edx, byte [rbx + rax + 1]
xor dl, 0x67
mov byte [r14 + rax + 1], dl
movzx edx, byte [rbx + rax + 2]
movzx r10d, byte [0x140523d98]
add r10b, 0x8f
not dl
mov r9d, edx
and r9b, r10b
or dl, r10b
not dl
or dl, r9b
mov byte [r14 + rax + 2], dl
movzx edx, byte [rbx + rax + 3]
xor dl, 0x67
mov byte [r14 + rax + 3], dl
cmp rcx, rax
je 0x14039ae24
add rax, 4
jmp 0x14039b1d0