Function at 0x1401d7520
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 - 0x208]
sub rsp, 0x308
mov rax, qword [0x140648080]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
mov qword [rbp + 0x68], r9
mov rsi, r8
mov qword [rsp + 0x48], r8
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x60], rcx
mov rax, qword [rbp + 0x270]
mov qword [rsp + 0x78], rax
xor r14d, r14d
mov dword [rsp + 0x20], r14d
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r14
mov qword [rbp - 0x68], r14
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key1
lea rcx, [rbp - 0x80]
call fcn.14012cef0
nop
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], r14b
jne 0x1401d7668
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova r13, qword [rbp - 0x80]
add r13, qword [rbp - 0x70]
lea rbx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova rbx, qword [rbp - 0x80]
cmp qword [r9 + 0x18], 0xf
jbe 0x1401d75e9
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1401d75f3
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1401d763a
cmp rbx, r13
je 0x1401d764a
movzx esi, byte [rbx]
movzx ecx, byte [r14]
call fcn.1404b9e8c
mov edi, eax
mov ecx, esi
call fcn.1404b9e8c
cmp edi, eax
jl 0x1401d763f
movzx esi, byte [r14]
movzx ecx, byte [rbx]
call fcn.1404b9e8c
mov edi, eax
mov ecx, esi
call fcn.1404b9e8c
cmp edi, eax
jl 0x1401d764a
inc r14
inc rbx
cmp r14, r12
jne 0x1401d75f8
cmp rbx, r13
je 0x1401d764a
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x1401d7655
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401d75b2
mov rsi, qword [rsp + 0x48]
xor r14d, r14d
lea rdi, [0x140648de0]
mov qword [rsp + 0x50], rdi
cmp byte [rbx + 0x19], 0
jne 0x1401d7695
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x80]
call fcn.14016e3e0
test al, al
jne 0x1401d7695
cmp rbx, qword [rsi + 0x20]
lea rdx, [rbx + 0x40]
jne 0x1401d7698
mov rdx, rdi
lea r8, [rbp + 0x1e0]
call fcn.1401d9780
nop
lea rcx, [rbp - 0x80]
call fcn.14012c790
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], r14
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key2
lea rcx, [rbp - 0x60]
call fcn.14012cef0
nop
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401d77ad
nop dword [rax]
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x60]
cmp qword [rbp - 0x48], 0xf
cmova r13, qword [rbp - 0x60]
add r13, qword [rbp - 0x50]
lea rsi, [rbp - 0x60]
cmp qword [rbp - 0x48], 0xf
cmova rsi, qword [rbp - 0x60]
cmp qword [r9 + 0x18], 0xf
jbe 0x1401d7727
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1401d7731
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1401d7778
cmp rsi, r13
je 0x1401d7788
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d777d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7788
inc r14
inc rsi
cmp r14, r12
jne 0x1401d7736
cmp rsi, r13
je 0x1401d7788
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x1401d7793
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401d76f0
lea rdi, [0x140648de0]
mov rsi, qword [rsp + 0x48]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x1401d77ce
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x60]
call fcn.14016e3e0
test al, al
jne 0x1401d77ce
cmp rbx, qword [rsi + 0x20]
lea rdx, [rbx + 0x40]
jne 0x1401d77d1
mov rdx, rdi
lea r8, [rbp + 0x1e4]
call fcn.1401d9780
nop
lea rcx, [rbp - 0x60]
call fcn.14012c790
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r14
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp - 0x40]
call fcn.14012cef0
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401d78e6
nop dword [rax]
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova r13, qword [rbp - 0x40]
add r13, qword [rbp - 0x30]
lea rsi, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rsi, qword [rbp - 0x40]
cmp qword [r9 + 0x18], 0xf
jbe 0x1401d7867
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1401d7871
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1401d78b8
cmp rsi, r13
je 0x1401d78c8
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d78bd
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d78c8
inc r14
inc rsi
cmp r14, r12
jne 0x1401d7876
cmp rsi, r13
je 0x1401d78c8
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x1401d78d3
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401d7830
mov rsi, qword [rsp + 0x48]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x1401d7909
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x40]
call fcn.14016e3e0
test al, al
jne 0x1401d7909
cmp rbx, qword [rsi + 0x20]
je 0x1401d7909
add rbx, 0x40
jmp 0x1401d7910
lea rbx, [0x140648de0]
lea rcx, [rbp - 0x40]
call fcn.14012c790
mov rax, qword [rbx + 0x10]
mov r8d, 8
cmp qword [rbx + 0x18], 0xf
jbe 0x1401d7939
cmp rax, r8
cmovb r8, rax
add r8, qword [rbx]
mov rbx, qword [rbx]
jmp 0x1401d7943
cmp rax, r8
cmovb r8, rax
add r8, rbx
sub r8, rbx
mov rdx, rbx
lea rcx, [rbp + 0x1e8]
call fcn.1404dd160
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x1e0]
lea rcx, [rsp + 0x58]
call fcn.14012cef0
nop
mov qword [rbp + 0x80], 0
mov dword [rbp + 0x88], 0x67452301
mov dword [rbp + 0x8c], 0xefcdab89
mov dword [rbp + 0x90], 0x98badcfe
mov dword [rbp + 0x94], 0x10325476
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [rbp + 0x80]
call fcn.14017ccc0
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x80]
call fcn.14017cdc0
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
movdqa xmm1, xmmword [0x1405f9260]
movdqu xmmword [rbp + 0x50], xmm1
mov byte [rbp + 0x40], 0
mov dword [rsp + 0x20], 1
xor r8d, r8d
mov edx, reloc.WS2_32.dll_recv
lea rcx, [rbp + 0x40]
call fcn.1401a68b0
lea rax, [rbp + 0x40]
cmp qword [rbp + 0x58], 0xf
cmova rax, qword [rbp + 0x40]
movups xmm0, xmmword [rbp + 0x1e0]
movups xmmword [rax], xmm0
xorps xmm1, xmm1
movups xmmword [rsp + 0x28], xmm1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rsp + 0x28]
call fcn.14012cef0
nop
lea r8, [rbp + 0x40]
lea rdx, [rsp + 0x28]
mov rsi, qword [rsp + 0x78]
mov rcx, rsi
call fcn.14016f900
nop
lea rcx, [rsp + 0x28]
call fcn.14012c790
nop
lea rcx, [rbp + 0x40]
call fcn.14012c790
nop
lea rcx, [rsp + 0x58]
call fcn.14012c790
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
mov r8d, 9
lea rdx, str.WebSocket
lea rcx, [rsp + 0x58]
call fcn.14012cef0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rsp + 0x28]
call fcn.14012cef0
nop
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.14016f900
nop
lea rcx, [rsp + 0x28]
call fcn.14012c790
nop
lea rcx, [rsp + 0x58]
call fcn.14012c790
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rsp + 0x58]
call fcn.14012cef0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
mov r8d, 0xa
lea rdx, str.Connection
lea rcx, [rsp + 0x28]
call fcn.14012cef0
nop
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.14016f900
nop
lea rcx, [rsp + 0x28]
call fcn.14012c790
nop
lea rcx, [rsp + 0x58]
call fcn.14012c790
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], r14
mov r8d, reloc.WS2_32.dll_sendto
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rbp - 0x20]
call fcn.14012cef0
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401d7c76
nop
lea r9, [r15 + 0x20]
lea r13, [rbp - 0x20]
cmp qword [rbp - 8], 0xf
cmova r13, qword [rbp - 0x20]
add r13, qword [rbp - 0x10]
lea rsi, [rbp - 0x20]
cmp qword [rbp - 8], 0xf
cmova rsi, qword [rbp - 0x20]
cmp qword [r9 + 0x18], 0xf
jbe 0x1401d7bf7
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1401d7c01
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1401d7c48
cmp rsi, r13
je 0x1401d7c58
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7c4d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7c58
inc r14
inc rsi
cmp r14, r12
jne 0x1401d7c06
cmp rsi, r13
je 0x1401d7c58
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x1401d7c63
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401d7bc0
mov rsi, qword [rsp + 0x78]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x1401d7c99
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x20]
call fcn.14016e3e0
test al, al
jne 0x1401d7c99
cmp rbx, qword [rsi + 0x20]
je 0x1401d7c99
add rbx, 0x50
jmp 0x1401d7ca0
lea rbx, [0x140648df0]
mov rbx, qword [rbx]
lea rcx, [rbp - 0x20]
call fcn.14012c790
test rbx, rbx
jne 0x1401d7e31
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], r14
mov r8d, 6
lea rdx, str.Origin
lea rcx, [rbp]
call fcn.14012cef0
nop
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rdi + 0x20]
mov qword [rsp + 0x20], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401d7db6
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rbp]
cmp qword [rbp + 0x18], 0xf
cmova r13, qword [rbp]
add r13, qword [rbp + 0x10]
lea rsi, [rbp]
cmp qword [rbp + 0x18], 0xf
cmova rsi, qword [rbp]
cmp qword [r9 + 0x18], 0xf
jbe 0x1401d7d37
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1401d7d41
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1401d7d88
cmp rsi, r13
je 0x1401d7d98
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7d8d
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7d98
inc r14
inc rsi
cmp r14, r12
jne 0x1401d7d46
cmp rsi, r13
je 0x1401d7d98
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x20]
jmp 0x1401d7da3
mov rbx, r15
mov qword [rsp + 0x20], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401d7d00
mov rdi, qword [rsp + 0x48]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x1401d7ddc
lea r8, [rbx + 0x20]
lea rdx, [rbp]
call fcn.14016e3e0
test al, al
jne 0x1401d7ddc
cmp rbx, qword [rdi + 0x20]
je 0x1401d7ddc
lea rax, [rbx + 0x40]
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
mov r8d, reloc.WS2_32.dll_sendto
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rsp + 0x28]
call fcn.14012cef0
nop
mov r8, qword [rsp + 0x50]
lea rdx, [rsp + 0x28]
mov rsi, qword [rsp + 0x78]
mov rcx, rsi
call fcn.14016f900
nop
lea rcx, [rsp + 0x28]
call fcn.14012c790
nop
lea rcx, [rbp]
call fcn.14012c790
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], r14
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rbp + 0x20]
call fcn.14012cef0
mov rbx, qword [rsi + 0x20]
mov qword [rsp + 0x50], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401d7f26
nop
lea r9, [r15 + 0x20]
lea r13, [rbp + 0x20]
cmp qword [rbp + 0x38], 0xf
cmova r13, qword [rbp + 0x20]
add r13, qword [rbp + 0x30]
lea rsi, [rbp + 0x20]
cmp qword [rbp + 0x38], 0xf
cmova rsi, qword [rbp + 0x20]
cmp qword [r9 + 0x18], 0xf
jbe 0x1401d7ea7
mov r12, qword [r9]
mov r14, r12
add r12, qword [r9 + 0x10]
jmp 0x1401d7eb1
mov r12, qword [r9 + 0x10]
add r12, r9
mov r14, r9
cmp r14, r12
je 0x1401d7ef8
cmp rsi, r13
je 0x1401d7f08
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7efd
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1404b9e8c
mov ebx, eax
mov ecx, edi
call fcn.1404b9e8c
cmp ebx, eax
jl 0x1401d7f08
inc r14
inc rsi
cmp r14, r12
jne 0x1401d7eb6
cmp rsi, r13
je 0x1401d7f08
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x50]
jmp 0x1401d7f13
mov rbx, r15
mov qword [rsp + 0x50], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401d7e70
mov rsi, qword [rsp + 0x78]
xor r14d, r14d
cmp byte [rbx + 0x19], 0
jne 0x1401d7f49
lea r8, [rbx + 0x20]
lea rdx, [rbp + 0x20]
call fcn.14016e3e0
test al, al
jne 0x1401d7f49
cmp rbx, qword [rsi + 0x20]
je 0x1401d7f49
add rbx, 0x50
jmp 0x1401d7f50
lea rbx, [0x140648df0]
mov rbx, qword [rbx]
lea rcx, [rbp + 0x20]
call fcn.14012c790
test rbx, rbx
jne 0x1401d80f5
xorps xmm0, xmm0
movups xmmword [rbp + 0x1e0], xmm0
mov rcx, qword [rbp + 0x60]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x48]
lea rdx, [rbp + 0x1e0]
call qword [rax + 0x60]
nop
mov rbx, qword [rbp + 0x1e0]
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0xe0]
call fcn.1404dd800
lea rcx, [rbp + 0xe0]
call fcn.1401a5350
nop
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x1401d7fbb
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp + 0xf0]
call fcn.1401c17b0
lea rdi, [rbx + 0x20]
lea rdx, [0x1405edae8]
mov rcx, rax
call fcn.1401b1450
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0xf
jbe 0x1401d7fec
mov rdi, qword [rdi]
mov rdx, rdi
mov rcx, rax
call fcn.1401c17b0
mov eax, 0x50
mov ecx, 0x1bb
cmp byte [rbx + 0x62], 0
cmovne ax, cx
cmp word [rbx + 0x60], ax
je 0x1401d802e
lea rdx, [0x1405edae4]
lea rcx, [rbp + 0xf0]
call fcn.1401b1450
movzx edx, word [rbx + 0x60]
mov rcx, rax
call fcn.1401a6430
lea rdx, [rbx + 0x40]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x1401d8040
mov rdx, qword [rdx]
lea rcx, [rbp + 0xf0]
call fcn.1401c17b0
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0xf8]
call fcn.1401ab530
nop
lea rcx, [rbp + 0xe0]
call fcn.14016e100
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rsp + 0x28]
call fcn.14012cef0
nop
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.14016f900
nop
lea rcx, [rsp + 0x28]
call fcn.14012c790
nop
lea rcx, [rsp + 0x58]
call fcn.14012c790
nop
mov rbx, qword [rbp + 0x1e8]
test rbx, rbx
je 0x1401d80f5
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401d80f5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x1401d80f5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp + 0x68]
cmp qword [rbx + 0x10], 0
je 0x1401d8160
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Protocol
lea rcx, [rsp + 0x28]
call fcn.14012cef0
nop
lea rcx, [rsi + 0x20]
lea rdx, [rsp + 0x28]
call fcn.1401a5230
cmp rax, rbx
je 0x1401d8156
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0xf
jbe 0x1401d814a
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.1401ab8d0
nop
lea rcx, [rsp + 0x28]
call fcn.14012c790
mov rax, qword [rbp + 0x70]
mov dword [rax], r14d
lea rcx, [0x140648ef0]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.1404a4900
add rsp, 0x308
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret