Function at 0x140234890
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x40]
mov eax, 0x140
call fcn.14024e1d0
sub rsp, rax
mov rax, qword [0x140371698]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x90]
mov rdi, qword [rbp + 0xa0]
mov qword [rbp - 0x60], rax
mov rax, qword [rbp + 0x98]
mov qword [rbp - 0x58], rax
mov eax, 0x200
mov qword [rbp - 0x70], rcx
xor ecx, ecx
cmp edx, eax
mov qword [rbp - 0x80], rdi
mov esi, ecx
mov dword [rsp + 0x30], ecx
cmovl edx, eax
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x78], 2
lea eax, [rdx + 0x3f]
cdq
and edx, 0x3f
lea ebx, [rdx + rax]
mov eax, 0x14
and ebx, 0xffffffc0
cmp r9d, 0x14
cmovl r8, rcx
cmp r9d, eax
mov qword [rbp - 0x68], r8
cmovg r9d, eax
mov dword [rsp + 0x44], r9d
test r8, r8
je 0x14023493e
cmp r9d, eax
jne 0x14023493e
movups xmm0, xmmword [r8]
mov eax, dword [r8 + 0x10]
mov dword [rbp - 0x10], eax
movups xmmword [rbp - 0x20], xmm0
call fcn.140235150
mov qword [rsp + 0x38], rax
mov r14, rax
test rax, rax
je 0x140234efa
call fcn.14023b2e0
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140234ed8
mov qword [rsp + 0x138], r12
mov rcx, r14
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x128], r15
call fcn.1402351d0
mov rcx, r14
call fcn.1402350c0
mov rcx, r14
mov rsi, rax
call fcn.1402350c0
mov rcx, r14
mov qword [rsp + 0x50], rax
call fcn.1402350c0
mov rcx, r14
mov r12, rax
call fcn.1402350c0
mov rcx, r14
mov qword [rsp + 0x70], rax
call fcn.1402350c0
mov rcx, r14
mov r13, rax
call fcn.1402350c0
mov rcx, r14
mov qword [rbp - 0x78], rax
call fcn.1402350c0
mov rcx, r14
mov qword [rsp + 0x60], rax
call fcn.1402350c0
dec ebx
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x48], ebx
mov r15, rax
call fcn.14022fc30
mov rdx, rax
mov r8d, ebx
mov rcx, r15
call fcn.14023cf00
test eax, eax
je 0x140234ebc
nop dword [rax]
mov r14, qword [rsp + 0x70]
xor r15d, r15d
nop dword [rax + rax]
mov ebx, dword [rsp + 0x40]
xor edx, edx
mov r8d, ebx
mov rcx, rdi
call fcn.14023c970
inc ebx
mov dword [rsp + 0x40], ebx
test eax, eax
je 0x140234fe9
cmp dword [rsp + 0x44], r15d
jne 0x140234a5b
mov edx, 0x14
lea rcx, [rbp - 0x20]
call fcn.140227c70
mov ebx, 1
jmp 0x140234a63
mov ebx, r15d
mov dword [rsp + 0x44], r15d
mov eax, dword [rbp - 0x10]
movups xmm0, xmmword [rbp - 0x20]
mov dword [rbp - 0x40], eax
mov dword [rbp + 8], eax
mov eax, 0x13
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 8], xmm0
nop dword [rax]
add byte [rbp + rax - 0x50], 1
jne 0x140234aa9
add byte [rbp + rax - 0x51], 1
jne 0x140234aa9
add byte [rbp + rax - 0x52], 1
jne 0x140234aa9
add byte [rbp + rax - 0x53], 1
jne 0x140234aa9
add byte [rbp + rax - 0x54], 1
jne 0x140234aa9
sub rax, 5
jns 0x140234a80
call fcn.14023d900
xor r9d, r9d
mov qword [rsp + 0x28], r15
lea r8, [rbp - 0x38]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x20]
lea edx, [r9 + 0x14]
call fcn.14023d3d0
call fcn.14023d900
xor r9d, r9d
mov qword [rsp + 0x28], r15
lea r8, [rbp - 8]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x50]
lea edx, [r9 + 0x14]
call fcn.14023d3d0
movdqu xmm1, xmmword [rbp - 0x38]
mov rcx, r15
mov edx, 4
movdqu xmm0, xmmword [rbp - 8]
pxor xmm1, xmm0
movdqu xmmword [rbp - 0x38], xmm1
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 8]
xor byte [rbp + rcx - 0x28], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140234b10
or byte [rbp - 0x38], 0x80
lea rcx, [rbp - 0x38]
or byte [rbp - 0x25], 1
mov r8, r14
mov edx, 0x14
call fcn.14022f320
test rax, rax
je 0x140234fe9
mov r9d, ebx
mov qword [rsp + 0x20], rdi
mov rbx, qword [rsp + 0x38]
mov edx, 0x32
mov r8, rbx
mov rcx, r14
call fcn.14023c9d0
test eax, eax
jg 0x140234b77
je 0x140234a20
mov r14, rbx
mov esi, r15d
jmp 0x140234ec0
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 2]
call fcn.14023c970
test eax, eax
je 0x140234b6c
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 3]
call fcn.14023c970
test eax, eax
je 0x140234b6c
mov eax, 0x66666667
imul dword [rsp + 0x48]
mov r14d, edx
sar r14d, 6
mov eax, r14d
shr eax, 0x1f
add r14d, eax
test r15d, r15d
je 0x140234bd0
mov r8d, r15d
xor edx, edx
mov rcx, rdi
call fcn.14023c970
test eax, eax
je 0x140234eb7
xor edx, edx
mov rcx, r12
call fcn.14022fb50
xor eax, eax
mov edi, eax
test r14d, r14d
js 0x140234ca1
mov ebx, eax
nop dword [rax]
mov eax, 0x13
add byte [rbp + rax - 0x50], 1
jne 0x140234c1e
add byte [rbp + rax - 0x51], 1
jne 0x140234c1e
add byte [rbp + rax - 0x52], 1
jne 0x140234c1e
add byte [rbp + rax - 0x53], 1
jne 0x140234c1e
add byte [rbp + rax - 0x54], 1
jne 0x140234c1e
sub rax, 5
jns 0x140234bf5
call fcn.14023d900
xor r9d, r9d
mov qword [rsp + 0x28], 0
lea r8, [rbp - 0x38]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x50]
lea edx, [r9 + 0x14]
call fcn.14023d3d0
mov r8, rsi
lea rcx, [rbp - 0x38]
mov edx, 0x14
call fcn.14022f320
test rax, rax
je 0x140234eb7
mov r8d, ebx
mov rdx, rsi
mov rcx, rsi
call fcn.14023cf00
test eax, eax
je 0x140234eb7
mov r8, rsi
mov rdx, r12
mov rcx, r12
call fcn.140239bc0
test eax, eax
je 0x140234eb7
inc edi
add ebx, 0xa0
cmp edi, r14d
jle 0x140234bf0
mov rbx, qword [rsp + 0x38]
mov edx, dword [rsp + 0x48]
mov rcx, r12
call fcn.14022f840
test eax, eax
je 0x140234eb7
mov rdx, r12
mov rcx, r13
call fcn.14022f640
test rax, rax
je 0x140234eb7
mov r8, qword [rsp + 0x68]
mov rdx, r13
mov rcx, r13
call fcn.140239bc0
test eax, eax
je 0x140234eb7
mov rdx, qword [rsp + 0x70]
mov rcx, rsi
call fcn.14023d080
test eax, eax
je 0x140234eb7
mov rdi, qword [rbp - 0x78]
mov r9, rsi
mov rdx, rdi
mov qword [rsp + 0x20], rbx
mov r8, r13
xor ecx, ecx
call fcn.140239ff0
test eax, eax
je 0x140234eb7
call fcn.14022fc30
mov r8, rax
mov rdx, rdi
mov rcx, rsi
call fcn.140239c70
test eax, eax
je 0x140234eb7
mov rdi, qword [rsp + 0x60]
mov r8, rsi
mov rcx, rdi
mov rdx, r13
call fcn.140239c70
test eax, eax
je 0x140234eb7
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call fcn.14022f5a0
mov rdi, qword [rbp - 0x80]
test eax, eax
js 0x140234d88
mov rcx, qword [rsp + 0x60]
mov r9d, 1
mov r8, rbx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x31]
call fcn.14023c9d0
test eax, eax
jg 0x140234d9d
jne 0x140234eb7
inc r15d
cmp r15d, 0x1000
jl 0x140234bb6
jmp 0x140234a10
mov edx, 2
mov rcx, rdi
lea r8d, [rdx - 1]
call fcn.14023c970
test eax, eax
je 0x140234eb7
call fcn.14022fc30
mov r14, qword [rsp + 0x60]
mov r8, rax
mov r12, qword [rsp + 0x68]
mov rdx, r14
mov rcx, r12
call fcn.140239c70
test eax, eax
je 0x140234eb7
mov r13, qword [rsp + 0x70]
mov r8, r12
mov r9, r13
mov qword [rsp + 0x20], rbx
xor edx, edx
mov rcx, rsi
call fcn.140239ff0
test eax, eax
je 0x140234eb7
mov edx, 2
mov rcx, r12
call fcn.14022fb50
test eax, eax
je 0x140234eb7
mov rcx, qword [rsp + 0x58]
mov r8, rbx
mov rdx, r14
call fcn.14023b350
test eax, eax
je 0x140234eb7
mov rax, qword [rsp + 0x58]
mov r9, r14
mov rcx, qword [rsp + 0x50]
mov r8, rsi
mov qword [rsp + 0x28], rax
mov rdx, r12
mov qword [rsp + 0x20], rbx
call fcn.140235960
test eax, eax
je 0x140234eb7
mov rcx, qword [rsp + 0x50]
cmp dword [rcx + 8], 1
jne 0x140234f16
mov rax, qword [rcx]
cmp qword [rax], 1
jne 0x140234f16
cmp dword [rcx + 0x10], 0
jne 0x140234f16
call fcn.14022fc30
mov r8, rax
mov rdx, r12
mov rcx, r12
call fcn.140239bc0
test eax, eax
je 0x140234eb7
mov rax, qword [rsp + 0x58]
mov r9, r14
mov rcx, qword [rsp + 0x50]
mov r8, rsi
inc dword [rsp + 0x78]
mov rdx, r12
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call fcn.140235960
test eax, eax
jne 0x140234e50
mov r14, qword [rsp + 0x38]
mov esi, dword [rsp + 0x30]
mov r13, qword [rsp + 0x130]
mov r12, qword [rsp + 0x138]
mov r15, qword [rsp + 0x128]
mov rcx, r14
call fcn.140235000
mov rcx, r14
call fcn.140235080
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140234efa
mov rcx, rax
call fcn.14023b290
mov eax, esi
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.14024d520
add rsp, 0x140
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov edx, 3
mov rcx, rdi
lea r8d, [rdx - 2]
call fcn.14023c970
test eax, eax
je 0x140234eb7
mov esi, 1
mov rbx, qword [rbp - 0x70]
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140234f42
call fcn.14022f790
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140234f50
call fcn.14022f790
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140234f5e
call fcn.14022f790
mov rcx, r14
call fcn.14022f720
mov rcx, r13
mov qword [rbx + 0x10], rax
call fcn.14022f720
mov rcx, qword [rsp + 0x50]
mov qword [rbx + 0x18], rax
call fcn.14022f720
cmp qword [rbx + 0x10], 0
mov qword [rbx + 0x20], rax
je 0x140234fdd
cmp qword [rbx + 0x18], 0
je 0x140234fdd
test rax, rax
je 0x140234fdd
cmp dword [rsp + 0x40], esi
jle 0x140234fb3
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x140234fb3
movups xmm0, xmmword [rbp - 0x20]
mov eax, dword [rbp - 0x10]
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x140234fbf
mov dword [rax], r15d
mov rcx, qword [rbp - 0x58]
mov r14, qword [rsp + 0x38]
test rcx, rcx
je 0x140234ec0
mov rax, qword [rsp + 0x78]
mov dword [rcx], eax
jmp 0x140234ec0
mov r14, qword [rsp + 0x38]
xor esi, esi
jmp 0x140234ec0
mov r14, qword [rsp + 0x38]
mov esi, r15d
jmp 0x140234ec0