Function at 0x435440
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x481587
mov eax, dword fs:[0]
push eax
sub esp, 0xec
mov eax, dword [0x49d140]
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 - 0xe4], ecx
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 0x14]
push 0x20
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], eax
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Key1]
mov ecx, eax
mov dword [ebp - 0x28], 0x12
mov dword [ebp - 0x38], ecx
add esp, 4
mov dword [ebp - 0x24], 0x1f
movups xmmword [ecx], xmm0
mov ax, word [0x48f91c]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x5c]
add esi, 0x18
push eax
mov ecx, esi
call fcn.00429e90
mov edi, dword [ebp - 0x54]
cmp byte [edi + 0xd], 0
jne 0x435527
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00404110
test al, al
jne 0x435527
cmp edi, dword [esi]
je 0x435527
add edi, 0x28
jmp 0x43552c
mov edi, 0x49dc30
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.00437680
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x435571
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435567
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360b5
push ecx
push edx
call fcn.00458ac3
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
push 0x20
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x24], 0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Key2]
mov ecx, eax
mov dword [ebp - 0x28], 0x12
mov dword [ebp - 0x38], ecx
add esp, 4
mov dword [ebp - 0x24], 0x1f
movups xmmword [ecx], xmm0
mov ax, word [0x48f930]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x5c]
mov ecx, esi
push eax
call fcn.00429e90
mov edi, dword [ebp - 0x54]
cmp byte [edi + 0xd], 0
jne 0x4355f4
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00404110
test al, al
jne 0x4355f4
cmp edi, dword [esi]
je 0x4355f4
add edi, 0x28
jmp 0x4355f9
mov edi, 0x49dc30
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.00437680
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x43563e
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435634
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360ba
push ecx
push edx
call fcn.00458ac3
add esp, 8
xorps xmm0, xmm0
push 0x20
movups xmmword [ebp - 0x38], xmm0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Key3]
mov ecx, eax
mov dword [ebp - 0x28], 0x12
mov dword [ebp - 0x38], ecx
add esp, 4
mov dword [ebp - 0x24], 0x1f
movups xmmword [ecx], xmm0
mov ax, word [0x48f908]
mov word [ecx + 0x10], ax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x5c]
mov byte [ecx + 0x12], 0
push eax
mov ecx, esi
call fcn.00429e90
mov edi, dword [ebp - 0x54]
cmp byte [edi + 0xd], 0
jne 0x4356aa
lea eax, [edi + 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00404110
test al, al
jne 0x4356aa
cmp edi, dword [esi]
lea esi, [edi + 0x28]
jne 0x4356af
mov esi, 0x49dc30
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x4356e3
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4356d9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360bf
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov dword [ebp - 0x28], 0
mov eax, 8
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp dword [esi + 0x14], 0xf
mov ecx, dword [esi + 0x10]
jbe 0x43570e
cmp ecx, eax
cmovb eax, ecx
add eax, dword [esi]
mov esi, dword [esi]
jmp 0x435715
cmp ecx, eax
cmovb eax, ecx
add eax, esi
sub eax, esi
push eax
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0045a050
add esp, 0xc
mov dword [ebp - 0x40], 0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x3c], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x50]
movups xmmword [ebp - 0x50], xmm0
push 0x10
push eax
call fcn.00421800
mov dword [ebp - 4], 3
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0xf
lea ecx, [ebp - 0xd8]
push dword [ebp - 0x40]
cmova edx, dword [ebp - 0x50]
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.004091d0
mov edx, dword [ebp - 0xd8]
mov eax, edx
mov ecx, dword [ebp - 0xd4]
shr eax, 8
mov byte [ebp - 0x57], al
mov eax, edx
shr eax, 0x10
mov byte [ebp - 0x56], al
mov eax, edx
shr eax, 0x18
mov byte [ebp - 0x55], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x53], al
mov eax, ecx
shr eax, 0x10
mov byte [ebp - 0x52], al
mov eax, 0xfffffff7
mov byte [ebp - 0x58], dl
shr edx, 3
sub eax, edx
mov byte [ebp - 0x54], cl
shr ecx, 0x18
and eax, 0x3f
inc eax
mov byte [ebp - 0x51], cl
push eax
mov edx, 0x491278
lea ecx, [ebp - 0xd8]
call fcn.004091d0
push 8
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0xd8]
call fcn.004091d0
add esp, 0xc
xor edx, edx
mov eax, edx
mov ecx, edx
and eax, 0xfffffffc
and ecx, 3
shl ecx, 3
mov eax, dword [ebp + eax - 0xd0]
shr eax, cl
mov byte [ebp + edx - 0x20], al
inc edx
cmp edx, 0x10
jl 0x435818
push 0
push 0x10
mov byte [ebp - 0x54], 0
lea ecx, [ebp - 0x80]
push dword [ebp - 0x54]
xorps xmm0, xmm0
mov dword [ebp - 0x70], 0
movups xmmword [ebp - 0x80], xmm0
push 0x10
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov dword [ebp - 0xec], 1
call fcn.00422140
cmp dword [ebp - 0x6c], 0xf
lea eax, [ebp - 0x80]
movups xmm0, xmmword [ebp - 0x20]
cmova eax, dword [ebp - 0x80]
push 0x20
movups xmmword [eax], xmm0
mov dword [ebp - 0x28], 0
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x38], xmm0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Key3]
mov ecx, eax
mov dword [ebp - 0x28], 0x12
mov dword [ebp - 0x38], ecx
add esp, 4
mov dword [ebp - 0x24], 0x1f
movups xmmword [ecx], xmm0
mov ax, word [0x48f908]
mov word [ecx + 0x10], ax
mov byte [ecx + 0x12], 0
mov edi, dword [ebp - 0xdc]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.00409d00
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x435921
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435917
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360c4
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0xf
jbe 0x43596b
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435961
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360c4
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0xf
jbe 0x4359b8
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4359ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360c4
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov al, byte [0x48f93c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 9
movq xmm0, qword [str.WebSocket]
mov dword [ebp - 0x3c], 0xf
movq qword [ebp - 0x50], xmm0
mov byte [ebp - 0x48], al
mov byte [ebp - 0x47], 0
mov dword [ebp - 4], 5
xorps xmm0, xmm0
mov eax, dword [0x48f88c]
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x80], eax
mov ax, word [0x48f890]
mov word [ebp - 0x7c], ax
mov al, byte [0x48f892]
mov dword [ebp - 0x70], 7
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x7a], al
mov byte [ebp - 0x79], 0
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00409d00
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x435a6f
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435a65
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360c9
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0xf
jbe 0x435abc
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435ab2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360c9
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov eax, dword [0x48f88c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x50], eax
movzx eax, word [0x48f890]
mov word [ebp - 0x4c], ax
mov al, byte [0x48f892]
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 [0x48f89c]
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
lea eax, [ebp - 0x58]
push eax
call fcn.00409d00
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x435b74
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435b6a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360ce
push ecx
push edx
call fcn.00458ac3
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 0x435bc1
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435bb7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360ce
push ecx
push edx
call fcn.00458ac3
add esp, 8
xorps xmm0, xmm0
push 0x20
movups xmmword [ebp - 0x50], xmm0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Origin]
mov ecx, eax
mov dword [ebp - 0x40], 0x14
mov dword [ebp - 0x50], ecx
add esp, 4
mov dword [ebp - 0x3c], 0x1f
movups xmmword [ecx], xmm0
mov eax, dword [0x48f864]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x14], 0
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [edi + 0x18]
call fcn.00429e90
mov esi, dword [ebp - 0x54]
cmp byte [esi + 0xd], 0
jne 0x435c2f
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00404110
test al, al
jne 0x435c2f
cmp esi, dword [edi + 0x18]
je 0x435c2f
add esi, 0x38
jmp 0x435c34
mov esi, 0x49dc40
mov ecx, dword [ebp - 0x3c]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x435c6a
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435c60
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360d3
push ecx
push edx
call fcn.00458ac3
add esp, 8
test esi, esi
jne 0x435dca
mov eax, dword [str.Origin]
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x50], eax
mov ax, word [0x48f888]
mov dword [ebp - 0x40], 6
mov dword [ebp - 0x3c], 0xf
mov word [ebp - 0x4c], ax
mov byte [ebp - 0x4a], 0
mov ecx, dword [ebp - 0xe0]
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x5c]
mov dword [ebp - 4], 9
push eax
lea ecx, [ecx + 0x18]
call fcn.00429e90
mov esi, dword [ebp - 0x54]
cmp byte [esi + 0xd], 0
jne 0x435ce4
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00404110
test al, al
jne 0x435ce4
mov eax, dword [ebp - 0xe0]
cmp esi, dword [eax + 0x18]
je 0x435ce4
add esi, 0x28
jmp 0x435ce9
mov esi, 0x49dc30
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
push 0x20
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x24], 0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Origin]
mov ecx, eax
mov dword [ebp - 0x28], 0x14
mov dword [ebp - 0x38], ecx
add esp, 4
mov dword [ebp - 0x24], 0x1f
movups xmmword [ecx], xmm0
mov eax, dword [0x48f864]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x14], 0
push esi
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.00409d00
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x435d7d
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435d73
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360d8
push ecx
push edx
call fcn.00458ac3
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 0x435dca
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435dc0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360d8
push ecx
push edx
call fcn.00458ac3
add esp, 8
xorps xmm0, xmm0
push 0x20
movups xmmword [ebp - 0x50], xmm0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Location]
mov ecx, eax
mov dword [ebp - 0x40], 0x16
mov dword [ebp - 0x50], ecx
add esp, 4
mov dword [ebp - 0x3c], 0x1f
movups xmmword [ecx], xmm0
mov eax, dword [0x48f950]
mov dword [ecx + 0x10], eax
mov ax, word [0x48f954]
mov word [ecx + 0x14], ax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x5c]
mov byte [ecx + 0x16], 0
lea ecx, [edi + 0x18]
push eax
call fcn.00429e90
mov esi, dword [ebp - 0x54]
cmp byte [esi + 0xd], 0
jne 0x435e42
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00404110
test al, al
jne 0x435e42
cmp esi, dword [edi + 0x18]
je 0x435e42
add esi, 0x38
jmp 0x435e47
mov esi, 0x49dc40
mov ecx, dword [ebp - 0x3c]
mov esi, dword [esi]
cmp ecx, 0xf
jbe 0x435e7d
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435e73
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360dd
push ecx
push edx
call fcn.00458ac3
add esp, 8
test esi, esi
jne 0x435fd9
mov ecx, dword [ebp - 0xe4]
lea edx, [ebp - 0xe8]
push dword [ebp - 0xe0]
push edx
mov eax, dword [ecx]
call dword [eax + 0x30]
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 0xb
mov ecx, dword [ebp - 0xe8]
push eax
call fcn.00406060
mov esi, eax
mov byte [ebp - 4], 0xc
xorps xmm0, xmm0
push 0x20
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Location]
mov ecx, eax
mov dword [ebp - 0x28], 0x16
mov dword [ebp - 0x38], ecx
add esp, 4
mov dword [ebp - 0x24], 0x1f
movups xmmword [ecx], xmm0
mov eax, dword [0x48f950]
mov dword [ecx + 0x10], eax
mov ax, word [0x48f954]
mov word [ecx + 0x14], ax
mov byte [ecx + 0x16], 0
push esi
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.00409d00
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x435f57
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435f4d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360e2
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0xf
jbe 0x435fa1
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x435f97
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360e2
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0xe4]
test esi, esi
je 0x435fd9
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x435fd3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x435fd3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xf4]
cmp dword [esi + 0x10], 0
je 0x436085
xorps xmm0, xmm0
mov dword [ebp - 0x58], 0
push 0x20
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x54], 0
call fcn.00458728
movups xmm0, xmmword [str.Sec_WebSocket_Protocol]
mov edx, eax
mov dword [ebp - 0x58], 0x16
mov dword [ebp - 0x68], edx
add esp, 4
mov dword [ebp - 0x54], 0x1f
movups xmmword [edx], xmm0
mov eax, dword [0x48f87c]
mov dword [edx + 0x10], eax
mov ax, word [0x48f880]
mov word [edx + 0x14], ax
mov byte [edx + 0x16], 0
push esi
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xe
push eax
lea eax, [ebp - 0xf8]
mov ecx, edi
push eax
call fcn.00409ef0
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x436085
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x43607b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4360e7
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov eax, dword [ebp - 0xf0]
mov dword [eax], 0
mov dword [eax + 4], 0x49dbf8
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.00458460
mov esp, ebp
pop ebp
ret 0x10
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
call fcn.0046546a
int3