Function at 0x49c600
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x64ac9e
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x6e1c7c]
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.0048b790
mov esi, eax
cmp esi, dword [edi]
je 0x49c6be
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.00472240
test al, al
je 0x49c6c0
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x49c6cb
mov esi, 0x6e2a80
jmp 0x49c6ce
add esi, 0x28
lea eax, [ebp - 0x20]
push eax
push esi
call fcn.0049e9a0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49c719
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49c70f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1d8
push edx
push ecx
call fcn.0060223e
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.0048b790
mov esi, eax
cmp esi, dword [edi]
je 0x49c775
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.00472240
test al, al
je 0x49c777
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x49c782
mov esi, 0x6e2a80
jmp 0x49c785
add esi, 0x28
lea eax, [ebp - 0x1c]
push eax
push esi
call fcn.0049e9a0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49c7d0
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49c7c6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1dd
push edx
push ecx
call fcn.0060223e
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.0048b790
mov esi, eax
cmp esi, dword [edi]
je 0x49c825
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00472240
test al, al
je 0x49c827
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x49c832
mov esi, 0x6e2a80
jmp 0x49c835
add esi, 0x28
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x49c86f
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49c865
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1e2
push edx
push ecx
call fcn.0060223e
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 0x49c8a6
mov ebx, dword [esi]
cmp eax, 8
lea edx, [ebp - 0x128]
lea eax, [ebp - 0x24]
cmovb edx, eax
cmp ecx, 0x10
jb 0x49c8bc
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.0061a6c0
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.0047c580
add esp, 4
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x80]
call fcn.0047c660
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.0061a6c0
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.00473360
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x49ca3b
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49ca31
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1e7
push edx
push ecx
call fcn.0060223e
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 0x49ca94
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49ca8a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1ec
push edx
push ecx
call fcn.0060223e
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x110]
cmp edx, 0x10
jb 0x49cad5
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cacb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1f1
push edx
push ecx
call fcn.0060223e
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.00473360
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49cb8d
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cb83
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1f6
push edx
push ecx
call fcn.0060223e
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 0x49cbe9
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cbdf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d1fb
push edx
push ecx
call fcn.0060223e
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.00473360
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49cca1
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cc97
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d200
push edx
push ecx
call fcn.0060223e
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 0x49ccfd
mov ecx, dword [ebp - 0x124]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49ccf3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d205
push edx
push ecx
call fcn.0060223e
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.0048b790
mov esi, eax
cmp esi, dword [ebx + 0x18]
je 0x49cd54
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.00472240
test al, al
je 0x49cd57
mov esi, dword [ebx + 0x18]
cmp esi, dword [ebx + 0x18]
jne 0x49cd63
mov esi, 0x6e2a90
jmp 0x49cd66
add esi, 0x38
mov edx, dword [ebp - 0xdc]
mov esi, dword [esi]
cmp edx, 0x10
jb 0x49cda2
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cd98
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d20a
push edx
push ecx
call fcn.0060223e
add esp, 8
test esi, esi
jne 0x49ceec
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.0048b790
mov esi, eax
cmp esi, dword [edi]
je 0x49ce2f
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00472240
test al, al
je 0x49ce31
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x49ce3c
mov esi, 0x6e2a80
jmp 0x49ce3f
add esi, 0x28
mov ecx, dword [ebp - 0x10c]
lea eax, [ebp - 0xf0]
push esi
push eax
call fcn.00473360
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xdc]
cmp edx, 0x10
jb 0x49ce90
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49ce86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d20f
push edx
push ecx
call fcn.0060223e
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 0x49ceec
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cee2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d214
push edx
push ecx
call fcn.0060223e
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.0048b790
mov esi, eax
cmp esi, dword [ebx + 0x18]
je 0x49cf43
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.00472240
test al, al
je 0x49cf46
mov esi, dword [ebx + 0x18]
cmp esi, dword [ebx + 0x18]
jne 0x49cf52
mov esi, 0x6e2a90
jmp 0x49cf55
add esi, 0x38
mov edx, dword [ebp - 0xdc]
mov esi, dword [esi]
cmp edx, 0x10
jb 0x49cf91
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x49cf87
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49d219
push edx
push ecx
call fcn.0060223e
add esp, 8
test esi, esi
jne 0x49d12a
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.0049bf60
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.00619cc0
add esp, 4
lea ecx, [ebp - 0xd8]
call fcn.004805e0
mov byte [ebp - 4], 0xd
mov esi, dword [ebp - 0x28]
mov eax, esi
cmp dword [esi + 0x14], 0x10
jb 0x49d01b
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.00493c40
push 0x6b8c08
push eax
lea edi, [esi + 0x18]
call fcn.00489000
mov ecx, dword [edi + 0x10]
add esp, 0x14
cmp dword [edi + 0x14], 0x10
jb 0x49d047
mov edi, dword [edi]
push ecx
push edi
push eax
call fcn.00493c40
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 0x49d088
push ecx
lea eax, [ebp - 0xc8]
push 0x6b8c0c
push eax
call fcn.00489000
add esp, 8
mov ecx, eax
call fcn.004810e0
mov eax, dword [esi + 0x40]
add esi, 0x30
cmp dword [esi + 0x14], 0x10
jb 0x49d096
mov esi, dword [esi]
push eax
lea eax, [ebp - 0xc8]
push esi
push eax
call fcn.00493c40
add esp, 0xc
lea eax, [ebp - 0x150]
lea ecx, [ebp - 0xc0]
push eax
call fcn.00484d70
lea ecx, [ebp - 0xd8]
call fcn.00471fb0
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.00473360
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 0x49d130
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x49d130
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x49d130
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x49d130
mov ebx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x134]
cmp dword [esi + 0x10], 0
je 0x49d18a
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.00473640
lea ecx, [ebp - 0x150]
call fcn.0044e190
mov ebx, dword [ebp - 0x138]
push 0x6ef9f4
push 0x450a50
push 0x6efa2c
mov dword [ebx], 0
call fcn.005fe6fd
add esp, 0xc
test eax, eax
je 0x49d21e
mov dword [ebx + 4], 0x6ef9f4
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.006021fd
mov esp, ebp
pop ebp
ret 0x10
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.00621ffe
call fcn.0062204e
int3