Function at 0x10030690
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007aab2
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x10098140]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x140], ecx
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x134]
push eax
mov dword [ebp - 0x148], 0
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x138], esi
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x134], 0x1f
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Key1]
mov ecx, eax
mov dword [ebp - 0x28], 0x12
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
mov ax, word [0x1008af2c]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x74]
add esi, 0x18
push eax
mov ecx, esi
call fcn.10025c00
mov edi, dword [ebp - 0x6c]
cmp byte [edi + 0xd], 0
jne 0x1003078c
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.100072e0
test al, al
jne 0x1003078c
cmp edi, dword [esi]
je 0x1003078c
add edi, 0x28
jmp 0x10030791
mov edi, 0x10098cd8
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.10032610
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x100307d6
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100307cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313dc
push ecx
push edx
call fcn.100502a8
add esp, 8
lea eax, [ebp - 0x134]
mov dword [ebp - 0x28], 0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0x1f
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Key2]
mov ecx, eax
mov dword [ebp - 0x28], 0x12
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
mov ax, word [0x1008af40]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x74]
mov ecx, esi
push eax
call fcn.10025c00
mov edi, dword [ebp - 0x6c]
cmp byte [edi + 0xd], 0
jne 0x1003086e
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.100072e0
test al, al
jne 0x1003086e
cmp edi, dword [esi]
je 0x1003086e
add edi, 0x28
jmp 0x10030873
mov edi, 0x10098cd8
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.10032610
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x100308b8
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100308ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313e1
push ecx
push edx
call fcn.100502a8
add esp, 8
lea eax, [ebp - 0x134]
mov dword [ebp - 0x40], 0
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x3c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0x1f
push eax
movups xmmword [ebp - 0x50], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Key3]
mov ecx, eax
mov dword [ebp - 0x40], 0x12
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x50], ecx
movups xmmword [ecx], xmm0
mov ax, word [0x1008af18]
mov word [ecx + 0x10], ax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x74]
mov byte [ecx + 0x12], 0
push eax
mov ecx, esi
call fcn.10025c00
mov edi, dword [ebp - 0x6c]
cmp byte [edi + 0xd], 0
jne 0x10030947
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.100072e0
test al, al
jne 0x10030947
cmp edi, dword [esi]
lea esi, [edi + 0x28]
jne 0x1003094c
mov esi, 0x10098cd8
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x10030980
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030976
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313e6
push ecx
push edx
call fcn.100502a8
add esp, 8
mov dword [ebp - 0x40], 0
mov eax, 8
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp dword [esi + 0x14], 0xf
mov ecx, dword [esi + 0x10]
jbe 0x100309ab
cmp ecx, eax
cmovb eax, ecx
add eax, dword [esi]
mov esi, dword [esi]
jmp 0x100309b2
cmp ecx, eax
cmovb eax, ecx
add eax, esi
sub eax, esi
push eax
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.100519f0
lea eax, [ebp - 0x134]
mov dword [ebp - 0x28], 0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0x1f
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.10003440
movups xmm0, xmmword [ebp - 0x20]
mov ecx, eax
mov dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x24], eax
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0
mov dword [ebp - 4], 3
lea edx, [ebp - 0x38]
cmp dword [ebp - 0x24], 0xf
lea ecx, [ebp - 0xd8]
push dword [ebp - 0x28]
cmova edx, dword [ebp - 0x38]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd0], 0x67452301
mov dword [ebp - 0xcc], 0xefcdab89
mov dword [ebp - 0xc8], 0x98badcfe
mov dword [ebp - 0xc4], 0x10325476
call fcn.10011920
add esp, 0x18
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0xd8]
call fcn.10011a00
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push 0
movups xmmword [ebp - 0x50], xmm0
push 0x10
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
mov dword [ebp - 0x148], 1
call fcn.10003b60
cmp dword [ebp - 0x3c], 0xf
lea eax, [ebp - 0x50]
movups xmm0, xmmword [ebp - 0x20]
cmova eax, dword [ebp - 0x50]
mov dword [ebp - 0x134], 0x1f
movups xmmword [eax], xmm0
lea eax, [ebp - 0x134]
mov dword [ebp - 0x70], 0
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0x6c], 0
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x80], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Key3]
mov ecx, eax
mov dword [ebp - 0x70], 0x12
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x80], ecx
movups xmmword [ecx], xmm0
mov ax, word [0x1008af18]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0x13c]
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10008d80
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x10030b6c
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030b62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313eb
push ecx
push edx
call fcn.100502a8
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0xf
jbe 0x10030bb6
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030bac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313eb
push ecx
push edx
call fcn.100502a8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp ecx, 0xf
jbe 0x10030c03
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030bf9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313eb
push ecx
push edx
call fcn.100502a8
add esp, 8
mov al, byte [0x1008af4c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 9
movq xmm0, qword [str.WebSocket]
mov dword [ebp - 0x54], 0xf
movq qword [ebp - 0x68], xmm0
mov byte [ebp - 0x60], al
mov byte [ebp - 0x5f], 0
mov dword [ebp - 4], 5
xorps xmm0, xmm0
mov eax, dword [str.Upgrade]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], eax
mov ax, word [0x1008ae94]
mov word [ebp - 0x34], ax
mov al, byte [0x1008ae96]
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x32], al
mov byte [ebp - 0x31], 0
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.10008d80
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030cb6
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030cac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313f0
push ecx
push edx
call fcn.100502a8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0xf
jbe 0x10030d03
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030cf9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313f0
push ecx
push edx
call fcn.100502a8
add esp, 8
mov eax, dword [str.Upgrade]
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x50], eax
movzx eax, word [0x1008ae94]
mov word [ebp - 0x4c], ax
mov al, byte [0x1008ae96]
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x4a], al
mov byte [ebp - 0x49], 0
mov dword [ebp - 4], 7
movzx eax, word [0x1008aea0]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0xa
movq xmm0, qword [str.Connection]
mov dword [ebp - 0x24], 0xf
movq qword [ebp - 0x38], xmm0
mov word [ebp - 0x30], ax
mov byte [ebp - 0x2e], 0
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.10008d80
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030db7
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030dad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313f5
push ecx
push edx
call fcn.100502a8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0xf
jbe 0x10030e04
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030dfa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313f5
push ecx
push edx
call fcn.100502a8
add esp, 8
lea eax, [ebp - 0x134]
mov dword [ebp - 0x28], 0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0x1f
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Origin]
mov ecx, eax
mov dword [ebp - 0x28], 0x14
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x24], eax
movups xmmword [ecx], xmm0
mov eax, dword [0x1008ae68]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x14], 0
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [edi + 0x18]
call fcn.10025c00
mov esi, dword [ebp - 0x6c]
cmp byte [esi + 0xd], 0
jne 0x10030e95
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.100072e0
test al, al
jne 0x10030e95
cmp esi, dword [edi + 0x18]
je 0x10030e95
add esi, 0x38
jmp 0x10030e9a
mov esi, 0x10098ce8
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x10030ed0
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030ec6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313fa
push ecx
push edx
call fcn.100502a8
add esp, 8
test esi, esi
jne 0x1003100d
mov eax, dword [str.Origin]
xorps xmm0, xmm0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x68], eax
mov ax, word [0x1008ae8c]
mov dword [ebp - 0x58], 6
mov dword [ebp - 0x54], 0xf
mov word [ebp - 0x64], ax
mov byte [ebp - 0x62], 0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x138]
push eax
call fcn.10008c90
mov esi, eax
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x134]
mov dword [ebp - 0x24], 0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x134], 0x1f
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Origin]
mov ecx, eax
mov dword [ebp - 0x28], 0x14
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
mov eax, dword [0x1008ae68]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x14], 0
push esi
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.10008d80
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030fc0
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030fb6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313ff
push ecx
push edx
call fcn.100502a8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0xf
jbe 0x1003100d
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10031003
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100313ff
push ecx
push edx
call fcn.100502a8
add esp, 8
lea eax, [ebp - 0x134]
mov dword [ebp - 0x28], 0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0x1f
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Location]
mov ecx, eax
mov dword [ebp - 0x28], 0x16
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
mov eax, dword [0x1008af60]
mov dword [ecx + 0x10], eax
mov ax, word [0x1008af64]
mov word [ecx + 0x14], ax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x74]
mov byte [ecx + 0x16], 0
lea ecx, [edi + 0x18]
push eax
call fcn.10025c00
mov esi, dword [ebp - 0x6c]
cmp byte [esi + 0xd], 0
jne 0x100310a8
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.100072e0
test al, al
jne 0x100310a8
cmp esi, dword [edi + 0x18]
je 0x100310a8
add esi, 0x38
jmp 0x100310ad
mov esi, 0x10098ce8
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x100310e3
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100310d9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10031404
push ecx
push edx
call fcn.100502a8
add esp, 8
test esi, esi
jne 0x100312da
mov ecx, dword [ebp - 0x140]
lea edx, [ebp - 0x144]
push dword [ebp - 0x138]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
push ecx
mov dword [ebp - 4], 0xb
lea ecx, [ebp - 0x130]
mov esi, dword [ebp - 0x144]
call fcn.100143d0
mov byte [ebp - 4], 0xc
mov edx, esi
cmp dword [esi + 0x14], 0xf
jbe 0x1003112a
mov edx, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x120]
call fcn.10024e50
add esp, 4
lea edi, [esi + 0x18]
mov edx, 0x100891b4
mov ecx, eax
call fcn.1001ad50
cmp dword [edi + 0x14], 0xf
mov ecx, dword [edi + 0x10]
jbe 0x10031155
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.10024e50
add esp, 4
mov eax, 0x50
cmp byte [esi + 0x4a], 0
mov ecx, 0x1bb
cmovne eax, ecx
cmp word [esi + 0x48], ax
je 0x10031195
mov edx, 0x100891b0
lea ecx, [ebp - 0x120]
call fcn.1001ad50
mov ecx, eax
movzx eax, word [esi + 0x48]
push eax
call fcn.100153c0
cmp dword [esi + 0x44], 0xf
lea edx, [esi + 0x30]
mov eax, dword [edx + 0x10]
jbe 0x100311a3
mov edx, dword [edx]
push eax
lea ecx, [ebp - 0x120]
call fcn.10024e50
add esp, 4
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x118]
push eax
call fcn.10017e10
lea ecx, [ebp - 0x130]
call fcn.10007040
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x28], 0
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
push eax
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x138], 0x1f
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Location]
mov ecx, eax
mov dword [ebp - 0x28], 0x16
mov eax, dword [ebp - 0x138]
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], ecx
movups xmmword [ecx], xmm0
mov eax, dword [0x1008af60]
mov dword [ecx + 0x10], eax
mov ax, word [0x1008af64]
mov word [ecx + 0x14], ax
mov byte [ecx + 0x16], 0
mov edi, dword [ebp - 0x13c]
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0xe
push eax
mov ecx, edi
call fcn.10008d80
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10031288
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003127e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10031409
push ecx
push edx
call fcn.100502a8
add esp, 8
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
call fcn.10003a60
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x140]
test esi, esi
je 0x100312da
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x100312d4
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x100312d4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x14c]
cmp dword [esi + 0x10], 0
je 0x100313ac
lea eax, [ebp - 0x138]
mov dword [ebp - 0x58], 0
push eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x54], 0
xorps xmm0, xmm0
mov dword [ebp - 0x138], 0x1f
push eax
movups xmmword [ebp - 0x68], xmm0
call fcn.10003440
movups xmm0, xmmword [str.Sec_WebSocket_Protocol]
mov ecx, eax
mov dword [ebp - 0x58], 0x16
mov eax, dword [ebp - 0x138]
add esp, 8
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x68], ecx
movups xmmword [ecx], xmm0
mov eax, dword [0x1008ae80]
mov dword [ecx + 0x10], eax
mov ax, word [0x1008ae84]
mov word [ecx + 0x14], ax
mov byte [ecx + 0x16], 0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xf
push eax
lea ecx, [edi + 0x18]
call fcn.100141b0
cmp eax, esi
je 0x1003137c
cmp dword [esi + 0x14], 0xf
mov ecx, dword [esi + 0x10]
jbe 0x10031373
mov esi, dword [esi]
push ecx
push esi
mov ecx, eax
call fcn.10018600
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x100313ac
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100313a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003140e
push ecx
push edx
call fcn.100502a8
add esp, 8
mov eax, dword [ebp - 0x150]
mov dword [eax], 0
mov dword [eax + 4], 0x10098ca0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004ff4b
mov esp, ebp
pop ebp
ret 0x10
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
call fcn.1005a45d
int3