Function at 0x1400ecc80
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movapd xmmword [rsp + 0x160], xmm8
movdqa xmmword [rsp + 0x150], xmm7
movapd xmmword [rsp + 0x140], xmm6
mov rsi, r9
mov edi, r8d
mov rbx, rcx
mov rax, qword [0x140260028]
xor rax, rsp
mov qword [rsp + 0x138], rax
cmp r8d, 1
setne al
cmp r9, 2
setne cl
or cl, al
je 0x1400ed519
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x90], xmm0
cmp edi, edx
setge bpl
jl 0x1400ed4fd
mov eax, edi
mov edi, edx
test edi, edi
jle 0x1400ed360
cmp eax, 0x7fffffff
je 0x1400ed504
mov r12d, eax
cmp rsi, 0x3eb
jae 0x1400ed494
cmp r12d, edi
je 0x1400ed528
cmp rsi, 3
jb 0x1400ed553
mov eax, r12d
sub eax, edi
add eax, 2
cdqe
cmp rsi, rax
setbe al
test bpl, al
je 0x1400ed553
mov r14, qword [rsp + 0x1e8]
mov eax, dword [rsp + 0x1e0]
movabs r15, 0xfffffffc00000000
lea r13, [rsp + 0x58]
movups xmm0, xmmword [rbx]
movups xmmword [r13], xmm0
mov dword [r13 + 0x10], 1
mov dword [r13 + 0x14], edi
mov dword [r13 + 0x18], r12d
mov qword [r13 + 0x20], rsi
mov dword [r13 + 0x28], eax
lea r12, fcn.1400e4220
mov qword [r13 - 8], r12
mov qword [r13 + 0x30], 0
mov rax, r14
and rax, r15
cmp rax, qword [0x140262688]
je 0x1400ed533
mov qword [rsp + 0x88], r14
movupd xmm0, xmmword [r13]
lea rcx, [rsp + 0xc0]
movapd xmmword [rcx], xmm0
call fcn.1400ed5a0
mov rsi, rax
test rax, rax
je 0x1400ecf3b
mov edi, dword [rsp + 0x68]
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
xor ecx, ecx
lea rdx, [0x140144ab0]
cmp rax, rdx
jne 0x1400eced5
cmp edi, ecx
jne 0x1400ed44f
mov r9, qword [rsp + 0x78]
test r9, r9
je 0x1400ece78
mov edx, dword [rsp + 0x6c]
mov r8d, dword [rsp + 0x70]
mov rax, qword [rsi]
mov rax, qword [rax + 0x20]
lea rcx, [0x1400a7fa0]
cmp rax, rcx
jne 0x1400ed43e
mov rax, qword [rsi + 0x18]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
sub rcx, rax
mov r10, rcx
sar r10, 2
lea r11, [r10 - 1]
cmp r11, r9
jne 0x1400ed44f
cmp r11, 2
jb 0x1400ed540
cmp r10, 1
jbe 0x1400ed4fb
cmp dword [rax + 4], edx
jne 0x1400ed44f
mov eax, dword [rax + rcx - 8]
cmp eax, r8d
jne 0x1400ed44f
mov qword [rsp + 0x50], r12
mov rcx, qword [rsp + 0x88]
and r15, rcx
cmp r15, qword [0x140262688]
je 0x1400ed50f
mov rcx, qword [rsp + 0x138]
xor rcx, rsp
call fcn.140149190
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm8, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
lea rdx, [0x1400e3240]
cmp rax, rdx
je 0x1400ecdf6
mov ecx, 2
lea rdx, [0x1400a7ff0]
cmp rax, rdx
je 0x1400ecdf6
jmp 0x1400ed388
cmp eax, 0x3f
je 0x1400ecf1e
add rcx, rsi
cmp eax, 0x3c
jne 0x1400ed31b
mov byte [rcx + 2], 0
mov word [rcx], 0
lea rcx, [rsp + 0xd0]
mov r8d, 1
mov rdx, rsi
call fcn.1400793c0
xor ecx, ecx
jmp 0x1400ecfe8
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
xorpd xmm0, xmm0
lea rsi, [rsp + 0xe8]
movupd xmmword [rsi + 0x34], xmm0
movupd xmmword [rsi + 0x28], xmm0
movupd xmmword [rsi + 0x18], xmm0
movupd xmmword [rsi + 8], xmm0
movupd xmmword [rsi - 8], xmm0
movapd xmm0, xmmword [0x140233190]
movupd xmmword [rsi - 0x18], xmm0
test rbx, rbx
je 0x1400ecfb7
lea eax, [rbx*8]
mov rcx, rbx
shr rcx, 0x1d
mov dword [rsp + 0xe4], ecx
mov dword [rsp + 0xe0], eax
mov r8, rbx
cmp rbx, 0x40
jae 0x1400ed330
mov dword [rsp + 0x128], ebx
mov rcx, rsi
mov rdx, rdi
call fcn.14014ac10
mov eax, dword [rsp + 0x128]
lea rcx, [rax + 1]
mov ebx, dword [rsp + 0xe0]
mov ebp, dword [rsp + 0xe4]
mov byte [rsp + rax + 0xe8], 0x80
cmp rax, 0x38
jae 0x1400ecf04
cmp rcx, 0x38
je 0x1400ecffb
mov r8d, 0x38
sub r8, rcx
add rcx, rsi
xor edx, edx
call fcn.14014b2c0
lea rdi, [rsp + 0xd0]
mov dword [rdi + 0x50], ebx
mov dword [rdi + 0x54], ebp
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.1400793c0
mov ecx, dword [rdi]
bswap ecx
call fcn.1400e2c30
test al, al
je 0x1400ed474
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
lea rcx, [0x140069140]
cmp rax, rcx
jne 0x1400ed2c6
mov ecx, 0x20
call fcn.140146648
mov rsi, rax
mov rdx, qword [rsp + 0x78]
inc rdx
mov rcx, rax
call fcn.1400e4400
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rsp + 0x70]
call fcn.1401775a0
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
sub rcx, rax
cmp rcx, 4
jbe 0x1400ed4fb
mov r14d, dword [rsp + 0x6c]
mov dword [rax + 4], r14d
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
mov rbx, rax
sub rbx, rcx
sar rbx, 2
lea rdx, [rbx - 1]
cmp rdx, 3
jb 0x1400ed162
movapd xmm6, xmm0
add rbx, 0xfffffffffffffffd
mov ebp, 2
lea rdi, [rsp + 0xd0]
movq xmm7, qword [0x140232760]
movapd xmm8, xmmword [0x140232770]
xorps xmm0, xmm0
cvtsi2sd xmm0, r14d
call fcn.1401775a0
movsd qword [rsp + 0xd0], xmm0
mov rcx, rdi
call fcn.1400d1520
mov r12, qword [rsi]
mov rax, qword [rsi + 8]
sub rax, r12
sar rax, 2
cmp rax, rbp
jbe 0x1400ed4fb
movsd xmm1, qword [rsp + 0xd0]
movq xmm2, rbx
punpckldq xmm2, xmm7
subpd xmm2, xmm8
haddpd xmm2, xmm2
movapd xmm0, xmm6
subsd xmm0, xmm1
divsd xmm0, xmm2
addsd xmm0, xmm1
call fcn.14017ed70
call fcn.140180038
cvttsd2si eax, xmm0
cmp r14d, eax
lea ecx, [r14 + 1]
cmovl ecx, eax
mov dword [r12 + rbp*4], ecx
inc rbp
mov r14d, ecx
dec rbx
jne 0x1400ed0d0
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
cmp rax, rcx
lea r12, fcn.1400e4220
je 0x1400ed4fb
mov dword [rax - 4], 0x7fffffff
mov r8, qword [rsi]
mov rax, qword [rsi + 8]
mov rcx, rax
sub rcx, r8
je 0x1400ed588
js 0x1400ed58f
test cl, 1
jne 0x1400ed398
shr rcx, 2
mov rdx, r8
lea r9, [rax - 1]
cmp r9, r8
je 0x1400ed1ea
mov r8d, 0xff
lea r9, [0x14023e250]
mov r10d, ecx
and r10d, r8d
movzx r11d, byte [rdx]
xor r11d, r10d
shr ecx, 8
xor ecx, dword [r9 + r11*4]
mov r10d, ecx
and r10d, r8d
movzx r11d, byte [rdx + 1]
xor r11d, r10d
shr ecx, 8
xor ecx, dword [r9 + r11*4]
add rdx, 2
cmp rdx, rax
jne 0x1400ed1b8
mov dword [rsi + 0x18], ecx
mov rcx, rsi
call fcn.1400e3b30
mov rsi, rax
cmp qword [rsp + 0x78], 0
je 0x1400ed3af
mov dword [rsp + 0xbc], 0
mov rdi, qword [0x1402725c0]
test rdi, rdi
je 0x1400ed406
mov eax, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x70]
mov r8d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x6c]
movupd xmm0, xmmword [r13]
lea r9, [rsp + 0xd0]
movapd xmmword [r9], xmm0
lea r10, [rsp + 0xbc]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
lea rbx, [rsp + 0xa0]
mov rcx, rdi
mov rdx, rbx
call fcn.1400e2ef0
mov rbx, qword [rbx]
test rbx, rbx
je 0x1400ed406
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x10]
lea rcx, [fcn.140010c70]
cmp rax, rcx
jne 0x1400ed2e4
mov rcx, rbx
call fcn.1400e3250
mov rsi, rax
mov edx, dword [rsp + 0xbc]
test edx, edx
je 0x1400ecdd9
cmp rsi, rbx
sete r8b
mov rcx, rdi
call fcn.1400e2d80
jmp 0x1400ecdd9
lea rcx, [fcn.1400e4220]
cmp rax, rcx
jne 0x1400ed303
lea rcx, [rsp + 0x50]
call fcn.1400e4220
mov rsi, rax
jmp 0x1400ed1ed
lea rcx, [fcn.140005630]
cmp rax, rcx
jne 0x1400ed481
lea rcx, [rsp + 0x50]
mov rdx, rbx
call fcn.140005630
jmp 0x1400ed298
lea rcx, [fcn.1400e5080]
cmp rax, rcx
jne 0x1400ed378
lea rcx, [rsp + 0x50]
call fcn.1400e5080
jmp 0x1400ed2dc
mov r8d, 0x3f
sub r8, rax
xor edx, edx
call fcn.14014b2c0
jmp 0x1400ecf1e
shr r8, 6
lea rcx, [rsp + 0xd0]
mov rdx, rdi
call fcn.1400793c0
mov r8, rbx
and r8, 0x3f
je 0x1400ecfb7
and rbx, 0xffffffffffffffc0
add rdi, rbx
mov ebx, r8d
jmp 0x1400ecfa5
mov edi, 1
mov r12d, 1
test eax, eax
jg 0x1400ecd03
jmp 0x1400ecd11
lea rcx, [rsp + 0x50]
call qword [0x1402529a0]
jmp 0x1400ed2dc
mov rcx, rsi
call qword [0x1402529a0]
mov ecx, eax
jmp 0x1400ecdf6
movzx ecx, byte [r8]
lea rdx, [0x14023e250]
mov ecx, dword [rdx + rcx*4]
lea rdx, [r8 + 1]
jmp 0x1400ed1a2
mov rax, qword [rsi + 8]
sub rax, qword [rsi]
sar rax, 2
lea rcx, [rax - 1]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
sub rdx, rcx
cmp rdx, 4
jbe 0x1400ed4fb
mov ecx, dword [rcx + 4]
mov dword [rsp + 0x6c], ecx
lea rdx, [rax - 2]
mov rcx, qword [rsi]
mov r8, qword [rsi + 8]
sub r8, rcx
sar r8, 2
cmp r8, rdx
jbe 0x1400ed4fb
mov eax, dword [rcx + rax*4 - 8]
mov dword [rsp + 0x70], eax
jmp 0x1400ed204
lea r14, [rsp + 0x50]
and byte [r14 + 0x30], 0xbf
mov rax, qword [r14]
mov rax, qword [rax + 8]
lea rbx, [rsp + 0xa0]
mov rcx, r14
mov rdx, rbx
mov r8, rsi
call qword [0x1402529a0]
mov rbx, qword [rbx]
mov eax, dword [r14 + 0x30]
lock or dword [rbx + 0x10], eax
jmp 0x1400ed283
mov rcx, rsi
call qword [0x1402529a0]
test al, al
jne 0x1400ece78
movupd xmm0, xmmword [r13]
lea rcx, [rsp + 0xa0]
movapd xmmword [rcx], xmm0
call fcn.1400ee610
lea rcx, str.Histogram.MismatchedConstructionArguments
mov edx, eax
call fcn.1400edfb0
call fcn.140182be0
mov rsi, rax
jmp 0x1400ece78
lea rcx, [rsp + 0x50]
mov rdx, rbx
call qword [0x1402529a0]
jmp 0x1400ed298
movups xmm0, xmmword [rbx]
lea rcx, [rsp + 0xd0]
movaps xmmword [rcx], xmm0
call fcn.1400ee610
lea rcx, str.Histogram.TooManyBuckets.1000
mov edx, eax
call fcn.1400edfb0
lea rax, str.Blink.UseCounter
lea rdx, [rsp + 0x50]
mov qword [rdx], rax
mov qword [rdx + 8], 0x10
movaps xmm0, xmmword [rsp + 0x90]
lea rcx, [rsp + 0xc0]
movaps xmmword [rcx], xmm0
xor r8d, r8d
call fcn.140132360
test al, al
jne 0x1400ecd1e
mov esi, 0x66
xor ebp, ebp
jmp 0x1400ecd1e
ud2
mov eax, edx
jmp 0x1400eccfb
mov r12d, 0x7ffffffe
jmp 0x1400ecd11
call fcn.140004bf0
jmp 0x1400ece95
mov edi, 2
mov esi, 3
jmp 0x1400ecce0
lea r12d, [rdi + 1]
xor ebp, ebp
jmp 0x1400ecd27
mov rcx, r14
call fcn.140004ab0
jmp 0x1400ecdae
mov eax, 0xffffffff
cmp edx, 0xffffffff
je 0x1400ece6f
jmp 0x1400ed44f
movapd xmm0, xmmword [rsp + 0x90]
lea rcx, [rsp + 0xa0]
movapd xmmword [rcx], xmm0
call fcn.1400ee610
lea rcx, str.Histogram.BadConstructionArguments
mov edx, eax
call fcn.1400edfb0
call fcn.140182be0
mov rsi, rax
jmp 0x1400ece95
xor ecx, ecx
jmp 0x1400ed1ea
int3