Function at 0x140058d20
Capabilities:
Hash data with md5

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x168]
sub rsp, 0x268
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x1403b8c08]
xor rax, rsp
mov qword [rbp + 0x150], rax
mov r13, r9
mov rbx, r8
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdx
mov r15, rcx
mov qword [rsp + 0x48], rcx
mov r14, qword [rbp + 0x1d0]
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], 0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key1
lea rcx, [rbp + 0x70]
call fcn.14000c230
nop
lea rdi, [rbx + 0x20]
mov rsi, qword [rdi]
mov rbx, qword [rsi + 8]
mov rax, rsi
cmp byte [rbx + 0x19], 0
jne 0x140058df9
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbx + 0x20]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140058dea
mov rbx, qword [rbx + 0x10]
jmp 0x140058df0
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x140058dd0
mov rax, qword [rdi]
cmp rsi, rax
je 0x140058e15
lea r8, [rsi + 0x20]
lea rdx, [rbp + 0x70]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140058e18
mov rax, qword [rdi]
mov rsi, rax
lea r12, [0x1403b80a0]
cmp rsi, qword [rdi]
mov rdx, r12
je 0x140058e2b
lea rdx, [rsi + 0x40]
lea r8, [rbp + 0xb0]
mov rcx, r15
call fcn.14003c300
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140058e79
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140058e74
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059967
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key2
lea rcx, [rbp + 0x70]
call fcn.14000c230
nop
mov rsi, qword [rdi]
mov rbx, qword [rsi + 8]
mov rax, rsi
cmp byte [rbx + 0x19], 0
jne 0x140058ee9
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rbx + 0x20]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140058eda
mov rbx, qword [rbx + 0x10]
jmp 0x140058ee0
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x140058ec0
mov rax, qword [rdi]
cmp rsi, rax
je 0x140058f05
lea r8, [rsi + 0x20]
lea rdx, [rbp + 0x70]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140058f08
mov rax, qword [rdi]
mov rsi, rax
cmp rsi, qword [rdi]
mov rdx, r12
je 0x140058f14
lea rdx, [rsi + 0x40]
lea r8, [rbp + 0xb4]
mov rcx, r15
call fcn.14003c300
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140058f62
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140058f5d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005996d
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp + 0x70]
call fcn.14000c230
mov rsi, qword [rdi]
mov rbx, qword [rsi + 8]
mov rax, rsi
cmp byte [rbx + 0x19], 0
jne 0x140058fc9
nop dword [rax]
lea rdx, [rbx + 0x20]
lea r8, [rbp + 0x70]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140058fba
mov rbx, qword [rbx + 0x10]
jmp 0x140058fc0
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x140058fa0
mov rax, qword [rdi]
cmp rsi, rax
je 0x140058fe5
lea r8, [rsi + 0x20]
lea rdx, [rbp + 0x70]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140058fe8
mov rax, qword [rdi]
mov rsi, rax
cmp rsi, qword [rdi]
jne 0x140058ff2
mov rsi, r12
jmp 0x140058ff6
add rsi, 0x40
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140059034
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005902f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059973
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], 8
mov rdx, rsi
mov rcx, qword [rsi + 0x18]
cmp rcx, 0x10
jb 0x14005906a
mov rdx, qword [rsi]
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x40]
cmp rax, 8
cmovb r8, r9
cmp rcx, 0x10
jb 0x140059085
mov rsi, qword [rsi]
mov r8, qword [r8]
add r8, rdx
sub r8, rsi
mov rdx, rsi
lea rcx, [rbp + 0xb8]
call fcn.140289020
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp + 0x90]
call fcn.14000c230
nop
mov ecx, 0x20
call fcn.140171ab4
mov qword [rbp + 0xe0], setsockopt
mov qword [rbp + 0xe8], 0x1f
movups xmm0, xmmword [rbp + 0xb0]
movups xmmword [rax], xmm0
mov byte [rax + 0x10], 0
mov qword [rbp + 0xd0], rax
xor ebx, ebx
mov qword [rbp + 0xf0], rbx
mov dword [rbp + 0xf8], 0x67452301
mov dword [rbp + 0xfc], 0xefcdab89
mov dword [rbp + 0x100], 0x98badcfe
mov dword [rbp + 0x104], 0x10325476
lea r8d, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp + 0xf0]
call fcn.140052170
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0xf0]
call fcn.140052280
mov qword [rbp + 0x80], rbx
mov qword [rbp + 0x88], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp + 0x70], bl
mov dword [rsp + 0x30], 1
mov byte [rsp + 0x20], bl
mov r9d, setsockopt
xor r8d, r8d
mov edx, r9d
lea rcx, [rbp + 0x70]
call fcn.14000cfc0
lea rcx, [rbp + 0x70]
cmp qword [rbp + 0x88], 0x10
cmovae rcx, qword [rbp + 0x70]
lea r8d, [rbx + 0x10]
lea rdx, [rbp + 0xb0]
call fcn.140289020
lea r8, [rbp + 0x70]
lea rdx, [rbp + 0x90]
mov rcx, r14
call fcn.140035c10
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140059203
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400591fe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059979
call fcn.140171af0
mov qword [rbp + 0x80], rbx
mov qword [rbp + 0x88], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rbp + 0x70], 0
mov rdx, qword [rbp + 0xe8]
cmp rdx, 0x10
jb 0x14005925b
inc rdx
mov rcx, qword [rbp + 0xd0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140059255
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005997f
call fcn.140171af0
nop
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x14005929c
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140059297
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059985
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov r8d, 9
lea rdx, str.WebSocket
lea rcx, [rbp + 0x90]
call fcn.14000c230
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rbp + 0x70]
call fcn.14000c230
nop
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x70]
mov rcx, r14
call fcn.140035c10
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x14005934a
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140059345
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005998b
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x14005939f
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005939a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059991
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov r8d, 7
lea rdx, str.Upgrade
lea rcx, [rbp + 0x90]
call fcn.14000c230
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, 0xa
lea rdx, str.Connection
lea rcx, [rbp + 0x70]
call fcn.14000c230
nop
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x70]
mov rcx, r14
call fcn.140035c10
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x14005944d
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140059448
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059997
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x1400594a2
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005949d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005999d
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, setsockopt
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rbp + 0x70]
call fcn.14000c230
lea rsi, [r14 + 0x20]
mov r14, qword [rsi]
mov rbx, qword [r14 + 8]
mov rax, r14
cmp byte [rbx + 0x19], 0
jne 0x140059509
lea rdx, [rbx + 0x20]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.14002d020
test al, al
je 0x1400594fa
mov rbx, qword [rbx + 0x10]
jmp 0x140059500
mov r14, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x1400594e0
mov rax, qword [rsi]
cmp r14, rax
je 0x140059525
lea r8, [r14 + 0x20]
lea rdx, [rbp + 0x70]
mov rcx, rsi
call fcn.14002d020
test al, al
je 0x140059528
mov rax, qword [rsi]
mov r14, rax
lea r15, [0x1403b80b0]
cmp r14, qword [rsi]
jne 0x140059539
mov r14, r15
jmp 0x14005953d
add r14, 0x50
mov rbx, qword [r14]
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x14005957e
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140059579
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400599a3
call fcn.140171af0
test rbx, rbx
jne 0x1400596c7
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0xc0], xmm0
mov byte [rbp + 0xb0], bl
lea r8d, [rbx + 6]
lea rdx, str.Origin
lea rcx, [rbp + 0xb0]
call fcn.14000c230
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], bl
lea r8d, [rbx + 0x14]
lea rdx, str.Sec_WebSocket_Origin
lea rcx, [rbp + 0x70]
call fcn.14000c230
nop
lea rdx, [rbp + 0xb0]
mov rcx, rdi
call fcn.14001be50
mov rbx, rax
mov rax, qword [rdi]
cmp rbx, rax
je 0x140059611
lea r8, [rbx + 0x20]
lea rdx, [rbp + 0xb0]
mov rcx, rdi
call fcn.14002d020
test al, al
je 0x140059614
mov rax, qword [rdi]
mov rbx, rax
cmp rbx, qword [rdi]
je 0x14005961d
lea r12, [rbx + 0x40]
mov r8, r12
lea rdx, [rbp + 0x70]
mov r14, qword [rsp + 0x38]
mov rcx, r14
call fcn.140035c10
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140059670
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005966b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400599a9
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov rdx, qword [rbp + 0xc8]
cmp rdx, 0x10
jb 0x1400596cc
inc rdx
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400596c0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140059961
call fcn.140171af0
jmp 0x1400596cc
mov r14, qword [rsp + 0x38]
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rbp + 0x70]
call fcn.14000c230
lea rdx, [rbp + 0x70]
mov rcx, rsi
call fcn.14001be50
mov rbx, rax
mov rax, qword [rsi]
mov rcx, rax
cmp rbx, rax
je 0x14005972f
lea r8, [rbx + 0x20]
lea rdx, [rbp + 0x70]
mov rcx, rsi
call fcn.14002d020
test al, al
jne 0x140059729
mov rcx, qword [rsi]
jmp 0x140059732
mov rax, qword [rsi]
mov rcx, rax
mov rbx, rax
cmp rbx, rcx
je 0x14005973b
lea r15, [rbx + 0x50]
mov rbx, qword [r15]
mov r8, qword [rbp + 0x88]
cmp r8, 0x10
jb 0x14005975b
inc r8
mov rdx, qword [rbp + 0x70]
lea rcx, [rbp + 0x70]
call fcn.14003c1d0
test rbx, rbx
jne 0x1400598ba
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x50]
lea rdx, [rbp + 0xb0]
call qword [rax + 0x60]
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0xe0], xmm0
mov byte [rbp + 0xd0], bl
lea r8d, [rbx + 0x16]
lea rdx, str.Sec_WebSocket_Location
lea rcx, [rbp + 0xd0]
call fcn.14000c230
nop
mov rbx, qword [rbp + 0xb0]
mov edx, 3
lea r8d, [rdx - 2]
lea rcx, [rsp + 0x70]
call fcn.140023950
nop
mov rdx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1400597d2
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp - 0x80]
call fcn.14001bba0
lea rdi, [rbx + 0x20]
lea rdx, [0x1402f1ef4]
mov rcx, rax
call fcn.140017d10
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x140059800
mov rdi, qword [rdi]
mov rdx, rdi
mov rcx, rax
call fcn.14001bba0
movzx edi, word [rbx + 0x60]
mov eax, 0x50
mov ecx, 0x1bb
cmp byte [rbx + 0x62], 0
cmovne ax, cx
cmp di, ax
je 0x140059841
lea rdx, [0x1402f1ef0]
lea rcx, [rbp - 0x80]
call fcn.140017d10
mov rcx, rax
movzx edx, di
call fcn.14002b4a0
lea rdx, [rbx + 0x40]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140059853
mov rdx, qword [rdx]
lea rcx, [rbp - 0x80]
call fcn.14001bba0
lea rdx, [rbp + 0x90]
lea rcx, [rbp - 0x78]
call fcn.140062330
nop
lea rcx, [rsp + 0x70]
call fcn.14002d2c0
nop
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0xd0]
mov rcx, r14
call fcn.140035c10
nop
lea rcx, [rbp + 0x90]
call fcn.14000a960
nop
lea rcx, [rbp + 0xd0]
call fcn.14000a960
nop
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
je 0x1400598ba
call fcn.1400305b0
lea rbx, [r13 + 0x10]
cmp qword [rbx], 0
je 0x14005992f
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0xe0], xmm0
mov byte [rbp + 0xd0], 0
mov r8d, reloc.WS2_32.dll_shutdown
lea rdx, str.Sec_WebSocket_Protocol
lea rcx, [rbp + 0xd0]
call fcn.14000c230
nop
lea rdx, [rbp + 0xd0]
mov rcx, rsi
call fcn.14002bb40
cmp rax, r13
je 0x140059923
cmp qword [r13 + 0x18], 0x10
jb 0x140059914
mov r13, qword [r13]
mov r8, qword [rbx]
mov rdx, r13
mov rcx, rax
call fcn.14000c230
nop
lea rcx, [rbp + 0xd0]
call fcn.14000a960
mov rcx, qword [rsp + 0x58]
call fcn.140025ff0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rbp + 0x150]
xor rcx, rsp
call fcn.140172190
add rsp, 0x268
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14028c66c
int3
call fcn.14028c66c
int3
call fcn.14028c66c
int3
call fcn.14028c66c
nop
call fcn.14028c66c
nop
call fcn.14028c66c
nop
call fcn.14028c66c
nop
call fcn.14028c66c
nop
call fcn.14028c66c
nop
call fcn.14028c66c
nop
call fcn.14028c66c
int3
call fcn.14028c66c
nop
call fcn.14028c66c
int3