Function at 0x18005c9a0
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 - 0x218]
sub rsp, 0x318
mov rax, qword [0x180240300]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov qword [rbp + 0x78], r9
mov rsi, r8
mov qword [rsp + 0x58], r8
mov qword [rbp + 0x80], rdx
mov qword [rbp + 0x70], rcx
mov rax, qword [rbp + 0x280]
mov qword [rbp - 0x78], rax
xor r14d, r14d
mov dword [rsp + 0x30], r14d
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key1
lea rcx, [rbp - 0x70]
call fcn.180005680
nop
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], r14b
jne 0x18005caf6
nop dword [rax]
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova r13, qword [rbp - 0x70]
add r13, qword [rbp - 0x60]
lea rbx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova rbx, qword [rbp - 0x70]
cmp qword [r9 + 0x18], 0xf
jbe 0x18005ca77
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x18005ca81
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x18005cac8
cmp rbx, r13
je 0x18005cad8
movzx esi, byte [rbx]
movzx ecx, byte [r14]
call fcn.1801baf58
mov edi, eax
mov ecx, esi
call fcn.1801baf58
cmp edi, eax
jl 0x18005cacd
movzx esi, byte [r14]
movzx ecx, byte [rbx]
call fcn.1801baf58
mov edi, eax
mov ecx, esi
call fcn.1801baf58
cmp edi, eax
jl 0x18005cad8
inc r14
inc rbx
cmp r14, r12
jne 0x18005ca86
cmp rbx, r13
je 0x18005cad8
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x18005cae3
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x18005ca40
mov rsi, qword [rsp + 0x58]
xor r14d, r14d
lea rdi, [0x180241468]
mov qword [rsp + 0x60], rdi
cmp byte [rbx + 0x19], 0
jne 0x18005cb23
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x70]
call fcn.18000d0a0
test al, al
jne 0x18005cb23
cmp rbx, qword [rsi + 0x20]
lea rdx, [rbx + 0x40]
jne 0x18005cb26
mov rdx, rdi
lea r8, [rbp + 0x1f0]
call fcn.18005f080
nop
lea rcx, [rbp - 0x70]
call fcn.1800042b0
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key2
lea rcx, [rbp - 0x50]
call fcn.180005680
nop
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x18005cc3d
nop word [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova r13, qword [rbp - 0x50]
add r13, qword [rbp - 0x40]
lea rsi, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova rsi, qword [rbp - 0x50]
cmp qword [r9 + 0x18], 0xf
jbe 0x18005cbb7
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x18005cbc1
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x18005cc08
cmp rsi, r13
je 0x18005cc18
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005cc0d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005cc18
inc r14
inc rsi
cmp r14, r12
jne 0x18005cbc6
cmp rsi, r13
je 0x18005cc18
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x18005cc23
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x18005cb80
lea rdi, [0x180241468]
mov rsi, qword [rsp + 0x58]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x18005cc5e
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x50]
call fcn.18000d0a0
test al, al
jne 0x18005cc5e
cmp rbx, qword [rsi + 0x20]
lea rdx, [rbx + 0x40]
jne 0x18005cc61
mov rdx, rdi
lea r8, [rbp + 0x1f4]
call fcn.18005f080
nop
lea rcx, [rbp - 0x50]
call fcn.1800042b0
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r14
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp - 0x30]
call fcn.180005680
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x18005cd76
nop dword [rax]
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x30]
cmp qword [rbp - 0x18], 0xf
cmova r13, qword [rbp - 0x30]
add r13, qword [rbp - 0x20]
lea rsi, [rbp - 0x30]
cmp qword [rbp - 0x18], 0xf
cmova rsi, qword [rbp - 0x30]
cmp qword [r9 + 0x18], 0xf
jbe 0x18005ccf7
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x18005cd01
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x18005cd48
cmp rsi, r13
je 0x18005cd58
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005cd4d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005cd58
inc r14
inc rsi
cmp r14, r12
jne 0x18005cd06
cmp rsi, r13
je 0x18005cd58
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x18005cd63
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x18005ccc0
mov rsi, qword [rsp + 0x58]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x18005cd99
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x30]
call fcn.18000d0a0
test al, al
jne 0x18005cd99
cmp rbx, qword [rsi + 0x20]
je 0x18005cd99
add rbx, 0x40
jmp 0x18005cda0
lea rbx, [0x180241468]
lea rcx, [rbp - 0x30]
call fcn.1800042b0
mov rax, qword [rbx + 0x10]
mov r8d, 8
cmp qword [rbx + 0x18], 0xf
jbe 0x18005cdc9
cmp rax, r8
cmovb r8, rax
add r8, qword [rbx]
mov rbx, qword [rbx]
jmp 0x18005cdd3
cmp rax, r8
cmovb r8, rax
add r8, rbx
sub r8, rbx
mov rdx, rbx
lea rcx, [rbp + 0x1f8]
call fcn.1801d8850
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x1f0]
lea rcx, [rsp + 0x68]
call fcn.180005680
nop
mov qword [rbp + 0x90], 0
mov dword [rbp + 0x98], 0x67452301
mov dword [rbp + 0x9c], 0xefcdab89
mov dword [rbp + 0xa0], 0x98badcfe
mov dword [rbp + 0xa4], 0x10325476
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0xf
cmova rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x78]
lea rcx, [rbp + 0x90]
call fcn.18001ca30
lea rdx, [rbp + 0x1f0]
lea rcx, [rbp + 0x90]
call fcn.18001cb30
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], r14
mov qword [rbp + 0x68], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x50], 0
mov dword [rsp + 0x30], 1
mov byte [rsp + 0x20], 0
mov r9d, reloc.WS2_32.dll_recv
xor r8d, r8d
mov edx, r9d
lea rcx, [rbp + 0x50]
call fcn.180006360
lea rax, [rbp + 0x50]
cmp qword [rbp + 0x68], 0xf
cmova rax, qword [rbp + 0x50]
movups xmm0, xmmword [rbp + 0x1f0]
movups xmmword [rax], xmm0
xorps xmm1, xmm1
movups xmmword [rsp + 0x38], xmm1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rsp + 0x38]
call fcn.180005680
nop
lea r8, [rbp + 0x50]
lea rdx, [rsp + 0x38]
mov rsi, qword [rbp - 0x78]
mov rcx, rsi
call fcn.18000e420
nop
lea rcx, [rsp + 0x38]
call fcn.1800042b0
nop
lea rcx, [rbp + 0x50]
call fcn.1800042b0
nop
lea rcx, [rsp + 0x68]
call fcn.1800042b0
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
mov r8d, 9
lea rdx, str.WebSocket
lea rcx, [rsp + 0x68]
call fcn.180005680
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rsp + 0x38]
call fcn.180005680
nop
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.18000e420
nop
lea rcx, [rsp + 0x38]
call fcn.1800042b0
nop
lea rcx, [rsp + 0x68]
call fcn.1800042b0
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rsp + 0x68]
call fcn.180005680
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
mov r8d, 0xa
lea rdx, str.Connection
lea rcx, [rsp + 0x38]
call fcn.180005680
nop
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.18000e420
nop
lea rcx, [rsp + 0x38]
call fcn.1800042b0
nop
lea rcx, [rsp + 0x68]
call fcn.1800042b0
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], r14
mov qword [rbp + 8], r14
mov r8d, shutdown
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rbp - 0x10]
call fcn.180005680
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x18005d115
nop word [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x10]
cmp qword [rbp + 8], 0xf
cmova r13, qword [rbp - 0x10]
add r13, qword [rbp]
lea rsi, [rbp - 0x10]
cmp qword [rbp + 8], 0xf
cmova rsi, qword [rbp - 0x10]
cmp qword [r9 + 0x18], 0xf
jbe 0x18005d097
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x18005d0a1
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x18005d0e8
cmp rsi, r13
je 0x18005d0f8
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005d0ed
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005d0f8
inc r14
inc rsi
cmp r14, r12
jne 0x18005d0a6
cmp rsi, r13
je 0x18005d0f8
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x18005d103
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x18005d060
mov rsi, qword [rbp - 0x78]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x18005d138
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x10]
call fcn.18000d0a0
test al, al
jne 0x18005d138
cmp rbx, qword [rsi + 0x20]
je 0x18005d138
add rbx, 0x50
jmp 0x18005d13f
lea rbx, [0x180241478]
mov rbx, qword [rbx]
lea rcx, [rbp - 0x10]
call fcn.1800042b0
test rbx, rbx
jne 0x18005d2d0
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], r14
mov qword [rbp + 0x28], r14
mov r8d, 6
lea rdx, str.Origin
lea rcx, [rbp + 0x10]
call fcn.180005680
nop
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rdi + 0x20]
mov qword [rsp + 0x30], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x18005d256
nop word [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp + 0x10]
cmp qword [rbp + 0x28], 0xf
cmova r13, qword [rbp + 0x10]
add r13, qword [rbp + 0x20]
lea rsi, [rbp + 0x10]
cmp qword [rbp + 0x28], 0xf
cmova rsi, qword [rbp + 0x10]
cmp qword [r9 + 0x18], 0xf
jbe 0x18005d1d7
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x18005d1e1
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x18005d228
cmp rsi, r13
je 0x18005d238
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005d22d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005d238
inc r14
inc rsi
cmp r14, r12
jne 0x18005d1e6
cmp rsi, r13
je 0x18005d238
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x30]
jmp 0x18005d243
mov rbx, r15
mov qword [rsp + 0x30], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x18005d1a0
mov rdi, qword [rsp + 0x58]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x18005d27c
lea r8, [rbx + 0x20]
lea rdx, [rbp + 0x10]
call fcn.18000d0a0
test al, al
jne 0x18005d27c
cmp rbx, qword [rdi + 0x20]
je 0x18005d27c
lea rax, [rbx + 0x40]
mov qword [rsp + 0x60], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
mov r8d, shutdown
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rsp + 0x38]
call fcn.180005680
nop
mov r8, qword [rsp + 0x60]
lea rdx, [rsp + 0x38]
mov rsi, qword [rbp - 0x78]
mov rcx, rsi
call fcn.18000e420
nop
lea rcx, [rsp + 0x38]
call fcn.1800042b0
nop
lea rcx, [rbp + 0x10]
call fcn.1800042b0
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x48], r14
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rbp + 0x30]
call fcn.180005680
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x60], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x18005d3c5
nop dword [rax]
lea r9, [r15 + 0x20]
lea r13, [rbp + 0x30]
cmp qword [rbp + 0x48], 0xf
cmova r13, qword [rbp + 0x30]
add r13, qword [rbp + 0x40]
lea rsi, [rbp + 0x30]
cmp qword [rbp + 0x48], 0xf
cmova rsi, qword [rbp + 0x30]
cmp qword [r9 + 0x18], 0xf
jbe 0x18005d347
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x18005d351
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x18005d398
cmp rsi, r13
je 0x18005d3a8
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005d39d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1801baf58
mov ebx, eax
mov ecx, edi
call fcn.1801baf58
cmp ebx, eax
jl 0x18005d3a8
inc r14
inc rsi
cmp r14, r12
jne 0x18005d356
cmp rsi, r13
je 0x18005d3a8
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x60]
jmp 0x18005d3b3
mov rbx, r15
mov qword [rsp + 0x60], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x18005d310
mov rsi, qword [rbp - 0x78]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x18005d3e8
lea r8, [rbx + 0x20]
lea rdx, [rbp + 0x30]
call fcn.18000d0a0
test al, al
jne 0x18005d3e8
cmp rbx, qword [rsi + 0x20]
je 0x18005d3e8
add rbx, 0x50
jmp 0x18005d3ef
lea rbx, [0x180241478]
mov rbx, qword [rbx]
lea rcx, [rbp + 0x30]
call fcn.1800042b0
test rbx, rbx
jne 0x18005d594
xorps xmm0, xmm0
movups xmmword [rbp + 0x1f0], xmm0
mov rcx, qword [rbp + 0x70]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x58]
lea rdx, [rbp + 0x1f0]
call qword [rax + 0x60]
nop
mov rbx, qword [rbp + 0x1f0]
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0xf0]
call fcn.1801d8ef0
lea rcx, [rbp + 0xf0]
call fcn.18002e6c0
nop
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18005d45a
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp + 0x100]
call fcn.180049ab0
lea rdi, [rbx + 0x20]
lea rdx, [0x1801ff650]
mov rcx, rax
call fcn.180005290
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0xf
jbe 0x18005d48b
mov rdi, qword [rdi]
mov rdx, rdi
mov rcx, rax
call fcn.180049ab0
mov eax, 0x50
mov ecx, 0x1bb
cmp byte [rbx + 0x62], 0
cmovne ax, cx
cmp word [rbx + 0x60], ax
je 0x18005d4cd
lea rdx, [0x1801ff090]
lea rcx, [rbp + 0x100]
call fcn.180005290
movzx edx, word [rbx + 0x60]
mov rcx, rax
call fcn.18002ecb0
lea rdx, [rbx + 0x40]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x18005d4df
mov rdx, qword [rdx]
lea rcx, [rbp + 0x100]
call fcn.180049ab0
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0x108]
call fcn.1800341d0
nop
lea rcx, [rbp + 0xf0]
call fcn.18000cda0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rsp + 0x38]
call fcn.180005680
nop
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.18000e420
nop
lea rcx, [rsp + 0x38]
call fcn.1800042b0
nop
lea rcx, [rsp + 0x68]
call fcn.1800042b0
nop
mov rbx, qword [rbp + 0x1f8]
test rbx, rbx
je 0x18005d594
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18005d594
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18005d594
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, qword [rbp + 0x78]
cmp qword [rbx + 0x10], 0
je 0x18005d5ff
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Protocol
lea rcx, [rsp + 0x38]
call fcn.180005680
nop
lea rcx, [rsi + 0x20]
lea rdx, [rsp + 0x38]
call fcn.18002dd30
cmp rax, rbx
je 0x18005d5f5
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0xf
jbe 0x18005d5e9
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.180034860
nop
lea rcx, [rsp + 0x38]
call fcn.1800042b0
mov rax, qword [rbp + 0x80]
mov dword [rax], r14d
lea rcx, [0x180244a98]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.18017b580
add rsp, 0x318
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret