Function at 0x1400ea250
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
mov eax, 0x1090
call fcn.140170e10
sub rsp, rax
movaps xmmword [rsp + 0x1070], xmm8
mov rax, qword [0x14021d798]
xor rax, rsp
mov qword [rsp + 0x1060], rax
mov rax, qword [rcx + 0x8e8]
xor r12d, r12d
movsxd r13, dword [rcx + 0x9a0]
xor ebx, ebx
add r13, qword [rcx + 0x978]
mov rbp, rcx
movsd xmm8, qword [0x1401bcad0]
mov rdi, qword [rax + 0x78]
movaps xmmword [rsp + 0x1080], xmm7
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x40], rbx
test rdi, rdi
je 0x1400ea311
lea rsi, [0x1401b8df4]
nop word [rax + rax]
movzx ecx, byte [rsi]
mov r14, rdi
call fcn.140185968
movzx ecx, byte [rdi]
mov ebx, eax
call fcn.140185968
inc rdi
lea rsi, [rsi + 1]
sub eax, ebx
jne 0x1400ea305
cmp byte [r14], r12b
jne 0x1400ea2e0
xor ebx, ebx
test eax, eax
sete bl
mov qword [rsp + 0x40], rbx
mov rax, qword [rbp + 0x8e8]
xorps xmm7, xmm7
mov rcx, qword [rax + 0x70]
test rcx, rcx
je 0x1400ea343
call fcn.140188e58
movd xmm8, eax
cvtdq2pd xmm8, xmm8
divsd xmm8, qword [0x1401bcac8]
comisd xmm7, xmm8
jb 0x1400ea38b
mov rax, qword [rbp + 0x8e8]
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x1400ea36b
call fcn.140188e58
movd xmm8, eax
cvtdq2pd xmm8, xmm8
divsd xmm8, qword [0x1401bcac8]
comisd xmm7, xmm8
jb 0x1400ea38b
lea rcx, str.30000
call fcn.1401878e4
movaps xmm8, xmm0
divsd xmm8, qword [0x1401bcac8]
lea rcx, str.wsock
mov dword [rbp + 0x994], 1
call fcn.1400e4640
mov rax, qword [rbp + 0x8e0]
movaps xmm7, xmmword [rsp + 0x1080]
mov ecx, dword [rax + 0x28]
test ecx, ecx
jne 0x1400ea741
mov qword [rsp + 0x10e8], r15
cmp dword [rbp + 0x988], 0
jne 0x1400ea739
mov eax, dword [rbp + 0x9a4]
sub eax, dword [rbp + 0x9a0]
movsxd rsi, eax
cmp rsi, 2
jb 0x1400ea410
movzx r14d, byte [r13 + 1]
mov edi, r14d
shr r14, 5
and r14d, 4
and edi, 0x7f
cmp rdi, 0x7e
jae 0x1400ea45f
cmp rsi, r14
jb 0x1400ea45b
lea r15, [r14 + 2]
cmp rsi, r15
jae 0x1400ea4b4
movsxd rax, dword [rbp + 0x9a4]
mov rdx, rbp
mov r9d, dword [rbp + 0x99c]
mov r8, rax
add r8, qword [rbp + 0x978]
sub r9d, eax
xor ecx, ecx
movsd qword [rsp + 0x20], xmm8
call fcn.1400e8e90
cmp eax, 0xfffffffe
jle 0x1400ea739
test eax, eax
jle 0x1400ea659
add dword [rbp + 0x9a4], eax
xor r12d, r12d
jmp 0x1400ea69e
cmp rdi, 0x7e
jne 0x1400ea47d
lea r15, [r14 + 4]
cmp rsi, r15
jb 0x1400ea47d
movzx edi, byte [r13 + 2]
movzx eax, byte [r13 + 3]
shl rdi, 8
add rdi, rax
jmp 0x1400ea4b4
lea r15, [r14 + 0xa]
cmp rsi, r15
jb 0x1400ea410
mov ecx, dword [r13 + 2]
mov edi, dword [r13 + 6]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
mov ecx, edi
shl rbx, 0x20
call qword [sym.imp.WS2_32.dll_ntohl]
mov edi, eax
add rdi, rbx
cmp rdi, 0x7fff0000
ja 0x1400ea70a
lea rbx, [rsp + 0x60]
cmp rdi, 0x1000
jbe 0x1400ea4d6
mov rcx, rdi
call fcn.140184ca0
mov rbx, rax
test rax, rax
je 0x1400ea6bf
test r14, r14
je 0x1400ea4eb
mov rcx, r15
sub rcx, r14
mov ecx, dword [rcx + r13]
mov dword [rsp + 0x34], ecx
jmp 0x1400ea4f3
mov dword [rsp + 0x34], 0
mov rdx, qword [rsp + 0x38]
lea r12, [r15 + rdi]
movzx r13d, byte [r13]
add rdx, r15
mov rcx, rbx
cmp r12, rsi
jbe 0x1400ea560
sub rsi, r15
mov r8, rsi
call fcn.1401726d0
cmp rsi, rdi
jae 0x1400ea552
nop dword [rax]
mov r9d, edi
movsd qword [rsp + 0x20], xmm8
sub r9d, esi
lea r8, [rbx + rsi]
mov rdx, rbp
xor ecx, ecx
call fcn.1400e8e90
cmp eax, 0xfffffffe
jle 0x1400ea6c7
test eax, eax
jle 0x1400ea54d
cdqe
add rsi, rax
cmp rsi, rdi
jb 0x1400ea520
mov eax, dword [rbp + 0x9a0]
mov dword [rbp + 0x9a4], eax
jmp 0x1400ea586
mov r8, rdi
call fcn.1401726d0
mov rax, qword [rsp + 0x38]
sub rsi, r12
mov r8, rsi
mov rcx, rax
lea rdx, [r12 + rax]
call fcn.1401726d0
sub dword [rbp + 0x9a4], r12d
test r14, r14
je 0x1400ea5a8
xor ecx, ecx
test rdi, rdi
je 0x1400ea5a8
mov rax, rcx
and eax, 3
movzx eax, byte [rsp + rax + 0x34]
xor byte [rcx + rbx], al
inc rcx
cmp rcx, rdi
jb 0x1400ea592
movzx esi, r13b
xor r15d, r15d
and sil, 0xf
cmp qword [rsp + 0x40], r15
je 0x1400ea5fa
cmp sil, 0xa
jne 0x1400ea5ce
xor r12d, r12d
movzx r14d, sil
mov dword [rsp + 0x30], r12d
jmp 0x1400ea62d
cmp sil, 9
jne 0x1400ea5fa
mov r9, rdi
mov dword [rsp + 0x20], r15d
mov r8, rbx
mov edx, 0xa
mov rcx, rbp
call fcn.1400e5ee0
test eax, eax
jle 0x1400ea739
movzx r14d, sil
jmp 0x1400ea628
mov rax, qword [rsp + 0x48]
movzx r14d, sil
test rax, rax
je 0x1400ea628
mov rcx, qword [rsp + 0x50]
mov edx, r13d
mov qword [rsp + 0x20], rcx
mov r9, rdi
mov rcx, rbp
mov r8, rbx
call rax
test eax, eax
jne 0x1400ea628
lea r15d, [rax + 1]
mov r12d, dword [rsp + 0x30]
lea rax, [rsp + 0x60]
cmp rbx, rax
je 0x1400ea63f
mov rcx, rbx
call fcn.140180564
test r15d, r15d
jne 0x1400ea739
cmp r14b, 8
je 0x1400ea739
mov r13, qword [rsp + 0x38]
jmp 0x1400ea6a3
mov rax, qword [rbp + 0x8e0]
mov ecx, dword [rax + 0x28]
test ecx, ecx
jne 0x1400ea6a3
cmp dword [rbp + 0x988], ecx
jne 0x1400ea6a3
cmp r12d, 5
jg 0x1400ea739
test rbx, rbx
je 0x1400ea6a3
mov dword [rsp + 0x20], ecx
lea edx, [rcx + 9]
mov rcx, rbp
xor r9d, r9d
xor r8d, r8d
call fcn.1400e5ee0
test eax, eax
jle 0x1400ea739
inc r12d
mov dword [rsp + 0x30], r12d
mov rax, qword [rbp + 0x8e0]
mov ecx, dword [rax + 0x28]
test ecx, ecx
jne 0x1400ea739
mov rbx, qword [rsp + 0x40]
jmp 0x1400ea3c3
mov r9d, 0x33b1
jmp 0x1400ea710
lea rax, str.Websocket_pull_failed__closing_connection
mov r9d, 0x33da
mov qword [rsp + 0x28], rax
lea r8, str.read_websocket
lea rax, [0x1401e16f8]
xor edx, edx
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.1400e1360
lea rax, [rsp + 0x60]
cmp rbx, rax
je 0x1400ea739
mov rcx, rbx
call fcn.140180564
jmp 0x1400ea739
mov r9d, 0x339e
lea rax, str.websocket_out_of_memory__closing_connection
xor edx, edx
mov qword [rsp + 0x28], rax
lea r8, str.read_websocket
lea rax, [0x1401e16f8]
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.1400e1360
mov r15, qword [rsp + 0x10e8]
lea rcx, str.worker
call fcn.1400e4640
mov dword [rbp + 0x994], 0
mov rcx, qword [rsp + 0x1060]
xor rcx, rsp
call fcn.1401702b0
movaps xmm8, xmmword [rsp + 0x1070]
add rsp, 0x1090
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret