Function at 0x50dac0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x8993fc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x50e008
sub esp, 0xac
mov eax, 0
mov dword [esp + 0xa8], eax
mov byte [esp + 0x33], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
lea edx, [sym.github.com_hashicorp_yamux._Stream_.Read.deferwrap1]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa8], ecx
mov byte [esp + 0x33], 1
jmp 0x50db60
mov eax, dword [esp + 0xb0]
lea ecx, [eax + 0x14]
mov dword [esp + 0x78], ecx
mov dword [esp], ecx
call sym.sync._Mutex_.Lock
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x10]
cmp ecx, 5
jg 0x50db8a
cmp ecx, 4
je 0x50db8f
cmp ecx, 5
je 0x50db8f
jmp 0x50dbd3
cmp ecx, 6
jne 0x50dbca
lea ecx, [eax + 0x20]
mov dword [esp + 0x74], ecx
mov dword [esp], ecx
call sym.sync._Mutex_.Lock
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x50ddd5
mov edx, dword [ecx + 0xc]
cmp dword [ecx + 4], edx
je 0x50ddd5
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
jmp 0x50dbd3
cmp ecx, 7
je 0x50df7c
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
mov eax, dword [esp + 0xb0]
lea ecx, [eax + 0x20]
mov dword [esp + 0x78], ecx
mov dword [esp], ecx
call sym.sync._Mutex_.Lock
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x50dc0f
mov edx, dword [ecx + 0xc]
cmp dword [ecx + 4], edx
jne 0x50de29
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
mov eax, dword [esp + 0xb0]
lea ecx, [eax + 0x60]
mov dword [esp], ecx
call sym.sync_atomic._Value_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov esi, dword [esp + 8]
lea edi, [esp + 0x94]
xor eax, eax
call fcn.0046f01b
mov eax, dword [esp + 0x40]
lea ecx, [0x68fc60]
cmp eax, ecx
jne 0x50dfdc
lea edi, [esp + 0x94]
call fcn.0046f4fe
lea edi, [esp + 0x5c]
lea esi, [esp + 0x94]
call fcn.0046f4fe
lea edi, [esp + 0x48]
lea esi, [esp + 0x94]
call fcn.0046f4fe
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
test eax, 0x80000000
je 0x50dcb7
shl eax, 1
mov edx, ecx
shl ecx, 1
mov ebx, edx
shr edx, 0x1f
or eax, edx
mov edx, eax
shl eax, 1
shr ecx, 0x1f
or eax, ecx
shr edx, 0x1f
add eax, 0xd7b17f80
adc edx, 0xd
jmp 0x50dcc1
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, ecx
test eax, eax
sete al
test edx, edx
sete cl
and ecx, eax
test cl, cl
je 0x50dcdf
test ebx, 0x3fffffff
jne 0x50dcdf
xor ecx, ecx
xor eax, eax
jmp 0x50dd2e
call sym.time.Now
lea edi, [esp + 0x94]
lea esi, [esp]
call fcn.0046f4fe
lea edi, [esp]
lea esi, [esp + 0x5c]
call fcn.0046f4fe
lea edi, [esp + 0x14]
lea esi, [esp + 0x94]
call fcn.0046f4fe
call sym.time.Time.Sub
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.time.NewTimer
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xb0]
mov ebx, dword [edx + 0x58]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], ebx
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0x7c]
mov dword [esp], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 2
mov byte [esp + 0x14], 1
call sym.runtime.selectgo
mov eax, dword [esp + 0x18]
test eax, eax
je 0x50df40
mov eax, dword [esp + 0x44]
test eax, eax
je 0x50db59
mov ecx, dword [eax + 0x18]
nop
test ecx, ecx
je 0x50dfc4
add eax, 4
mov dword [esp], eax
call sym.time.stopTimer
jmp 0x50db59
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
mov eax, dword [0x853a90]
mov ecx, dword [0x853a94]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov byte [esp + 0x33], 0
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
call eax
add esp, 0xac
ret
mov byte [ecx + 0x10], 0
mov edx, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
cmp edx, ebx
jg 0x50de4e
nop
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], 0
xor edx, edx
jmp 0x50deb4
jb 0x50dff2
sub edx, ebx
mov ebp, dword [ecx + 8]
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
mov ebp, dword [ecx]
add ebx, ebp
mov ebp, dword [esp + 0xb8]
cmp ebp, edx
jg 0x50de77
mov edx, ebp
mov ebp, dword [esp + 0xb4]
cmp ebp, ebx
je 0x50dea9
mov dword [esp + 0x70], ecx
mov dword [esp + 0x3c], edx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call sym.runtime.memmove
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x3c]
add dword [ecx + 0xc], edx
test edx, edx
jle 0x50deb4
mov byte [ecx + 0x10], 0xff
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym.github.com_hashicorp_yamux._Stream_.sendWindowUpdate
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
cmp dword [0x85a030], eax
jne 0x50df29
mov edx, dword [0x85a034]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x50df29
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov byte [esp + 0x33], 0
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
call eax
add esp, 0xac
ret
mov eax, dword [0x853688]
mov dword [esp + 0xc0], 0
lea ecx, [0x6f6ed4]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
mov byte [esp + 0x33], 0
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
call eax
add esp, 0xac
ret
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.sync._Mutex_.Unlock
mov eax, dword [0x85a068]
mov ecx, dword [0x85a06c]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov byte [esp + 0x33], 0
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
call eax
add esp, 0xac
ret
lea eax, [0x6603a0]
mov dword [esp], eax
lea eax, [0x6f6538]
mov dword [esp + 4], eax
call sym.runtime.gopanic
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x661580]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov eax, ebx
mov ecx, edx
call sym.runtime.panicSliceB
nop
call sym.runtime.deferreturn
add esp, 0xac
ret
call sym.runtime.morestack_noctxt
jmp sym.github.com_hashicorp_yamux._Stream_.Read