Function at 0x4491f0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62fb1b
mov eax, dword fs:[0]
push eax
sub esp, 0x140
mov eax, dword [0x6a73e8]
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 ebx, ecx
mov dword [ebp - 0x140], ebx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x108]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], 0
push 0x12
mov dword [ebp - 0x148], eax
mov eax, dword [ebp + 0x14]
push str.Sec_WebSocket_Key1
mov dword [ebp - 0x144], esi
mov dword [ebp - 0x124], eax
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
lea eax, [ebp - 0x108]
mov dword [ebp - 4], 0
lea edi, [esi + 0x18]
push eax
mov ecx, edi
call fcn.00413de0
mov esi, eax
cmp esi, dword [edi]
je 0x4492b2
lea eax, [esi + 0x10]
mov ecx, edi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00425190
test al, al
je 0x4492b4
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x4492bf
mov esi, 0x6a1038
jmp 0x4492c2
add esi, 0x28
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
push esi
call fcn.00431d90
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x44930f
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x449305
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449dd8
push edx
push ecx
call fcn.005bb0db
add esp, 8
push 0x12
push str.Sec_WebSocket_Key2
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
lea eax, [ebp - 0x108]
mov dword [ebp - 4], 1
push eax
mov ecx, edi
call fcn.00413de0
mov esi, eax
cmp esi, dword [edi]
je 0x44936d
lea eax, [esi + 0x10]
mov ecx, edi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00425190
test al, al
je 0x44936f
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x44937a
mov esi, 0x6a1038
jmp 0x44937d
add esi, 0x28
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
push esi
call fcn.00431d90
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x4493ca
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4493c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449ddd
push edx
push ecx
call fcn.005bb0db
add esp, 8
push 0x12
push str.Sec_WebSocket_Key3
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
call fcn.0040b9b0
lea eax, [ebp - 0x13c]
mov ecx, edi
push eax
call fcn.00413de0
mov esi, eax
cmp esi, dword [edi]
je 0x449421
lea eax, [esi + 0x10]
mov ecx, edi
push eax
lea eax, [ebp - 0x13c]
push eax
call fcn.00425190
test al, al
je 0x449423
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x44942e
mov esi, 0x6a1038
jmp 0x449431
add esi, 0x28
mov edx, dword [ebp - 0x128]
cmp edx, 0x10
jb 0x44946b
mov ecx, dword [ebp - 0x13c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x449461
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449de2
push edx
push ecx
call fcn.005bb0db
add esp, 8
mov dword [ebp - 0x12c], 0
mov ecx, esi
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
cmp edx, 0x10
jb 0x449495
mov ecx, dword [esi]
mov eax, 8
cmp ebx, eax
cmovb eax, ebx
add eax, ecx
cmp edx, 0x10
jb 0x4494a8
mov esi, dword [esi]
sub eax, esi
push eax
lea eax, [ebp - 0x30]
push esi
push eax
call fcn.005fbd20
add esp, 0xc
mov dword [ebp - 0xf8], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0xf4], 0xf
lea ecx, [ebp - 0x108]
mov byte [ebp - 0x108], 0
push 0x10
push eax
call fcn.0040b9b0
cmp dword [ebp - 0xf4], 0x10
lea eax, [ebp - 0x108]
push dword [ebp - 0xf8]
cmovae eax, dword [ebp - 0x108]
push eax
lea eax, [ebp - 0x98]
mov dword [ebp - 4], 3
push eax
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x90], 0x67452301
mov dword [ebp - 0x8c], 0xefcdab89
mov dword [ebp - 0x88], 0x98badcfe
mov dword [ebp - 0x84], 0x10325476
call fcn.00443d10
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00443df0
add esp, 0x14
mov dword [ebp - 0x12c], 0
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
mov dword [ebp - 0x3c], 1
push 0
push 0x10
call fcn.0040b4f0
cmp dword [ebp - 0x128], 0x10
lea ecx, [ebp - 0x20]
push 0x10
lea eax, [ebp - 0x13c]
cmovae eax, dword [ebp - 0x13c]
push ecx
push eax
call fcn.005fbd20
add esp, 0xc
mov dword [ebp - 0x110], 0
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
push 0x12
push str.Sec_WebSocket_Key3
call fcn.0040b9b0
mov ebx, dword [ebp - 0x124]
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 4
push eax
mov ecx, ebx
call fcn.0042c700
mov edx, dword [ebp - 0x10c]
mov byte [ebp - 4], 3
cmp edx, 0x10
jb 0x44963f
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x449635
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449de7
push edx
push ecx
call fcn.005bb0db
add esp, 8
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
mov byte [ebp - 4], 2
cmp edx, 0x10
jb 0x449698
mov ecx, dword [ebp - 0x13c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x44968e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449dec
push edx
push ecx
call fcn.005bb0db
add esp, 8
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x4496f4
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4496ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449df1
push edx
push ecx
call fcn.005bb0db
add esp, 8
push 9
push str.WebSocket
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
call fcn.0040b9b0
push 7
push str.Upgrade
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], 5
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x108]
mov ecx, ebx
push eax
call fcn.0042c700
mov edx, dword [ebp - 0xf4]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x4497ac
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4497a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449df6
push edx
push ecx
call fcn.005bb0db
add esp, 8
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x449808
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4497fe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449dfb
push edx
push ecx
call fcn.005bb0db
add esp, 8
push 7
push str.Upgrade
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
call fcn.0040b9b0
push 0xa
push str.Connection
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], 7
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x108]
mov ecx, ebx
push eax
call fcn.0042c700
mov edx, dword [ebp - 0xf4]
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x4498c0
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4498b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449e00
push edx
push ecx
call fcn.005bb0db
add esp, 8
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x44991c
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x449912
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449e05
push edx
push ecx
call fcn.005bb0db
add esp, 8
push 0x14
push str.Sec_WebSocket_Origin
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
lea eax, [ebp - 0x108]
add ebx, 0x18
push eax
mov ecx, ebx
call fcn.00413de0
mov esi, eax
cmp esi, dword [ebx]
je 0x449976
lea eax, [esi + 0x10]
mov ecx, ebx
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00425190
test al, al
je 0x449978
mov esi, dword [ebx]
cmp esi, dword [ebx]
jne 0x449983
mov esi, 0x6a1048
jmp 0x449986
add esi, 0x38
mov edx, dword [ebp - 0xf4]
mov esi, dword [esi]
cmp edx, 0x10
jb 0x4499c2
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4499b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449e0a
push edx
push ecx
call fcn.005bb0db
add esp, 8
test esi, esi
jne 0x449b12
push 6
push str.Origin
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
call fcn.0040b9b0
lea eax, [ebp - 0x120]
mov dword [ebp - 4], 9
push eax
mov ecx, edi
call fcn.00413de0
mov esi, eax
cmp esi, dword [edi]
je 0x449a24
lea eax, [esi + 0x10]
mov ecx, edi
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.00425190
test al, al
je 0x449a26
mov esi, dword [edi]
cmp esi, dword [edi]
jne 0x449a31
mov esi, 0x6a1038
jmp 0x449a34
add esi, 0x28
push 0x14
push str.Sec_WebSocket_Origin
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x108]
push esi
push eax
mov byte [ebp - 4], 0xa
call fcn.0042c700
mov edx, dword [ebp - 0xf4]
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x449ab6
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x449aac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449e0f
push edx
push ecx
call fcn.005bb0db
add esp, 8
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x449b12
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x449b08
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x449e14
push edx
push ecx
call fcn.005bb0db
add esp, 8
push 0x16
push str.Sec_WebSocket_Location
lea ecx, [ebp - 0x108]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
lea eax, [ebp - 0x108]
mov ecx, ebx
push eax
call fcn.00413de0
mov esi, eax
cmp esi, dword [ebx]
je 0x449b6d
lea eax, [esi + 0x10]
mov ecx, ebx
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00425190
test al, al
jne 0x449b6d
mov eax, dword [ebx]
jmp 0x449b71
mov eax, dword [ebx]
mov esi, eax
cmp esi, eax
jne 0x449b7c
mov esi, 0x6a1048
jmp 0x449b7f
add esi, 0x38
mov esi, dword [esi]
lea ecx, [ebp - 0x108]
call fcn.00407b80
test esi, esi
jne 0x449d2b
mov ecx, dword [ebp - 0x140]
lea edx, [ebp - 0x40]
push dword [ebp - 0x144]
xorps xmm0, xmm0
push edx
mov eax, dword [ecx]
movlpd qword [ebp - 0x40], xmm0
call dword [eax + 0x30]
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0xf0]
push 0xb0
push 0
push eax
mov dword [ebp - 4], 0xb
call fcn.005fc2a0
add esp, 0xc
lea ecx, [ebp - 0xf0]
push 1
push 3
call fcn.0041bbc0
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov byte [ebp - 4], 0xc
jb 0x449bee
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00413b60
push 0x640dac
push eax
lea edi, [esi + 0x18]
call fcn.00410450
mov ecx, dword [edi + 0x10]
add esp, 0x14
cmp dword [edi + 0x14], 0x10
jb 0x449c1a
mov edi, dword [edi]
push ecx
push edi
push eax
call fcn.00413b60
add esp, 0xc
mov eax, 0x50
cmp byte [esi + 0x4a], 0
mov ecx, 0x1bb
cmovne eax, ecx
cmp word [esi + 0x48], ax
je 0x449c5c
lea eax, [ebp - 0xe0]
push 0x63fdbc
push eax
call fcn.00410450
movzx ecx, word [esi + 0x48]
add esp, 8
push ecx
mov ecx, eax
call fcn.00423750
mov eax, dword [esi + 0x40]
add esi, 0x30
cmp dword [esi + 0x14], 0x10
jb 0x449c6a
mov esi, dword [esi]
push eax
lea eax, [ebp - 0xe0]
push esi
push eax
call fcn.00413b60
add esp, 0xc
lea eax, [ebp - 0x120]
lea ecx, [ebp - 0xd8]
push eax
call fcn.004512a0
lea ecx, [ebp - 0xf0]
call fcn.004254d0
push 0x16
push str.Sec_WebSocket_Location
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0xd
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
call fcn.0040b9b0
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0xe
push eax
call fcn.0042c700
lea ecx, [ebp - 0x108]
call fcn.00407b80
lea ecx, [ebp - 0x120]
call fcn.00407b80
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x449d2b
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x449d2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x449d2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x148]
cmp dword [esi + 0x10], 0
je 0x449d8a
push 0x16
push str.Sec_WebSocket_Protocol
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040b9b0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.00423d10
cmp eax, esi
je 0x449d82
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x449d79
mov esi, dword [esi]
push ecx
push esi
mov ecx, eax
call fcn.0040b9b0
lea ecx, [ebp - 0x28]
call fcn.00407b80
mov ebx, dword [ebp - 0x14c]
push 0x6b1290
push 0x413160
push 0x6b128c
mov dword [ebx], 0
call fcn.004805c1
add esp, 0xc
test eax, eax
je 0x449e19
mov dword [ebx + 4], 0x6b1290
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.005bb391
mov esp, ebp
pop ebp
ret 0x10
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.005ffa79
call fcn.006027a2
int3