Function at 0x1400153a0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x200], xmm7
movaps xmmword [rbp + 0x1f0], xmm6
mov qword [rbp + 0x1e8], 0xfffffffffffffffe
mov rsi, rcx
mov qword [rbp + 0x1a8], rdx
mov rcx, rdx
xor edx, edx
call fcn.140016360
test al, al
je 0x140015e85
mov qword [rbp - 0x18], 0
mov byte [rsp + 0x20], 0
lea r12, [rbp + 0x1b0]
lea r8, [rbp - 0x50]
mov rcx, r12
mov rdx, qword [rbp + 0x1a8]
mov r9b, 1
call fcn.1400164d0
mov eax, 1
mov cl, byte [rbp + 0x1b0]
test cl, cl
mov qword [rbp + 0xc8], rsi
je 0x140015461
movabs rdx, 0x8000000000000000
cmp cl, 2
je 0x140015455
cmp cl, 1
jne 0x14001546a
mov rbx, qword [rbp + 0x1b8]
mov rbx, qword [rbx]
mov rdi, qword [rbx]
xor ebx, ebx
jmp 0x140015470
mov rbx, qword [rbp + 0x1b8]
mov rbx, qword [rbx]
jmp 0x14001546e
xor ebx, ebx
mov edx, 1
jmp 0x14001546e
xor ebx, ebx
xor edx, edx
xor edi, edi
mov qword [rbp + 0xd0], r12
mov qword [rbp + 0xd8], rdi
mov qword [rbp + 0xe0], rbx
mov qword [rbp + 0xe8], rdx
xorps xmm0, xmm0
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], 0
movaps xmm0, xmmword [0x140211a30]
movups xmmword [rbp + 0x110], xmm0
mov word [rbp + 0x100], 0x30
mov qword [rbp + 0x120], 0
movaps xmm7, xmmword [section..rdata]
movups xmmword [rbp + 0x130], xmm7
mov byte [rbp + 0x120], 0
cmp cl, 2
je 0x1400154fa
cmp cl, 1
jne 0x140015511
mov rax, qword [rbp + 0x1b8]
mov rdx, qword [rax]
movabs rax, 0x8000000000000000
xor ecx, ecx
jmp 0x140015515
mov rax, qword [rbp + 0x1b8]
mov rcx, qword [rax + 8]
movabs rax, 0x8000000000000000
jmp 0x140015513
xor ecx, ecx
xor edx, edx
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x38], rdx
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x48], rax
xorps xmm6, xmm6
movups xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x60], 0
movups xmmword [rbp + 0x70], xmm0
mov word [rbp + 0x60], 0x30
mov qword [rbp + 0x80], 0
movups xmmword [rbp + 0x90], xmm7
mov byte [rbp + 0x80], 0
xor edx, edx
lea r14, [rbp + 0x1c8]
movabs r13, 0x100000001b3
mov rax, r12
jmp 0x14001558e
add qword [rbp + 0xe0], 0x10
mov rdx, qword [rbp + 0xf0]
add rdx, 1
mov qword [rbp + 0xf0], rdx
mov rax, qword [rbp + 0x30]
cmp r12, rax
jne 0x140015f7e
mov cl, byte [rax]
cmp cl, 1
je 0x1400155c0
cmp cl, 2
jne 0x1400155e0
mov rcx, qword [rbp + 0xe0]
cmp rcx, qword [rbp + 0x40]
jne 0x1400155f1
jmp 0x140015d3d
mov rcx, qword [rbp + 0xd8]
cmp rcx, qword [rbp + 0x38]
jne 0x1400155f1
jmp 0x140015d3d
mov rcx, qword [rbp + 0xe8]
cmp rcx, qword [rbp + 0x48]
je 0x140015d3d
mov al, byte [rax]
cmp al, 1
je 0x140015650
lea rcx, [rbp + 0x120]
mov qword [rbp + 0x1c0], rcx
cmp al, 2
jne 0x140015662
lea rax, [rbp + 0x100]
mov qword [rbp + 0x1c0], rax
cmp rdx, qword [rbp + 0xf8]
je 0x140015662
lea rcx, [rbp + 0x100]
call fcn.1400306b0
mov rax, qword [rbp + 0xf0]
mov qword [rbp + 0xf8], rax
lea rax, [rbp + 0x100]
jmp 0x14001565b
mov rax, qword [rbp + 0xd8]
add rax, 0x20
mov qword [rbp + 0x1c0], rax
lea rcx, [rbp + 0xd0]
call fcn.140016850
mov rsi, rax
mov qword [rbp + 0x160], rax
lea rax, [rbp + 0x168]
movups xmmword [rax], xmm6
movabs rax, 0x8000000000000000
mov qword [rbp + 0x178], rax
mov al, byte [rsi]
test al, al
je 0x1400156d0
cmp al, 2
je 0x1400156c0
cmp al, 1
jne 0x1400156e0
mov rax, qword [rsi + 8]
mov rax, qword [rax]
mov rax, qword [rax]
mov qword [rbp + 0x168], rax
jmp 0x1400156eb
mov rax, qword [rsi + 8]
mov rax, qword [rax]
mov qword [rbp + 0x170], rax
jmp 0x1400156eb
mov qword [rbp + 0x178], 1
jmp 0x1400156eb
mov qword [rbp + 0x178], 0
mov al, byte [rsi]
cmp al, 2
je 0x140015720
cmp al, 1
jne 0x140015750
mov rax, qword [rsi + 8]
mov rax, qword [rax]
mov qword [rbp + 0x1a0], rax
movabs rax, 0x8000000000000000
mov qword [rbp + 0x190], rax
xor eax, eax
mov qword [rbp + 0x198], rax
jmp 0x14001576e
mov rax, qword [rsi + 8]
mov rax, qword [rax + 8]
mov qword [rbp + 0x198], rax
movabs rax, 0x8000000000000000
mov qword [rbp + 0x190], rax
jmp 0x140015765
mov eax, 1
mov qword [rbp + 0x190], rax
xor eax, eax
mov qword [rbp + 0x198], rax
xor eax, eax
mov qword [rbp + 0x1a0], rax
mov rbx, rsi
mov qword [rbp + 0xc0], rsi
jmp 0x140015788
add qword [rbp + 0x170], 0x10
cmp rbx, rsi
jne 0x140015efa
mov al, byte [rsi]
cmp al, 1
je 0x1400157b0
cmp al, 2
jne 0x1400157d0
mov rax, qword [rbp + 0x198]
cmp qword [rbp + 0x170], rax
jne 0x1400157e4
jmp 0x140015cb0
mov rax, qword [rbp + 0x1a0]
cmp qword [rbp + 0x168], rax
jne 0x1400157e4
jmp 0x140015cb0
mov rax, qword [rbp + 0x190]
cmp qword [rbp + 0x178], rax
je 0x140015cb0
lea rcx, [rbp + 0x160]
call fcn.140016850
mov qword [rbp + 0x1c8], 0
movups xmmword [rbp + 0x1d8], xmm7
mov byte [rbp + 0x1c8], 0
mov rcx, rax
mov rdx, r14
call fcn.14001dca0
cmp qword [rbp + 0x1e0], 0x10
jb 0x140015825
mov r14, qword [rbp + 0x1c8]
mov rcx, r14
call fcn.1401ed780
movabs r12, 0xcbf29ce484222325
test rax, rax
movaps xmm7, xmmword [section..rdata]
je 0x1400158f9
lea rdx, [rax - 1]
mov r8d, eax
and r8d, 3
cmp rdx, 3
jae 0x140015870
xor ecx, ecx
movabs rsi, 0xcbf29ce484222325
jmp 0x1400158cf
and rax, 0xfffffffffffffffc
xor ecx, ecx
movabs rsi, 0xcbf29ce484222325
movsx rdi, byte [r14 + rcx]
xor rdi, rsi
imul rdi, r13
mov rdx, rcx
or rdx, 1
movsx rdx, byte [r14 + rdx]
xor rdx, rdi
imul rdx, r13
mov rbx, rcx
or rbx, 2
movsx rbx, byte [r14 + rbx]
xor rbx, rdx
imul rbx, r13
mov rdx, rcx
or rdx, 3
movsx rsi, byte [r14 + rdx]
xor rsi, rbx
imul rsi, r13
add rcx, 4
add rax, 0xfffffffffffffffc
jne 0x140015880
mov r12, rsi
test r8, r8
je 0x1400158f9
nop word [rax + rax]
movsx r12, byte [r14 + rcx]
xor r12, rsi
imul r12, r13
add rcx, 1
mov rsi, r12
add r8, 0xffffffffffffffff
jne 0x1400158e0
mov rbx, qword [rbp + 0x1c0]
cmp qword [rbx + 0x18], 0x10
jb 0x140015911
mov rax, qword [rbp + 0x1c0]
mov rbx, qword [rax]
mov qword [rbp + 0x140], 0
movups xmmword [rbp + 0x150], xmm7
mov byte [rbp + 0x140], 0
mov rcx, rbx
call fcn.1401ed780
mov r14, rax
cmp rax, 0xf
jbe 0x1400159a0
test r14, r14
js 0x140015fbe
mov rax, r14
or rax, 0xf
movabs rsi, 0x7fffffffffffffff
movabs rcx, 0x8000000000000000
js 0x14001597e
cmp rax, 0x17
mov esi, reloc.WS2_32.dll_shutdown
cmovae rsi, rax
lea rcx, [rsi + 1]
cmp rsi, 0xfff
jb 0x1400159c7
mov rsi, rax
add rcx, 0x27
call fcn.1400ad850
mov r15, rax
add r15, 0x27
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x1400159cf
mov qword [rbp + 0x150], r14
lea rsi, [rbp + 0x140]
mov rcx, rsi
mov rdx, rbx
mov r8, r14
call fcn.1401d4a60
mov byte [rbp + r14 + 0x140], 0
jmp 0x1400159fe
call fcn.1400ad850
mov r15, rax
mov qword [rbp + 0x150], r14
mov qword [rbp + 0x158], rsi
mov rcx, r15
mov rdx, rbx
mov r8, r14
call fcn.1401d4a60
mov byte [r15 + r14], 0
mov qword [rbp + 0x140], r15
lea rsi, [rbp + 0x140]
mov rcx, rsi
call fcn.140011f30
lea rdi, [rbp + 0x1c8]
mov rsi, qword [rbp + 0xc8]
mov rcx, rsi
mov rdx, rax
mov r8, rdi
call fcn.1400096f0
movaps xmm0, xmmword [0x1402117c0]
movaps xmmword [rbp], xmm0
movaps xmm0, xmmword [0x1402117d0]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [0x1402117dd]
movups xmmword [rbp + 0x1d], xmm0
movaps xmm0, xmmword [0x1402117b0]
movaps xmmword [rbp - 0x10], xmm0
xor rax, r12
mov qword [rbp + 6], rax
mov qword [rbp + 0x15], r12
mov r8d, 0x3d
mov rcx, rsi
xor edx, edx
call fcn.140009b30
mov rbx, rax
test rax, rax
je 0x140015a86
mov r9d, 0x3d
mov rcx, rsi
mov rdx, rbx
lea r8, [rbp - 0x10]
call fcn.140008400
mov rax, qword [rbp + 0x158]
cmp rax, 0x10
jb 0x140015acb
mov rcx, qword [rbp + 0x140]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015ac6
mov rsi, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rsi
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rsi
call fcn.1400ad894
mov byte [rbp + 0x180], 6
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0xa0], 0
lea rax, [rbp + 0xb0]
movups xmmword [rax], xmm6
mov rbx, qword [rbp + 0x1d8]
cmp qword [rbp + 0x1e0], 0x10
jb 0x140015b06
mov rdi, qword [rbp + 0x1c8]
cmp rbx, 0xf
ja 0x140015b20
movups xmm0, xmmword [rdi]
movaps xmmword [rbp + 0xa0], xmm0
mov esi, send
jmp 0x140015b7f
mov rsi, rbx
or rsi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
cmovae rsi, rax
cmp rsi, 0xfff
jb 0x140015b60
lea rcx, [rsi + 0x28]
call fcn.1400ad850
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140015b69
lea rcx, [rsi + 1]
call fcn.1400ad850
mov qword [rbp + 0xa0], rax
lea r8, [rbx + 1]
mov rcx, rax
mov rdx, rdi
call fcn.1401d4a60
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rsi
lea rcx, [0x1402c02d8]
lea rdx, [rbp + 0xa0]
call fcn.140016970
mov dl, byte [rax]
mov cl, byte [rbp + 0x180]
mov byte [rax], cl
mov byte [rbp + 0x180], dl
mov rcx, qword [rax + 8]
mov rbx, qword [rbp + 0x188]
mov qword [rax + 8], rbx
mov qword [rbp + 0x188], rcx
lea rcx, [rbp + 0x188]
call fcn.14001f820
mov rax, qword [rbp + 0x1e0]
cmp rax, 0x10
lea r14, [rbp + 0x1c8]
mov rsi, qword [rbp + 0xc0]
jb 0x140015c25
mov rcx, qword [rbp + 0x1c8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015c20
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.1400ad894
mov rbx, qword [rbp + 0x160]
mov al, byte [rbx]
cmp al, 2
je 0x140015780
cmp al, 1
jne 0x140015ca0
mov rcx, qword [rbp + 0x168]
mov rdx, qword [rcx + 0x10]
cmp byte [rdx + 0x19], 0
je 0x140015c80
nop dword [rax + rax]
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x140015c8c
mov rdx, rcx
mov rcx, rax
cmp rdx, qword [rax + 0x10]
je 0x140015c50
mov rax, rcx
mov qword [rbp + 0x168], rcx
jmp 0x140015788
mov rax, rdx
mov rdx, qword [rdx]
cmp byte [rdx + 0x19], 0
je 0x140015c80
mov qword [rbp + 0x168], rax
jmp 0x140015788
add qword [rbp + 0x178], 1
jmp 0x140015788
mov r12, qword [rbp + 0xd0]
mov al, byte [r12]
cmp al, 2
je 0x140015570
cmp al, 1
jne 0x140015d30
mov rcx, qword [rbp + 0xd8]
mov rdx, qword [rcx + 0x10]
cmp byte [rdx + 0x19], 0
je 0x140015d10
nop dword [rax + rax]
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x140015d1c
mov rdx, rcx
mov rcx, rax
cmp rdx, qword [rax + 0x10]
je 0x140015ce0
mov rax, rcx
mov qword [rbp + 0xd8], rcx
jmp 0x140015578
mov rax, rdx
mov rdx, qword [rdx]
cmp byte [rdx + 0x19], 0
je 0x140015d10
mov qword [rbp + 0xd8], rax
jmp 0x140015578
add qword [rbp + 0xe8], 1
jmp 0x140015578
mov rax, qword [rbp + 0x98]
cmp rax, 0x10
jb 0x140015d82
mov rcx, qword [rbp + 0x80]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015d7d
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.1400ad894
movups xmmword [rbp + 0x90], xmm7
mov byte [rbp + 0x80], 0
mov rax, qword [rbp + 0x78]
cmp rax, 0x10
jb 0x140015dcf
mov rcx, qword [rbp + 0x60]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015dca
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.1400ad894
mov rax, qword [rbp + 0x138]
cmp rax, 0x10
jb 0x140015e14
mov rcx, qword [rbp + 0x120]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015e0f
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.1400ad894
movups xmmword [rbp + 0x130], xmm7
mov byte [rbp + 0x120], 0
mov rax, qword [rbp + 0x118]
cmp rax, 0x10
jb 0x140015e67
mov rcx, qword [rbp + 0x100]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015e62
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.1400ad894
lea rcx, [rbp + 0x1b0]
call fcn.140016bf0
lea rcx, [rbp + 0x1b8]
mov dl, byte [rbp + 0x1b0]
call fcn.14001f820
mov rsi, qword [rbp + 0x1a8]
mov rax, qword [rsi + 0x18]
cmp rax, 0x10
jb 0x140015eca
mov rcx, qword [rsi]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140015ec5
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140015fb9
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.1400ad894
movaps xmm0, xmmword [section..rdata]
movups xmmword [rsi + 0x10], xmm0
mov byte [rsi], 0
movaps xmm6, xmmword [rbp + 0x1f0]
movaps xmm7, xmmword [rbp + 0x200]
add rsp, 0x298
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp + 0x1c8], 0
movups xmmword [rbp + 0x1d8], xmm7
mov byte [rbp + 0x1c8], 0
mov ecx, 0x40
call fcn.1400ad850
movaps xmm0, xmmword [0x140211a40]
movups xmmword [rbp + 0x1d8], xmm0
movups xmm0, xmmword [0x14026fc5a]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [0x14026fc4a]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [str.cannot_compare_iterators_of_different_containers]
movups xmmword [rax], xmm0
mov byte [rax + 0x30], 0
mov qword [rbp + 0x1c8], rax
lea rcx, [rbp - 0x10]
lea r8, [rbp + 0x1c8]
mov edx, 0xd4
mov r9, rbx
call fcn.14002c780
lea rdx, [0x14029f680]
lea rcx, [rbp - 0x10]
call fcn.1401d36b4
lea rdx, str.cannot_compare_iterators_of_different_containers
lea rcx, [rbp + 0x1c8]
call fcn.140006bf0
lea rcx, [rbp - 0x10]
lea r8, [rbp + 0x1c8]
mov edx, 0xd4
mov r9, r12
call fcn.14002c780
lea rdx, [0x14029f680]
lea rcx, [rbp - 0x10]
call fcn.1401d36b4
call fcn.1401e54b4
call fcn.1400035c0
int3