Function at 0x140049680
Capabilities:
Hash data with md5

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x308]
sub rsp, 0x408
mov rax, qword [0x1401121f0]
xor rax, rsp
mov qword [rbp + 0x2f0], rax
mov qword [rbp + 0x70], r9
mov rsi, r8
mov qword [rsp + 0x28], r8
mov qword [rbp + 0x78], rdx
mov qword [rbp + 0x68], rcx
mov rax, qword [rbp + 0x370]
mov qword [rsp + 0x38], rax
xor r12d, r12d
mov dword [rsp + 0x40], r12d
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], r12
lea r8d, [r12 + 0x12]
lea rdx, str.Sec_WebSocket_Key1
lea rcx, [rsp + 0x68]
call fcn.140003a30
nop
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], r12b
jne 0x1400497e0
nop dword [rax]
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
setae r8b
cmovae rdx, qword [rsp + 0x68]
mov r13, qword [rsp + 0x78]
add r13, rdx
lea rbx, [rsp + 0x68]
test r8b, r8b
cmovne rbx, qword [rsp + 0x68]
cmp qword [r9 + 0x18], 0x10
jb 0x140049761
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x14004976b
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1400497b2
cmp rbx, r13
je 0x1400497c2
movzx esi, byte [rbx]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov edi, eax
mov ecx, esi
call fcn.1400b06dc
cmp edi, eax
jl 0x1400497b7
movzx esi, byte [r14]
movzx ecx, byte [rbx]
call fcn.1400b06dc
mov edi, eax
mov ecx, esi
call fcn.1400b06dc
cmp edi, eax
jl 0x1400497c2
inc r14
inc rbx
cmp r14, r12
jne 0x140049770
cmp rbx, r13
je 0x1400497c2
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x1400497cd
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x140049720
mov rsi, qword [rsp + 0x28]
xor r12d, r12d
lea rdi, [0x140112eb0]
mov qword [rbp + 0x160], rdi
cmp byte [rbx + 0x19], 0
jne 0x140049810
lea r8, [rbx + 0x20]
lea rdx, [rsp + 0x68]
call fcn.140019bd0
test al, al
jne 0x140049810
cmp rbx, qword [rsi + 0x20]
lea rdx, [rbx + 0x40]
jne 0x140049813
mov rdx, rdi
lea r8, [rbp + 0x2d0]
call fcn.14004c230
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x14004985c
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049857
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a794
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x60], r12
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key2
lea rcx, [rbp - 0x78]
call fcn.140003a30
nop
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x140049967
nop word [rax + rax]
lea r9, [r15 + 0x20]
lea rdx, [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
setae r8b
cmovae rdx, qword [rbp - 0x78]
mov r13, qword [rbp - 0x68]
add r13, rdx
lea rsi, [rbp - 0x78]
test r8b, r8b
cmovne rsi, qword [rbp - 0x78]
cmp qword [r9 + 0x18], 0x10
jb 0x1400498dc
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1400498e6
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x140049932
nop dword [rax + rax]
cmp rsi, r13
je 0x140049942
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140049937
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140049942
inc r14
inc rsi
cmp r14, r12
jne 0x1400498f0
cmp rsi, r13
je 0x140049942
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x14004994d
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1400498a0
lea rdi, [0x140112eb0]
mov rsi, qword [rsp + 0x28]
xor r12d, r12d
cmp byte [rbx + 0x19], 0
jne 0x140049988
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x78]
call fcn.140019bd0
test al, al
jne 0x140049988
cmp rbx, qword [rsi + 0x20]
lea rdx, [rbx + 0x40]
jne 0x14004998b
mov rdx, rdi
lea r8, [rbp + 0x2d4]
call fcn.14004c230
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x1400499d3
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400499ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a79a
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rsp + 0x48]
call fcn.140003a30
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x140049ae0
nop dword [rax]
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
setae r8b
cmovae r13, qword [rsp + 0x48]
add r13, qword [rsp + 0x58]
lea rsi, [rsp + 0x48]
test r8b, r8b
cmovne rsi, qword [rsp + 0x48]
cmp qword [r9 + 0x18], 0x10
jb 0x140049a5f
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x140049a69
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x140049ab2
nop
cmp rsi, r13
je 0x140049ac2
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140049ab7
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140049ac2
inc r14
inc rsi
cmp r14, r12
jne 0x140049a70
cmp rsi, r13
je 0x140049ac2
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x140049acd
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x140049a20
mov rsi, qword [rsp + 0x28]
xor r12d, r12d
cmp byte [rbx + 0x19], 0
jne 0x140049b04
lea r8, [rbx + 0x20]
lea rdx, [rsp + 0x48]
call fcn.140019bd0
test al, al
jne 0x140049b04
cmp rbx, qword [rsi + 0x20]
je 0x140049b04
add rbx, 0x40
jmp 0x140049b0b
lea rbx, [0x140112eb0]
mov rax, qword [rsp + 0x60]
cmp rax, 0x10
jb 0x140049b49
lea rdx, [rax + 1]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049b44
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7a0
call fcn.1400a0cf0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x48], 0
mov rax, qword [rbx + 0x10]
mov r8d, 8
cmp qword [rbx + 0x18], 0x10
jb 0x140049b7c
cmp rax, r8
cmovb r8, rax
add r8, qword [rbx]
mov rbx, qword [rbx]
jmp 0x140049b86
cmp rax, r8
cmovb r8, rax
add r8, rbx
sub r8, rbx
mov rdx, rbx
lea rcx, [rbp + 0x2d8]
call fcn.1400a30b0
xorps xmm0, xmm0
movups xmmword [rbp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x58], xmm1
mov r8d, select
lea rdx, [rbp + 0x2d0]
lea rcx, [rbp + 0x48]
call fcn.140003a30
nop
mov qword [rbp + 0x170], 0
mov dword [rbp + 0x178], 0x67452301
mov dword [rbp + 0x17c], 0xefcdab89
mov dword [rbp + 0x180], 0x98badcfe
mov dword [rbp + 0x184], 0x10325476
lea rdx, [rbp + 0x48]
cmp qword [rbp + 0x60], 0x10
cmovae rdx, qword [rbp + 0x48]
mov r8, qword [rbp + 0x58]
lea rcx, [rbp + 0x170]
call fcn.140024840
lea rdx, [rbp + 0x2e0]
lea rcx, [rbp + 0x170]
call fcn.140024950
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
movdqa xmm1, xmmword [0x1400f86d0]
movdqu xmmword [rbp - 0x48], xmm1
mov byte [rbp - 0x58], 0
mov dword [rsp + 0x40], 1
xor r8d, r8d
lea edx, [r8 + 0x10]
lea rcx, [rbp - 0x58]
call fcn.140028c80
lea rax, [rbp - 0x58]
cmp qword [rbp - 0x40], 0x10
cmovae rax, qword [rbp - 0x58]
movups xmm0, xmmword [rbp + 0x2e0]
movups xmmword [rax], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x80], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x90], xmm0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp + 0x80]
call fcn.140003a30
nop
lea r8, [rbp - 0x58]
lea rdx, [rbp + 0x80]
mov r14, qword [rsp + 0x38]
mov rcx, r14
call fcn.14001b280
nop
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x140049cf3
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049cee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7a6
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp + 0x90], xmm0
mov byte [rbp + 0x80], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x140049d45
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049d40
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7ac
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
mov rdx, qword [rbp + 0x60]
cmp rdx, 0x10
jb 0x140049d91
inc rdx
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049d8c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7b2
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rbp + 0x120], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x130], xmm1
mov r8d, 9
lea rdx, str.WebSocket
lea rcx, [rbp + 0x120]
call fcn.140003a30
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xb0], xmm1
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rbp + 0xa0]
call fcn.140003a30
nop
lea r8, [rbp + 0x120]
lea rdx, [rbp + 0xa0]
mov rcx, r14
call fcn.14001b280
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x140049e47
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049e42
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7b8
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0x138]
cmp rdx, 0x10
jb 0x140049e9f
inc rdx
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049e9a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7be
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x38], xmm1
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rbp + 0x28]
call fcn.140003a30
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xc0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xd0], xmm1
mov r8d, 0xa
lea rdx, str.Connection
lea rcx, [rbp + 0xc0]
call fcn.140003a30
nop
lea r8, [rbp + 0x28]
lea rdx, [rbp + 0xc0]
mov rcx, r14
call fcn.14001b280
nop
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x140049f49
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049f44
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7c4
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp + 0xd0], xmm0
mov byte [rbp + 0xc0], 0
mov rdx, qword [rbp + 0x40]
cmp rdx, 0x10
jb 0x140049f9b
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049f96
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7ca
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r12
mov r8d, shutdown
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rbp - 0x38]
call fcn.140003a30
lea rdi, [r14 + 0x20]
mov qword [rsp + 0x20], rdi
mov rbx, qword [rdi]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x14004a0a5
lea r9, [r15 + 0x20]
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], 0x10
setae r8b
cmovae rdx, qword [rbp - 0x38]
mov r13, qword [rbp - 0x28]
add r13, rdx
lea rsi, [rbp - 0x38]
test r8b, r8b
cmovne rsi, qword [rbp - 0x38]
cmp qword [r9 + 0x18], 0x10
jb 0x14004a01c
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x14004a026
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x14004a072
nop dword [rax + rax]
cmp rsi, r13
je 0x14004a082
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x14004a077
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x14004a082
inc r14
inc rsi
cmp r14, r12
jne 0x14004a030
cmp rsi, r13
je 0x14004a082
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x14004a08d
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x140049fe0
mov rdi, qword [rsp + 0x20]
mov r14, qword [rsp + 0x38]
xor r12d, r12d
cmp byte [rbx + 0x19], 0
jne 0x14004a0c7
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x38]
call fcn.140019bd0
test al, al
jne 0x14004a0c7
cmp rbx, qword [rdi]
je 0x14004a0c7
add rbx, 0x50
jmp 0x14004a0ce
lea rbx, [0x140112ec0]
mov rbx, qword [rbx]
mov rax, qword [rbp - 0x20]
cmp rax, 0x10
jb 0x14004a10d
lea rdx, [rax + 1]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a108
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7d0
call fcn.1400a0cf0
test rbx, rbx
jne 0x14004a326
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], r12
mov qword [rbp], r12
lea r8d, [rbx + 6]
lea rdx, str.Origin
lea rcx, [rbp - 0x18]
call fcn.140003a30
nop
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rdi + 0x20]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x14004a220
nop word [rax + rax]
lea r9, [r15 + 0x20]
lea rdx, [rbp - 0x18]
cmp qword [rbp], 0x10
setae r8b
cmovae rdx, qword [rbp - 0x18]
mov r13, qword [rbp - 8]
add r13, rdx
lea rsi, [rbp - 0x18]
test r8b, r8b
cmovne rsi, qword [rbp - 0x18]
cmp qword [r9 + 0x18], 0x10
jb 0x14004a19c
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x14004a1a6
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x14004a1f2
nop dword [rax + rax]
cmp rsi, r13
je 0x14004a202
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x14004a1f7
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x14004a202
inc r14
inc rsi
cmp r14, r12
jne 0x14004a1b0
cmp rsi, r13
je 0x14004a202
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x14004a20d
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x14004a160
mov rdi, qword [rsp + 0x28]
xor r12d, r12d
cmp byte [rbx + 0x19], 0
jne 0x14004a248
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x18]
call fcn.140019bd0
test al, al
jne 0x14004a248
cmp rbx, qword [rdi + 0x20]
je 0x14004a248
lea rax, [rbx + 0x40]
mov qword [rbp + 0x160], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xf0], xmm1
mov r8d, shutdown
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rbp + 0xe0]
call fcn.140003a30
nop
mov r8, qword [rbp + 0x160]
lea rdx, [rbp + 0xe0]
mov r14, qword [rsp + 0x38]
mov rcx, r14
call fcn.14001b280
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x14004a2d4
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a2cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7d6
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp + 0xf0], xmm0
mov byte [rbp + 0xe0], 0
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x14004a326
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a321
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7dc
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x20], r12
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rbp + 8]
call fcn.140003a30
mov rsi, qword [rsp + 0x20]
mov rbx, qword [rsi]
mov qword [rbp + 0x160], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x14004a431
nop dword [rax]
lea r9, [r15 + 0x20]
lea r13, [rbp + 8]
cmp qword [rbp + 0x20], 0x10
setae r8b
cmovae r13, qword [rbp + 8]
add r13, qword [rbp + 0x18]
lea rsi, [rbp + 8]
test r8b, r8b
cmovne rsi, qword [rbp + 8]
cmp qword [r9 + 0x18], 0x10
jb 0x14004a3a9
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x14004a3b3
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x14004a3fa
cmp rsi, r13
je 0x14004a40c
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x14004a3ff
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x14004a40c
inc r14
inc rsi
cmp r14, r12
jne 0x14004a3b8
cmp rsi, r13
je 0x14004a40c
mov r15, qword [r15 + 0x10]
mov rbx, qword [rbp + 0x160]
jmp 0x14004a419
mov rbx, r15
mov qword [rbp + 0x160], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x14004a370
mov rsi, qword [rsp + 0x20]
mov r14, qword [rsp + 0x38]
xor r12d, r12d
cmp byte [rbx + 0x19], 0
jne 0x14004a453
lea r8, [rbx + 0x20]
lea rdx, [rbp + 8]
call fcn.140019bd0
test al, al
jne 0x14004a453
cmp rbx, qword [rsi]
je 0x14004a453
add rbx, 0x50
jmp 0x14004a45a
lea rbx, [0x140112ec0]
mov rbx, qword [rbx]
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x14004a499
lea rdx, [rax + 1]
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a494
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7e2
call fcn.1400a0cf0
test rbx, rbx
jne 0x14004a6c2
xorps xmm0, xmm0
movups xmmword [rbp + 0x160], xmm0
mov rcx, qword [rbp + 0x68]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x28]
lea rdx, [rbp + 0x160]
call qword [rax + 0x60]
nop
mov rbx, qword [rbp + 0x160]
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0x1d0]
call fcn.1400a3760
lea rcx, [rbp + 0x1d0]
call fcn.1400282e0
nop
mov rdx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14004a4f8
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp + 0x1e0]
call fcn.14003e800
lea rdi, [rbx + 0x20]
lea rdx, [0x1400f3f40]
mov rcx, rax
call fcn.140009a00
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x14004a529
mov rdi, qword [rdi]
mov rdx, rdi
mov rcx, rax
call fcn.14003e800
mov eax, 0x50
mov ecx, 0x1bb
cmp byte [rbx + 0x62], 0
cmovne ax, cx
cmp word [rbx + 0x60], ax
je 0x14004a56b
lea rdx, [0x1400f3f3c]
lea rcx, [rbp + 0x1e0]
call fcn.140009a00
movzx edx, word [rbx + 0x60]
mov rcx, rax
call fcn.1400288a0
lea rdx, [rbx + 0x40]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14004a57d
mov rdx, qword [rdx]
lea rcx, [rbp + 0x1e0]
call fcn.14003e800
lea rdx, [rbp + 0x140]
lea rcx, [rbp + 0x1e8]
call fcn.14002d0c0
nop
lea rcx, [rbp + 0x1d0]
call fcn.1400198f0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x110], xmm1
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rbp + 0x100]
call fcn.140003a30
nop
lea r8, [rbp + 0x140]
lea rdx, [rbp + 0x100]
mov rcx, r14
call fcn.14001b280
nop
mov rdx, qword [rbp + 0x118]
cmp rdx, 0x10
jb 0x14004a631
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a62c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7e8
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp + 0x110], xmm0
mov byte [rbp + 0x100], 0
mov rdx, qword [rbp + 0x158]
cmp rdx, 0x10
jb 0x14004a68a
inc rdx
mov rcx, qword [rbp + 0x140]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a684
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7ee
call fcn.1400a0cf0
nop
mov rbx, qword [rbp + 0x168]
test rbx, rbx
je 0x14004a6c2
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14004a6c2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14004a6c2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, qword [rbp + 0x70]
cmp qword [rbx + 0x10], 0
je 0x14004a759
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x38], xmm1
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Protocol
lea rcx, [rbp + 0x28]
call fcn.140003a30
nop
lea rdx, [rbp + 0x28]
mov rcx, rsi
call fcn.1400279b0
cmp rax, rbx
je 0x14004a722
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x14004a716
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.1400090d0
nop
mov rdx, qword [rbp + 0x40]
cmp rdx, 0x10
jb 0x14004a759
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a754
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a78e
call fcn.1400a0cf0
mov rax, qword [rbp + 0x78]
mov dword [rax], r12d
lea rcx, [0x140112e30]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0x2f0]
xor rcx, rsp
call fcn.1400a0cd0
add rsp, 0x408
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
int3
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
int3
call fcn.1400af8e4
nop
call fcn.1400af8e4
nop
call fcn.1400af8e4
int3