Function at 0x499bb0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x647dfe
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x6ddc7c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0xf0]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x24], 0
push 0x12
mov dword [ebp - 0x134], eax
mov eax, dword [ebp + 0x14]
push str.Sec_WebSocket_Key1
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0xf0]
mov dword [ebp - 4], 0
lea edi, [ebx + 0x18]
push eax
mov ecx, edi
call fcn.00488d50
mov esi, eax
cmp esi, dword [edi]
je 0x499c6e
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0046f820
test al, al
je 0x499c70
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x499c7b
mov esi, 0x6dea80
jmp 0x499c7e
add esi, 0x28
lea eax, [ebp - 0x20]
push eax
push esi
call fcn.0049bf50
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x499cc9
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x499cbf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a788
push edx
push ecx
call fcn.005ff7fe
add esp, 8
push 0x12
push str.Sec_WebSocket_Key2
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0xf0]
mov dword [ebp - 4], 1
push eax
mov ecx, edi
call fcn.00488d50
mov esi, eax
cmp esi, dword [edi]
je 0x499d25
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0046f820
test al, al
je 0x499d27
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x499d32
mov esi, 0x6dea80
jmp 0x499d35
add esi, 0x28
lea eax, [ebp - 0x1c]
push eax
push esi
call fcn.0049bf50
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x499d80
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x499d76
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a78d
push edx
push ecx
call fcn.005ff7fe
add esp, 8
push 0x12
push str.Sec_WebSocket_Key3
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0044e6d0
lea eax, [ebp - 0x108]
mov ecx, edi
push eax
call fcn.00488d50
mov esi, eax
cmp esi, dword [edi]
je 0x499dd5
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0046f820
test al, al
je 0x499dd7
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x499de2
mov esi, 0x6dea80
jmp 0x499de5
add esi, 0x28
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x499e1f
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x499e15
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a792
push edx
push ecx
call fcn.005ff7fe
add esp, 8
mov dword [ebp - 0xf8], 0
mov ebx, esi
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x128], 8
cmp ecx, 0x10
jb 0x499e56
mov ebx, dword [esi]
cmp eax, 8
lea edx, [ebp - 0x128]
lea eax, [ebp - 0x24]
cmovb edx, eax
cmp ecx, 0x10
jb 0x499e6c
mov esi, dword [esi]
mov eax, dword [edx]
add eax, ebx
sub eax, esi
push eax
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.00617c80
add esp, 0xc
mov dword [ebp - 0x114], 0
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x110], 0xf
mov byte [ebp - 0x124], 0
push 0x12
push str.Sec_WebSocket_Key3
call fcn.0044e6d0
mov dword [ebp - 4], 2
lea eax, [ebp - 0x20]
push 0x10
push eax
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
mov byte [ebp - 4], 4
lea edx, [ebp - 0xf0]
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0x80]
push dword [ebp - 0xe0]
cmovae edx, dword [ebp - 0xf0]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x78], 0x67452301
mov dword [ebp - 0x74], 0xefcdab89
mov dword [ebp - 0x70], 0x98badcfe
mov dword [ebp - 0x6c], 0x10325476
call fcn.00479b40
add esp, 4
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x80]
call fcn.00479c20
push 0
push 0x10
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
mov dword [ebp - 0x24], 1
call fcn.00450830
cmp dword [ebp - 0xf4], 0x10
lea ecx, [ebp - 0x20]
push 0x10
lea eax, [ebp - 0x108]
cmovae eax, dword [ebp - 0x108]
push ecx
push eax
call fcn.00617c80
mov ebx, dword [ebp - 0x10c]
lea eax, [ebp - 0x108]
add esp, 0xc
mov ecx, ebx
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.00470940
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x499feb
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x499fe1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a797
push edx
push ecx
call fcn.005ff7fe
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
cmp edx, 0x10
jb 0x49a044
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a03a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a79c
push edx
push ecx
call fcn.005ff7fe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x110]
cmp edx, 0x10
jb 0x49a085
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a07b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7a1
push edx
push ecx
call fcn.005ff7fe
add esp, 8
push 9
push str.WebSocket
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0xf
mov byte [ebp - 0x124], 0
call fcn.0044e6d0
mov dword [ebp - 4], 5
lea ecx, [ebp - 0xf0]
push 7
push str.Upgrade
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0xf0]
mov ecx, ebx
push eax
call fcn.00470940
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49a13d
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a133
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7a6
push edx
push ecx
call fcn.005ff7fe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
cmp edx, 0x10
jb 0x49a199
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a18f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7ab
push edx
push ecx
call fcn.005ff7fe
add esp, 8
push 7
push str.Upgrade
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0xf
mov byte [ebp - 0x124], 0
call fcn.0044e6d0
mov dword [ebp - 4], 7
lea ecx, [ebp - 0xf0]
push 0xa
push str.Connection
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0xf0]
mov ecx, ebx
push eax
call fcn.00470940
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49a251
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a247
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7b0
push edx
push ecx
call fcn.005ff7fe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
cmp edx, 0x10
jb 0x49a2ad
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a2a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7b5
push edx
push ecx
call fcn.005ff7fe
add esp, 8
push 0x14
push str.Sec_WebSocket_Origin
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebx + 0x18]
call fcn.00488d50
mov esi, eax
cmp esi, dword [ebx + 0x18]
je 0x49a304
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0046f820
test al, al
je 0x49a307
mov esi, dword [ebx + 0x18]
cmp esi, dword [ebx + 0x18]
jne 0x49a313
mov esi, 0x6dea90
jmp 0x49a316
add esi, 0x38
mov edx, dword [ebp - 0xdc]
mov esi, dword [esi]
cmp edx, 0x10
jb 0x49a352
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a348
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7ba
push edx
push ecx
call fcn.005ff7fe
add esp, 8
test esi, esi
jne 0x49a49c
push 6
push str.Origin
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0044e6d0
mov dword [ebp - 4], 9
lea ecx, [ebp - 0xf0]
push 0x14
push str.Sec_WebSocket_Origin
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.00488d50
mov esi, eax
cmp esi, dword [edi]
je 0x49a3df
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0046f820
test al, al
je 0x49a3e1
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x49a3ec
mov esi, 0x6dea80
jmp 0x49a3ef
add esi, 0x28
mov ecx, dword [ebp - 0x10c]
lea eax, [ebp - 0xf0]
push esi
push eax
call fcn.00470940
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49a440
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a436
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7bf
push edx
push ecx
call fcn.005ff7fe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
cmp edx, 0x10
jb 0x49a49c
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a492
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7c4
push edx
push ecx
call fcn.005ff7fe
add esp, 8
push 0x16
push str.Sec_WebSocket_Location
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
call fcn.0044e6d0
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebx + 0x18]
call fcn.00488d50
mov esi, eax
cmp esi, dword [ebx + 0x18]
je 0x49a4f3
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0046f820
test al, al
je 0x49a4f6
mov esi, dword [ebx + 0x18]
cmp esi, dword [ebx + 0x18]
jne 0x49a502
mov esi, 0x6dea90
jmp 0x49a505
add esi, 0x38
mov edx, dword [ebp - 0xdc]
mov esi, dword [esi]
cmp edx, 0x10
jb 0x49a541
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49a537
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49a7c9
push edx
push ecx
call fcn.005ff7fe
add esp, 8
test esi, esi
jne 0x49a6da
push dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x130]
lea eax, [ebp - 0x28]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x28], xmm0
call fcn.00499510
mov dword [ebp - 4], 0xb
lea ecx, [ebp - 0x124]
push 0x16
push str.Sec_WebSocket_Location
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], 0xf
mov byte [ebp - 0x124], 0
call fcn.0044e6d0
push 0xb0
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0xc
push esi
push eax
call fcn.00617280
add esp, 4
lea ecx, [ebp - 0xd8]
call fcn.0047dba0
mov byte [ebp - 4], 0xd
mov esi, dword [ebp - 0x28]
mov eax, esi
cmp dword [esi + 0x14], 0x10
jb 0x49a5cb
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.004911f0
push 0x6b5ad8
push eax
lea edi, [esi + 0x18]
call fcn.004865c0
mov ecx, dword [edi + 0x10]
add esp, 0x14
cmp dword [edi + 0x14], 0x10
jb 0x49a5f7
mov edi, dword [edi]
push ecx
push edi
push eax
call fcn.004911f0
movzx ecx, word [esi + 0x48]
add esp, 0xc
cmp byte [esi + 0x4a], 0
mov eax, 0x50
mov edx, 0x1bb
cmovne eax, edx
cmp cx, ax
je 0x49a638
push ecx
lea eax, [ebp - 0xc8]
push 0x6b5adc
push eax
call fcn.004865c0
add esp, 8
mov ecx, eax
call fcn.0047e6a0
mov eax, dword [esi + 0x40]
add esi, 0x30
cmp dword [esi + 0x14], 0x10
jb 0x49a646
mov esi, dword [esi]
push eax
lea eax, [ebp - 0xc8]
push esi
push eax
call fcn.004911f0
add esp, 0xc
lea eax, [ebp - 0x150]
lea ecx, [ebp - 0xc0]
push eax
call fcn.00482330
lea ecx, [ebp - 0xd8]
call fcn.0046f590
mov ebx, dword [ebp - 0x10c]
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 0xe
push eax
mov ecx, ebx
call fcn.00470940
lea ecx, [ebp - 0x150]
call fcn.0044e190
lea ecx, [ebp - 0x124]
call fcn.0044e190
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x49a6e0
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49a6e0
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x49a6e0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x49a6e0
mov ebx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x134]
cmp dword [esi + 0x10], 0
je 0x49a73a
push 0x16
push str.Sec_WebSocket_Protocol
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov byte [ebp - 0x150], 0
call fcn.0044e6d0
push esi
lea eax, [ebp - 0x150]
mov dword [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.00470c20
lea ecx, [ebp - 0x150]
call fcn.0044e190
mov ebx, dword [ebp - 0x138]
push 0x6eb974
push 0x450a50
push 0x6eb9ac
mov dword [ebx], 0
call fcn.005fbcbd
add esp, 0xc
test eax, eax
je 0x49a7ce
mov dword [ebx + 4], 0x6eb974
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ff7bd
mov esp, ebp
pop ebp
ret 0x10
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f5be
call fcn.0061f60e
int3