Function at 0x10030350
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007a952
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.10003350
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.100258d0
mov edi, dword [ebp - 0x6c]
cmp byte [edi + 0xd], 0
jne 0x1003044c
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.10007110
test al, al
jne 0x1003044c
cmp edi, dword [esi]
je 0x1003044c
add edi, 0x28
jmp 0x10030451
mov edi, 0x10098cd8
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.100322d0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030496
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003048c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003109c
push ecx
push edx
call fcn.10050146
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.10003350
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.100258d0
mov edi, dword [ebp - 0x6c]
cmp byte [edi + 0xd], 0
jne 0x1003052e
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.10007110
test al, al
jne 0x1003052e
cmp edi, dword [esi]
je 0x1003052e
add edi, 0x28
jmp 0x10030533
mov edi, 0x10098cd8
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.100322d0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030578
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003056e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310a1
push ecx
push edx
call fcn.10050146
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.10003350
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.100258d0
mov edi, dword [ebp - 0x6c]
cmp byte [edi + 0xd], 0
jne 0x10030607
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.10007110
test al, al
jne 0x10030607
cmp edi, dword [esi]
lea esi, [edi + 0x28]
jne 0x1003060c
mov esi, 0x10098cd8
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x10030640
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030636
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310a6
push ecx
push edx
call fcn.10050146
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 0x1003066b
cmp ecx, eax
cmovb eax, ecx
add eax, dword [esi]
mov esi, dword [esi]
jmp 0x10030672
cmp ecx, eax
cmovb eax, ecx
add eax, esi
sub eax, esi
push eax
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.10051890
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.10003350
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.10011750
add esp, 0x18
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0xd8]
call fcn.10011830
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.10003a70
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.10003350
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.10008bb0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x1003082c
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030822
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310ab
push ecx
push edx
call fcn.10050146
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 0x10030876
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003086c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310ab
push ecx
push edx
call fcn.10050146
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 0x100308c3
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100308b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310ab
push ecx
push edx
call fcn.10050146
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.10008bb0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030976
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1003096c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310b0
push ecx
push edx
call fcn.10050146
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 0x100309c3
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100309b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310b0
push ecx
push edx
call fcn.10050146
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.10008bb0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030a77
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030a6d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310b5
push ecx
push edx
call fcn.10050146
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 0x10030ac4
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030aba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310b5
push ecx
push edx
call fcn.10050146
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.10003350
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.100258d0
mov esi, dword [ebp - 0x6c]
cmp byte [esi + 0xd], 0
jne 0x10030b55
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.10007110
test al, al
jne 0x10030b55
cmp esi, dword [edi + 0x18]
je 0x10030b55
add esi, 0x38
jmp 0x10030b5a
mov esi, 0x10098ce8
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x10030b90
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030b86
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310ba
push ecx
push edx
call fcn.10050146
add esp, 8
test esi, esi
jne 0x10030ccd
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.10008ac0
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.10003350
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.10008bb0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030c80
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030c76
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310bf
push ecx
push edx
call fcn.10050146
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 0x10030ccd
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030cc3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310bf
push ecx
push edx
call fcn.10050146
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.10003350
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.100258d0
mov esi, dword [ebp - 0x6c]
cmp byte [esi + 0xd], 0
jne 0x10030d68
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.10007110
test al, al
jne 0x10030d68
cmp esi, dword [edi + 0x18]
je 0x10030d68
add esi, 0x38
jmp 0x10030d6d
mov esi, 0x10098ce8
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x10030da3
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030d99
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310c4
push ecx
push edx
call fcn.10050146
add esp, 8
test esi, esi
jne 0x10030f9a
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.10014000
mov byte [ebp - 4], 0xc
mov edx, esi
cmp dword [esi + 0x14], 0xf
jbe 0x10030dea
mov edx, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x120]
call fcn.10024b20
add esp, 4
lea edi, [esi + 0x18]
mov edx, 0x100891b4
mov ecx, eax
call fcn.1001aa20
cmp dword [edi + 0x14], 0xf
mov ecx, dword [edi + 0x10]
jbe 0x10030e15
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.10024b20
add esp, 4
mov eax, 0x50
cmp byte [esi + 0x4a], 0
mov ecx, 0x1bb
cmovne eax, ecx
cmp word [esi + 0x48], ax
je 0x10030e55
mov edx, 0x100891b0
lea ecx, [ebp - 0x120]
call fcn.1001aa20
mov ecx, eax
movzx eax, word [esi + 0x48]
push eax
call fcn.10014ff0
cmp dword [esi + 0x44], 0xf
lea edx, [esi + 0x30]
mov eax, dword [edx + 0x10]
jbe 0x10030e63
mov edx, dword [edx]
push eax
lea ecx, [ebp - 0x120]
call fcn.10024b20
add esp, 4
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x118]
push eax
call fcn.10017ae0
lea ecx, [ebp - 0x130]
call fcn.10006e70
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.10003350
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.10008bb0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x10030f48
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10030f3e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310c9
push ecx
push edx
call fcn.10050146
add esp, 8
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
call fcn.10003970
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x140]
test esi, esi
je 0x10030f9a
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x10030f94
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x10030f94
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 0x1003106c
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.10003350
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.10013de0
cmp eax, esi
je 0x1003103c
cmp dword [esi + 0x14], 0xf
mov ecx, dword [esi + 0x10]
jbe 0x10031033
mov esi, dword [esi]
push ecx
push esi
mov ecx, eax
call fcn.100182d0
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x1003106c
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10031062
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100310ce
push ecx
push edx
call fcn.10050146
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.1004fde9
mov esp, ebp
pop ebp
ret 0x10
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
call fcn.1005a2fd
int3