Function at 0x1015ac90
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10216ff2
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x10282800]
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 - 0x14c], ecx
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x134]
push eax
mov dword [ebp - 0x13c], 0
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x148], esi
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x134], 0x1f
call fcn.100ce050
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 [0x102257f4]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x144]
add esi, 0x18
push eax
mov ecx, esi
call fcn.100e9ab0
mov edi, dword [ebp - 0x13c]
cmp byte [edi + 0xd], 0
jne 0x1015ad94
lea eax, [edi + 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.10103de0
test al, al
jne 0x1015ad94
cmp edi, dword [esi]
je 0x1015ad94
add edi, 0x28
jmp 0x1015ad99
mov edi, 0x10282228
mov ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.10111040
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1015ade4
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015adda
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba2e
push ecx
push edx
call fcn.101e3768
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.100ce050
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 [0x10225808]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x144]
mov ecx, esi
push eax
call fcn.100e9ab0
mov edi, dword [ebp - 0x13c]
cmp byte [edi + 0xd], 0
jne 0x1015ae84
lea eax, [edi + 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.10103de0
test al, al
jne 0x1015ae84
cmp edi, dword [esi]
je 0x1015ae84
add edi, 0x28
jmp 0x1015ae89
mov edi, 0x10282228
mov ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.10111040
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1015aed4
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015aeca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba33
push ecx
push edx
call fcn.101e3768
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.100ce050
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 [0x102257e0]
mov word [ecx + 0x10], ax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x144]
mov byte [ecx + 0x12], 0
push eax
mov ecx, esi
call fcn.100e9ab0
mov edi, dword [ebp - 0x13c]
cmp byte [edi + 0xd], 0
jne 0x1015af6b
lea eax, [edi + 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.10103de0
test al, al
jne 0x1015af6b
cmp edi, dword [esi]
lea esi, [edi + 0x28]
jne 0x1015af70
mov esi, 0x10282228
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x1015afa4
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015af9a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba38
push ecx
push edx
call fcn.101e3768
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 0x1015afcf
cmp ecx, eax
cmovb eax, ecx
add eax, dword [esi]
mov esi, dword [esi]
jmp 0x1015afd6
cmp ecx, eax
cmovb eax, ecx
add eax, esi
sub eax, esi
push eax
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.101e55c0
lea eax, [ebp - 0x134]
mov dword [ebp - 0x134], 0x1f
push eax
lea eax, [ebp - 0x80]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x80], xmm0
call fcn.100ce050
movups xmm0, xmmword [ebp - 0x20]
mov ecx, dword [ebp - 0x134]
mov edx, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x70], 0x10
mov dword [ebp - 0x6c], ecx
movups xmmword [edx], xmm0
mov byte [edx + 0x10], 0
cmp ecx, 0xf
mov dword [ebp - 4], 3
lea eax, [ebp - 0x80]
mov dword [ebp - 0xd4], 0
cmova eax, edx
mov dword [ebp - 0xd8], 0
push 0x10
push eax
lea eax, [ebp - 0xd8]
mov dword [ebp - 0xd0], 0x67452301
push eax
mov dword [ebp - 0xcc], 0xefcdab89
mov dword [ebp - 0xc8], 0x98badcfe
mov dword [ebp - 0xc4], 0x10325476
call fcn.10123510
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.101235e0
add esp, 0x28
mov dword [ebp - 0x40], 0
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0xf
movups xmmword [ebp - 0x50], xmm0
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x50], 0
push 0
push 0x10
mov dword [ebp - 0x13c], 1
call fcn.100de6a0
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 - 0x28], 0
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.100ce050
movups xmm0, xmmword [str.Sec_WebSocket_Key3]
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 [0x102257e0]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
mov edi, dword [ebp - 0x138]
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 4
push eax
mov ecx, edi
call fcn.1010bbe0
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 3
cmp ecx, 0xf
jbe 0x1015b183
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b179
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba3d
push ecx
push edx
call fcn.101e3768
add esp, 8
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
mov byte [ebp - 4], 2
cmp ecx, 0xf
jbe 0x1015b1cd
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b1c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba3d
push ecx
push edx
call fcn.101e3768
add esp, 8
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1015b21a
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b210
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba3d
push ecx
push edx
call fcn.101e3768
add esp, 8
mov al, byte [0x10225814]
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 eax, dword [0x10225764]
xorps xmm0, xmm0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], eax
mov ax, word [0x10225768]
mov word [ebp - 0x34], ax
mov al, byte [0x1022576a]
mov dword [ebp - 4], 5
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.1010bbe0
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 5
cmp ecx, 0xf
jbe 0x1015b2cd
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b2c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba42
push ecx
push edx
call fcn.101e3768
add esp, 8
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1015b31a
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b310
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba42
push ecx
push edx
call fcn.101e3768
add esp, 8
mov eax, dword [0x10225764]
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x50], eax
movzx eax, word [0x10225768]
mov word [ebp - 0x4c], ax
mov al, byte [0x1022576a]
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x4a], al
mov byte [ebp - 0x49], 0
movzx eax, word [0x10225774]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 4], 7
movq xmm0, qword [str.Connection]
mov dword [ebp - 0x28], 0xa
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.1010bbe0
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 7
cmp ecx, 0xf
jbe 0x1015b3ce
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b3c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba47
push ecx
push edx
call fcn.101e3768
add esp, 8
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1015b41b
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b411
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba47
push ecx
push edx
call fcn.101e3768
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.100ce050
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 [0x1022573c]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x14], 0
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x144]
push ecx
lea ecx, [edi + 0x18]
call fcn.100e9ab0
mov esi, dword [ebp - 0x13c]
cmp byte [esi + 0xd], 0
jne 0x1015b4b5
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [edi + 0x18]
call fcn.10103de0
test al, al
jne 0x1015b4b5
cmp esi, dword [edi + 0x18]
je 0x1015b4b5
add esi, 0x38
jmp 0x1015b4ba
mov esi, 0x10282238
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x1015b4f0
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b4e6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba4c
push ecx
push edx
call fcn.101e3768
add esp, 8
test esi, esi
jne 0x1015b670
mov eax, dword [str.Origin]
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x50], eax
mov ax, word [0x10225760]
mov dword [ebp - 0x40], 6
mov dword [ebp - 0x3c], 0xf
mov word [ebp - 0x4c], ax
mov byte [ebp - 0x4a], 0
mov eax, dword [ebp - 0x148]
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x144]
mov dword [ebp - 4], 9
push ecx
lea ecx, [eax + 0x18]
call fcn.100e9ab0
mov esi, dword [ebp - 0x13c]
cmp byte [esi + 0xd], 0
jne 0x1015b579
mov ecx, dword [ebp - 0x148]
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ecx + 0x18]
call fcn.10103de0
test al, al
jne 0x1015b579
mov eax, dword [ebp - 0x148]
cmp esi, dword [eax + 0x18]
je 0x1015b579
add esi, 0x28
jmp 0x1015b57e
mov esi, 0x10282228
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.100ce050
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 [0x1022573c]
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.1010bbe0
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 9
cmp ecx, 0xf
jbe 0x1015b623
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b619
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba51
push ecx
push edx
call fcn.101e3768
add esp, 8
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1015b670
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b666
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba51
push ecx
push edx
call fcn.101e3768
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.100ce050
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 - 0x38], ecx
mov dword [ebp - 0x24], eax
movups xmmword [ecx], xmm0
mov eax, dword [0x10225828]
mov dword [ecx + 0x10], eax
mov ax, word [0x1022582c]
mov word [ecx + 0x14], ax
mov byte [ecx + 0x16], 0
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x144]
push ecx
lea ecx, [edi + 0x18]
call fcn.100e9ab0
mov esi, dword [ebp - 0x13c]
cmp byte [esi + 0xd], 0
jne 0x1015b714
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
lea ecx, [edi + 0x18]
call fcn.10103de0
test al, al
jne 0x1015b714
cmp esi, dword [edi + 0x18]
je 0x1015b714
add esi, 0x38
jmp 0x1015b719
mov esi, 0x10282238
mov ecx, dword [ebp - 0x24]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x1015b74f
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b745
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba56
push ecx
push edx
call fcn.101e3768
add esp, 8
test esi, esi
jne 0x1015b92c
mov ecx, dword [ebp - 0x14c]
lea edx, [ebp - 0x140]
push dword [ebp - 0x148]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
mov esi, dword [ebp - 0x140]
lea ecx, [ebp - 0x130]
push 1
mov dword [ebp - 4], 0xb
call fcn.100f9c90
cmp dword [esi + 0x14], 0xf
mov eax, esi
mov byte [ebp - 4], 0xc
jbe 0x1015b797
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.100ea400
push 0x1025f070
push eax
lea edi, [esi + 0x18]
call fcn.100cda10
mov ecx, dword [edi + 0x10]
add esp, 0x14
cmp dword [edi + 0x14], 0xf
jbe 0x1015b7c3
mov edi, dword [edi]
push ecx
push edi
push eax
call fcn.100ea400
add esp, 0xc
mov eax, 0x50
cmp byte [esi + 0x4a], 0
mov ecx, 0x1bb
cmovne eax, ecx
cmp word [esi + 0x48], ax
je 0x1015b805
lea eax, [ebp - 0x120]
push 0x1025f074
push eax
call fcn.100cda10
add esp, 8
mov ecx, eax
movzx eax, word [esi + 0x48]
push eax
call fcn.10102220
mov eax, dword [esi + 0x40]
add esi, 0x30
cmp dword [esi + 0x14], 0xf
jbe 0x1015b813
mov esi, dword [esi]
push eax
lea eax, [ebp - 0x120]
push esi
push eax
call fcn.100ea400
add esp, 0xc
lea eax, [ebp - 0x80]
lea ecx, [ebp - 0x118]
push eax
call fcn.10134560
lea ecx, [ebp - 0x130]
call fcn.10104100
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x40], 0
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x134], 0x1f
call fcn.100ce050
movups xmm0, xmmword [str.Sec_WebSocket_Location]
mov ecx, eax
mov dword [ebp - 0x40], 0x16
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x50], ecx
movups xmmword [ecx], xmm0
mov eax, dword [0x10225828]
mov dword [ecx + 0x10], eax
mov ax, word [0x1022582c]
mov word [ecx + 0x14], ax
mov byte [ecx + 0x16], 0
mov edi, dword [ebp - 0x138]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0xe
push eax
mov ecx, edi
call fcn.1010bbe0
mov eax, dword [ebp - 0x3c]
cmp eax, 0xf
jbe 0x1015b8da
push eax
push dword [ebp - 0x50]
lea eax, [ebp - 0x50]
push eax
call fcn.100dd560
add esp, 0xc
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
call fcn.100da200
mov esi, dword [ebp - 0x13c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1015b92c
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x1015b926
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x1015b926
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0x138]
mov esi, dword [ebp - 0x150]
cmp dword [esi + 0x10], 0
je 0x1015b9fe
lea eax, [ebp - 0x134]
mov dword [ebp - 0x58], 0
push eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x54], 0
xorps xmm0, xmm0
mov dword [ebp - 0x134], 0x1f
push eax
movups xmmword [ebp - 0x68], xmm0
call fcn.100ce050
movups xmm0, xmmword [str.Sec_WebSocket_Protocol]
mov ecx, eax
mov dword [ebp - 0x58], 0x16
mov eax, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x68], ecx
movups xmmword [ecx], xmm0
mov eax, dword [0x10225754]
mov dword [ecx + 0x10], eax
mov ax, word [0x10225758]
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.10102d50
cmp eax, esi
je 0x1015b9ce
cmp dword [esi + 0x14], 0xf
mov ecx, dword [esi + 0x10]
jbe 0x1015b9c5
mov esi, dword [esi]
push ecx
push esi
mov ecx, eax
call fcn.100dec90
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x1015b9fe
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1015b9f4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1015ba5b
push ecx
push edx
call fcn.101e3768
add esp, 8
mov eax, dword [ebp - 0x154]
mov dword [eax], 0
mov dword [eax + 4], 0x10282038
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.101e3b75
mov esp, ebp
pop ebp
ret 0x10
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
call fcn.101e90af
int3