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

Disassembly:
mov ecx, dword [0x62bbe4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x44715b
sub esp, 0xbc
mov ecx, dword [esp + 0xc4]
test byte [ecx], al
mov edx, dword [esp + 0xc0]
test byte [edx], al
mov ebx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
lea esi, [ebp + ebx]
mov dword [esp + 0x2c], esi
lea ebp, [ebp + ebx - 0x20000]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov edi, esi
shl esi, 1
sar ebp, 0x1f
and ebp, esi
mov dword [esp + 0x5c], ebp
mov esi, dword [0x62bc08]
mov eax, dword [0x62bc0c]
lea ebx, [ecx + ebp]
mov dword [esp + 0x70], ebx
test eax, eax
sete al
xchg ebp, ebx
seta bl
xchg ebp, ebx
test esi, esi
xchg esi, ebx
seta bl
xchg esi, ebx
and eax, esi
or eax, ebp
test al, al
jne 0x4461cc
xor eax, eax
xor ebp, ebp
jmp 0x4461f2
call sym.runtime.cputicks
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x2c]
mov ebp, eax
mov eax, ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], eax
xor esi, esi
xor esi, esi
mov dword [esp + 0x28], esi
jmp 0x446211
inc esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x1c]
cmp esi, edi
jge 0x446306
lea eax, [edx + esi*8]
mov eax, dword [eax]
test eax, eax
je 0x4462da
mov dword [esp + 0x3c], esi
mov eax, dword [eax + 0x14]
test eax, eax
je 0x446257
mov dword [esp], eax
call sym.runtime._timer_.maybeRunChan
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
lea eax, [ebp + 1]
mov dword [esp + 0x58], eax
mov ebx, dword [0x62bbe4]
mov ebx, dword fs:[ebx]
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x448]
mov dword [esp + 0x24], edx
mov edi, dword [ebx + 0x44c]
shl edx, 0x11
mov esi, dword [esp + 0x24]
xor edx, esi
mov esi, edi
xor edi, edx
shr edx, 7
xor edx, edi
mov edi, esi
shr esi, 0x10
xor esi, edx
lea edx, [edi + esi]
mov eax, edx
mov ebp, dword [esp + 0x58]
mul ebp
mov dword [ebx + 0x448], edi
mov dword [ebx + 0x44c], esi
movzx ebx, word [ecx + edx*2]
mov esi, dword [esp + 0x28]
mov word [ecx + esi*2], bx
mov ebx, dword [esp + 0x3c]
mov word [ecx + edx*2], bx
mov edx, dword [esp + 0xc0]
mov esi, ebx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x70]
jmp 0x446204
mov eax, dword [0x62bd10]
lea ebp, [edx + esi*8 + 4]
test eax, eax
je 0x4462f6
mov eax, dword [ebp]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
mov edi, dword [esp + 0x2c]
mov dword [ebp], 0
mov ebp, dword [esp + 0x28]
jmp 0x446204
mov esi, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x446331
mov ebp, eax
mov eax, dword [esp + 0x38]
movzx edi, word [ecx + eax*2]
mov word [ebx + ebp*2], di
inc eax
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
cmp eax, esi
jge 0x446355
movzx ebp, word [ecx + eax*2]
lea ebp, [edx + ebp*8]
mov ebp, dword [ebp]
mov dword [esp + 0x8c], ebp
jmp 0x447130
mov edi, dword [esp + 0x2c]
jmp 0x446316
lea eax, [esi - 1]
jmp 0x44637c
mov ecx, dword [esp + 0x30]
mov word [ebx + ecx*2], bp
dec eax
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0xc4]
mov ecx, ebp
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
test eax, eax
jl 0x4463b6
mov dword [esp + 0x34], eax
movzx ebp, word [ebx + eax*2]
mov word [esp + 0x1a], bp
movzx esi, bp
lea esi, [edx + esi*8]
mov edi, dword [esp + 0x5c]
movzx ecx, word [ecx + edi]
mov esi, dword [esi]
mov dword [esp + 0x88], esi
mov word [ebx + eax*2], cx
xor ecx, ecx
jmp 0x4470a8
movzx ebp, word [esp + 0x1a]
jmp 0x44635a
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call sym.runtime.sellock
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
xor ebp, ebp
jmp 0x44640f
mov esi, dword [esp + 0x5c]
lea ebp, [esi + 1]
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
cmp ebp, ecx
jge 0x446799
mov dword [esp + 0x5c], ebp
movzx esi, word [ebx + ebp*2]
mov dword [esp + 0x58], esi
lea edi, [edx + esi*8]
mov edi, dword [edi]
mov dword [esp + 0x80], edi
cmp eax, esi
jle 0x446465
mov esi, dword [edi + 0x10]
test esi, esi
jne 0x44708a
lea eax, [edi + 0x24]
mov dword [esp], eax
call sym.runtime._waitq_.dequeue
mov eax, dword [esp + 4]
test eax, eax
jne 0x44652f
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
cmp dword [eax + 4], ecx
jbe 0x4463ef
jmp 0x44649f
test byte [edi], al
lea eax, [edi + 0x2c]
mov dword [esp], eax
call sym.runtime._waitq_.dequeue
mov eax, dword [esp + 4]
test eax, eax
jne 0x4466f6
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
test ecx, ecx
ja 0x446641
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4463ef
jmp 0x4465d2
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xc0]
lea ebp, [ebx + edx*8 + 4]
mov ebp, dword [ebp]
movzx esi, word [eax + 0xc]
imul esi, dword [eax + 0x1c]
add esi, dword [eax + 8]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call sym.runtime.typedmemmove
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [eax + 0x1c], ecx
cmp dword [eax + 4], ecx
jne 0x4464e9
mov dword [eax + 0x1c], 0
inc dword [eax]
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call sym.runtime.selunlock
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x58]
xor ebx, ebx
jmp 0x446804
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
lea ebx, [edx + ecx*8 + 4]
lea edi, [esp + 0xa0]
mov ebp, eax
xor eax, eax
call fcn.0046b649
lea ecx, [sym.runtime.selectgo.func3]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xb0], ecx
mov ecx, dword [ebx]
mov edx, dword [esp + 0x80]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
call sym.runtime.send
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x58]
xor ebx, ebx
jmp 0x446804
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call sym.runtime.selunlock
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xc0]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
test ecx, ecx
je 0x446630
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.typedmemclr
mov eax, dword [esp + 0x58]
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor ebx, ebx
jmp 0x446804
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
lea ebx, [edx + ecx*8 + 4]
mov ebx, dword [ebx]
movzx ebp, word [eax + 0xc]
imul ebp, dword [eax + 0x20]
nop
add ebp, dword [eax + 8]
test ebx, ebx
je 0x446684
mov dword [esp + 0x68], ebp
mov ecx, dword [eax + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call sym.runtime.typedmemmove
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x68]
mov ecx, dword [eax + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], ebp
call sym.runtime.typedmemclr
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x20]
inc ecx
mov dword [eax + 0x20], ecx
cmp dword [eax + 4], ecx
jne 0x4466ad
mov dword [eax + 0x20], 0
dec dword [eax]
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call sym.runtime.selunlock
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x58]
mov ebx, 1
jmp 0x446804
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
lea ebx, [edx + ecx*8 + 4]
lea edi, [esp + 0xa0]
mov ebp, eax
xor eax, eax
call fcn.0046b649
lea ecx, [sym.runtime.selectgo.func2]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xb0], ecx
mov ecx, dword [ebx]
mov edx, dword [esp + 0x80]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
call sym.runtime.recv
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x58]
mov ebx, 1
jmp 0x446804
movzx ebx, byte [esp + 0xd4]
test bl, bl
je 0x4467cf
mov ebx, dword [0x62bbe4]
mov ebx, dword fs:[ebx]
mov ebx, dword [ebx]
mov ebp, dword [ebx + 0xc0]
test ebp, ebp
jne 0x447074
mov dword [esp + 0x78], ebx
lea ebp, [ebx + 0xc0]
xor esi, esi
jmp 0x446883
mov dword [esp], edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call sym.runtime.selunlock
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, 0xffffffff
xor ebx, ebx
test ecx, ecx
xchg ebp, ebx
setg bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
test edx, edx
xchg edi, ebx
seta bl
xchg edi, ebx
and esi, edi
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x446858
mov byte [esp + 0x18], bl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp + 0x20]
sbb ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
call sym.runtime.blockevent
mov eax, dword [esp + 0x40]
movzx ebx, byte [esp + 0x18]
mov dword [esp + 0xd8], eax
mov byte [esp + 0xdc], bl
add esp, 0xbc
ret
mov edi, dword [esp + 0x5c]
lea esi, [edi + 1]
lea ebp, [eax + 0x2c]
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov edx, ebx
mov ebx, dword [esp + 0x78]
cmp esi, ecx
jge 0x446adb
mov dword [esp + 0x5c], esi
mov dword [esp + 0x6c], ebp
mov eax, dword [esp + 0x70]
movzx ecx, word [eax + esi*2]
mov dword [esp + 0x58], ecx
lea ebx, [edx + ecx*8]
mov ebx, dword [ebx]
mov dword [esp + 0x84], ebx
call sym.runtime.acquireSudog
mov eax, dword [esp]
test byte [eax], al
mov ecx, dword [0x62bd10]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xc0]
lea ebp, [ebx + edx*8 + 4]
mov esi, dword [esp + 0x1c]
test esi, esi
xchg edi, ebx
setne bl
xchg edi, ebx
mov esi, dword [esp + 0x20]
test esi, esi
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, edi
test ecx, ecx
je 0x446901
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x78]
mov dword [edi], ecx
mov ebx, dword [eax]
mov dword [edi + 4], ebx
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x78]
mov dword [eax], ecx
mov byte [eax + 0x24], 1
mov edi, dword [0x62bd10]
mov ebp, dword [ebp]
test edi, edi
je 0x446929
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ecx, dword [eax + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 0xc], ebp
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
xchg esi, eax
test al, al
xchg esi, eax
je 0x44694e
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0xffffffff
mov ebp, dword [0x62bd10]
test ebp, ebp
jne 0x446965
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x6c]
jmp 0x446985
call sym.runtime.gcWriteBarrier4
mov ebp, dword [esp + 0x84]
mov dword [edi], ebp
mov esi, dword [eax + 0x34]
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov esi, dword [esp + 0x6c]
mov ecx, dword [esi]
mov dword [edi + 0xc], ecx
mov dword [eax + 0x34], ebp
mov dword [esi], eax
mov ecx, dword [esp + 0xcc]
cmp ecx, edx
jle 0x446a27
test byte [ebp], al
mov edx, dword [0x62bd10]
test edx, edx
je 0x4469b0
mov edx, dword [eax + 4]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov dword [eax + 4], 0
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x4469f2
mov esi, dword [0x62bd10]
test esi, esi
je 0x4469e4
call sym.runtime.gcWriteBarrier5
mov dword [edi], edx
mov esi, dword [eax + 8]
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov esi, dword [edx + 4]
mov dword [edi + 0xc], esi
mov esi, dword [ebp + 0x30]
mov dword [edi + 0x10], esi
mov dword [eax + 8], edx
mov dword [edx + 4], eax
mov dword [ebp + 0x30], eax
jmp 0x446aad
mov edx, dword [0x62bd10]
test edx, edx
je 0x446a15
mov edx, dword [eax + 8]
call sym.runtime.gcWriteBarrier4
mov dword [edi], edx
mov dword [edi + 4], eax
mov edx, dword [ebp + 0x2c]
mov dword [edi + 8], edx
mov edx, dword [ebp + 0x30]
mov dword [edi + 0xc], edx
mov dword [eax + 8], 0
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
jmp 0x446aad
test byte [ebp], al
mov edx, dword [0x62bd10]
test edx, edx
je 0x446a3e
mov edx, dword [eax + 4]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov dword [eax + 4], 0
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x446a7d
mov esi, dword [0x62bd10]
test esi, esi
je 0x446a72
call sym.runtime.gcWriteBarrier5
mov dword [edi], edx
mov esi, dword [eax + 8]
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov esi, dword [edx + 4]
mov dword [edi + 0xc], esi
mov esi, dword [ebp + 0x28]
mov dword [edi + 0x10], esi
mov dword [eax + 8], edx
mov dword [edx + 4], eax
mov dword [ebp + 0x28], eax
jmp 0x446aad
mov edx, dword [0x62bd10]
test edx, edx
je 0x446aa0
mov edx, dword [eax + 8]
call sym.runtime.gcWriteBarrier4
mov dword [edi], edx
mov dword [edi + 4], eax
mov edx, dword [ebp + 0x24]
mov dword [edi + 8], edx
mov edx, dword [ebp + 0x28]
mov dword [edi + 0xc], edx
mov dword [eax + 8], 0
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x44686d
mov dword [esp + 0x64], eax
mov dword [esp], ebp
call sym.runtime.blockTimerChan
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc0]
jmp 0x44686d
test byte [ebx], al
mov ebp, dword [0x62bd10]
test ebp, ebp
je 0x446af1
mov ebp, dword [ebx + 0x48]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebp
mov dword [ebx + 0x48], 0
lea eax, [ebx + 0xe0]
mov dword [esp + 0x9c], eax
lea ecx, [ebx + 0x71]
nop
nop
mov dword [esp], ecx
mov byte [esp + 4], 1
call sym.internal_runtime_atomic.Store8
lea eax, [0x521a58]
mov dword [esp], eax
mov dword [esp + 4], 0
mov word [esp + 8], 0x309
mov dword [esp + 0xc], 1
call sym.runtime.gopark
mov eax, dword [esp + 0x78]
mov byte [eax + 0x70], 0
mov ecx, dword [esp + 0xc0]
mov dword [esp], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
call sym.runtime.sellock
nop
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], 0
call sym.internal_runtime_atomic.Store
mov eax, dword [0x62bd10]
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + 0x48]
test eax, eax
je 0x446ba6
mov eax, dword [ecx + 0x48]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
mov dword [ecx + 0x48], 0
mov eax, dword [ecx + 0xc0]
mov ebx, eax
jmp 0x446bc8
mov dword [eax + 0xc], 0
mov dword [eax + 0x34], 0
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x446bec
mov byte [eax + 0x24], 0
mov ebp, dword [0x62bd10]
test ebp, ebp
je 0x446bb7
mov ebp, dword [eax + 0xc]
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebp, dword [eax + 0x34]
mov dword [edi + 4], ebp
jmp 0x446bb7
mov eax, dword [0x62bd10]
test eax, eax
je 0x446c03
mov eax, dword [ecx + 0xc0]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
mov dword [esp + 0x98], edx
mov dword [ecx + 0xc0], 0
xor eax, eax
xor ecx, ecx
mov ebp, 0xffffffff
xor esi, esi
mov edi, 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0x44], eax
xor eax, eax
jmp 0x446c61
mov dword [ebx + 0x2c], 0
mov dword [esp], ebx
call sym.runtime.releaseSudog
mov eax, dword [esp + 0x5c]
inc eax
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x40]
movzx esi, byte [esp + 0x19]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x48], edi
xchg esi, eax
mov byte [esp + 0x19], al
xchg esi, eax
mov dword [esp + 0x40], ebp
mov esi, dword [esp + 0x28]
cmp eax, esi
jge 0x446fb1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x7c], ecx
mov esi, dword [esp + 0x70]
movzx esi, word [esi + eax*2]
mov dword [esp + 0x58], esi
mov eax, dword [esp + 0xc0]
lea ecx, [eax + esi*8]
mov ebp, dword [ecx]
mov dword [esp + 0x94], ebp
mov ebp, dword [ebp + 0x14]
lea eax, [eax + esi*8]
mov dword [esp + 0x74], eax
test ebp, ebp
je 0x446ce8
mov dword [esp + 0x90], ecx
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call sym.runtime.unblockTimerChan
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x48]
cmp ebx, edx
jne 0x446d22
mov ecx, dword [ebx + 0x18]
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
sete dl
setg al
test ecx, ecx
xchg esi, ebx
seta bl
xchg esi, ebx
and edx, esi
or eax, edx
test al, al
jne 0x446d11
mov ebp, edi
mov ecx, dword [esp + 0x44]
movzx esi, byte [ebx + 0x25]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
jmp 0x446f6f
mov eax, dword [ecx]
mov ecx, dword [esp + 0xcc]
cmp ecx, esi
jle 0x446e4f
test byte [eax], al
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 4]
test ebp, ebp
je 0x446dd4
test esi, esi
je 0x446d97
mov eax, dword [0x62bd10]
test eax, eax
je 0x446d7e
mov eax, edi
call sym.runtime.gcWriteBarrier6
mov dword [edi], esi
mov ecx, dword [ebp + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], ebp
mov ecx, dword [esi + 8]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebx + 8]
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0xcc]
mov edi, eax
mov dword [ebp + 4], esi
mov dword [esi + 8], ebp
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp 0x446f5c
mov esi, dword [0x62bd10]
test esi, esi
je 0x446dbe
mov esi, dword [ebp + 4]
call sym.runtime.gcWriteBarrier4
mov dword [edi], esi
mov dword [edi + 4], ebp
mov esi, dword [eax + 0x30]
mov dword [edi + 8], esi
mov esi, dword [ebx + 8]
mov dword [edi + 0xc], esi
mov edi, dword [esp + 0x48]
mov dword [ebp + 4], 0
mov dword [eax + 0x30], ebp
mov dword [ebx + 8], 0
jmp 0x446f5c
test esi, esi
je 0x446e15
mov ebp, dword [0x62bd10]
test ebp, ebp
je 0x446dff
mov ebp, dword [esi + 8]
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov dword [edi + 4], esi
mov ebp, dword [eax + 0x2c]
mov dword [edi + 8], ebp
mov ebp, dword [ebx + 4]
mov dword [edi + 0xc], ebp
mov edi, dword [esp + 0x48]
mov dword [esi + 8], 0
mov dword [eax + 0x2c], esi
mov dword [ebx + 4], 0
jmp 0x446f5c
cmp dword [eax + 0x2c], ebx
jne 0x446f5c
mov ebp, dword [0x62bd10]
test ebp, ebp
je 0x446e3c
mov ebp, dword [eax + 0x2c]
mov esi, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebp, dword [eax + 0x30]
mov dword [edi + 4], ebp
mov edi, esi
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
jmp 0x446f5c
test byte [eax], al
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 4]
test ebp, ebp
je 0x446eed
test esi, esi
je 0x446eb3
mov eax, dword [0x62bd10]
test eax, eax
je 0x446e9a
mov eax, edi
call sym.runtime.gcWriteBarrier6
mov dword [edi], esi
mov ecx, dword [ebp + 4]
mov dword [edi + 4], ecx
mov dword [edi + 8], ebp
mov ecx, dword [esi + 8]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebx + 8]
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0xcc]
mov edi, eax
mov dword [ebp + 4], esi
mov dword [esi + 8], ebp
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp 0x446f5c
mov esi, dword [0x62bd10]
test esi, esi
je 0x446eda
mov esi, dword [ebp + 4]
call sym.runtime.gcWriteBarrier4
mov dword [edi], esi
mov dword [edi + 4], ebp
mov esi, dword [eax + 0x28]
mov dword [edi + 8], esi
mov esi, dword [ebx + 8]
mov dword [edi + 0xc], esi
mov edi, dword [esp + 0x48]
mov dword [ebp + 4], 0
mov dword [eax + 0x28], ebp
mov dword [ebx + 8], 0
jmp 0x446f5c
test esi, esi
je 0x446f2b
mov ebp, dword [0x62bd10]
test ebp, ebp
je 0x446f18
mov ebp, dword [esi + 8]
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov dword [edi + 4], esi
mov ebp, dword [eax + 0x24]
mov dword [edi + 8], ebp
mov ebp, dword [ebx + 4]
mov dword [edi + 0xc], ebp
mov edi, dword [esp + 0x48]
mov dword [esi + 8], 0
mov dword [eax + 0x24], esi
mov dword [ebx + 4], 0
jmp 0x446f5c
cmp dword [eax + 0x24], ebx
jne 0x446f5c
mov ebp, dword [0x62bd10]
test ebp, ebp
je 0x446f4e
mov ebp, dword [eax + 0x24]
mov esi, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebp, dword [eax + 0x28]
mov dword [edi + 4], ebp
mov edi, esi
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x40]
movzx esi, byte [esp + 0x19]
mov ebp, edi
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], ecx
xchg esi, eax
mov byte [esp + 0x19], al
xchg esi, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x7c], eax
mov edi, dword [0x62bd10]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x60], eax
test edi, edi
je 0x446c31
mov edi, dword [ebx + 0x2c]
mov dword [esp + 0x54], edi
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x54]
mov dword [edi], eax
jmp 0x446c31
test ecx, ecx
je 0x44705e
mov eax, dword [esp + 0xcc]
cmp eax, ebp
jle 0x446fd1
movzx eax, byte [esp + 0x19]
test al, al
je 0x44701b
xor eax, eax
jmp 0x446fd6
movzx eax, byte [esp + 0x19]
mov byte [esp + 0x18], al
mov ecx, dword [esp + 0xc0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
call sym.runtime.selunlock
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
movzx ebx, byte [esp + 0x18]
jmp 0x446804
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
call sym.runtime.selunlock
lea eax, [0x4fc3c0]
mov dword [esp], eax
lea eax, [0x543d50]
mov dword [esp + 4], eax
call sym.runtime.gopanic
lea eax, [0x518944]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call sym.runtime.throw
lea eax, [0x5175ba]
mov dword [esp], eax
mov dword [esp + 4], 0x11
call sym.runtime.throw
mov esi, ecx
jmp 0x44701b
mov ebp, dword [esp + 0x30]
mov word [ebx + ebp*2], cx
mov esi, dword [esp + 0x88]
movzx ebp, word [esp + 0x1a]
mov ecx, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x30], ecx
shl ecx, 1
lea edi, [ecx + 1]
cmp eax, edi
jle 0x44635a
add ecx, 2
cmp eax, ecx
jle 0x4470f8
mov ebp, dword [esp + 0x30]
lea eax, [ebx + ebp*4 + 2]
movzx eax, word [eax]
lea eax, [edx + eax*8]
mov eax, dword [eax]
lea ebp, [ebx + ebp*4 + 4]
movzx ebp, word [ebp]
lea ebp, [edx + ebp*8]
mov ebp, dword [ebp]
cmp ebp, eax
jbe 0x4470ef
mov eax, dword [esp + 0x34]
movzx ebp, word [esp + 0x1a]
mov edi, ecx
jmp 0x4470f8
mov eax, dword [esp + 0x34]
movzx ebp, word [esp + 0x1a]
movzx ecx, word [ebx + edi*2]
movzx ebp, cx
lea ebp, [edx + ebp*8]
mov ebp, dword [ebp]
cmp ebp, esi
ja 0x44708e
jmp 0x4463af
mov ebp, dword [esp + 0x58]
sar ebp, 1
movzx edi, word [ebx + ebp*2]
mov word [ebx + eax*2], di
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x2c]
mov eax, ebp
mov ebp, dword [esp + 0x8c]
test eax, eax
jle 0x446316
lea edi, [eax - 1]
shr edi, 0x1f
lea edi, [eax + edi - 1]
mov dword [esp + 0x58], edi
and edi, 0xfffffffe
movzx edi, word [ebx + edi]
lea edi, [edx + edi*8]
mov edi, dword [edi]
cmp ebp, edi
ja 0x44710e
jmp 0x44634f
call sym.runtime.morestack_noctxt
jmp sym.runtime.selectgo