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

Disassembly:
mov ecx, dword [0x61c868]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 0xc]
jbe 0x452179
sub esp, 0x44
mov eax, dword [0x61c868]
mov eax, dword fs:[eax]
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
cmp dword [ecx], eax
jne 0x452162
mov eax, dword [esp + 0x48]
lea edx, [eax - 1]
test eax, edx
jne 0x45214c
mov edx, dword [0x61cc30]
test edx, edx
jne 0x451f5c
cmp eax, 0x8000
jae 0x451e6a
mov edx, eax
xor ebx, ebx
jmp 0x452052
shr eax, 0xd
mov dword [esp + 0x1c], eax
mov dword [esp], eax
call sym.runtime.stacklog2
mov eax, dword [esp + 4]
mov dword [esp + 0x20], eax
lea ecx, [0x61cdc0]
mov dword [esp], ecx
call sym.runtime.lock
mov eax, dword [esp + 0x20]
lea ecx, [0x61cdc4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x30], edx
mov dword [esp], edx
call sym.runtime._mSpanList_.isEmpty
movzx eax, byte [esp + 4]
test al, al
je 0x451eb5
xor eax, eax
jmp 0x451edc
mov eax, dword [esp + 0x20]
lea ecx, [0x61cdc4]
lea eax, [ecx + eax*8]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime._mSpanList_.remove
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
lea ecx, [0x61cdc0]
mov dword [esp], ecx
call sym.runtime.unlock
lea eax, [0x604780]
mov dword [esp], eax
mov dword [esp + 4], 0x30
call sym.runtime.lockWithRankMayAcquire
mov eax, dword [esp + 0x18]
test eax, eax
je 0x451f10
mov ecx, eax
jmp 0x451f4e
lea eax, [0x604780]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov byte [esp + 8], 1
call sym.runtime._mheap_.allocManual
mov eax, dword [esp + 0xc]
test eax, eax
je 0x452039
mov dword [esp + 0x18], eax
mov dword [esp], eax
call sym.runtime.osStackAlloc
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x44], eax
mov dword [esp], ecx
call sym.runtime._mspan_.base
mov eax, dword [esp + 4]
jmp 0x451fb8
mov ecx, dword [0x61c764]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.alignUp
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], eax
mov dword [esp], eax
lea ecx, [0x61eef0]
mov dword [esp + 4], ecx
call sym.runtime.sysAlloc
mov eax, dword [esp + 8]
test eax, eax
je 0x451fa2
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x50], eax
add esp, 0x44
ret
lea eax, [0x52be38]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
call sym.runtime.throw
mov dword [esp + 0x34], eax
call sym.runtime.traceAllocFreeEnabled
movzx eax, byte [esp]
test al, al
je 0x452023
call sym.runtime.traceTryAcquire
mov eax, dword [esp]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x2c], ecx
call sym.runtime.traceLocker.ok
movzx eax, byte [esp + 8]
test al, al
je 0x452023
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
call sym.runtime.traceLocker.GoroutineStackAlloc
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call sym.runtime.traceRelease
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0x50], eax
add esp, 0x44
ret
lea eax, [0x526b57]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call sym.runtime.throw
inc ebx
shr eax, 1
cmp eax, 0x1000
ja 0x45204f
mov byte [esp + 0x13], bl
mov eax, dword [ecx + 0x58]
test eax, eax
je 0x45206b
mov ecx, dword [ecx + 0x78]
test ecx, ecx
je 0x4520b3
movzx eax, bl
shl eax, 6
lea ecx, [0x61ce60]
add eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp], eax
call sym.runtime.lock
movzx eax, byte [esp + 0x13]
mov byte [esp], al
call sym.runtime.stackpoolalloc
mov eax, dword [esp + 4]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
call sym.runtime.unlock
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
jmp 0x451fb8
mov dword [esp], eax
call sym.runtime.puintptr.ptr
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x24], eax
test byte [eax], al
movzx ecx, byte [esp + 0x13]
movzx edx, cl
mov dword [esp + 0x28], edx
lea ebx, [eax + edx*8 + 0x234]
mov dword [esp + 0x38], ebx
mov ebp, dword [ebx]
mov dword [esp + 0x14], ebp
mov dword [esp], ebp
call sym.runtime.gclinkptr.ptr
mov eax, dword [esp + 4]
test eax, eax
je 0x4520fb
mov ebp, dword [esp + 0x14]
jmp 0x452116
mov eax, dword [esp + 0x24]
mov dword [esp], eax
movzx ecx, byte [esp + 0x13]
mov byte [esp + 4], cl
call sym.runtime.stackcacherefill
mov eax, dword [esp + 0x38]
mov ebp, dword [eax]
mov dword [esp + 0x14], ebp
mov dword [esp], ebp
call sym.runtime.gclinkptr.ptr
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax*8 + 0x238]
mov ecx, dword [esp + 0x48]
sub dword [eax], ecx
mov eax, dword [esp + 0x14]
jmp 0x451fb8
lea eax, [0x52c3c6]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
call sym.runtime.throw
lea eax, [0x52e2d8]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call sym.runtime.throw
nop
call sym.runtime.morestackc
jmp sym.runtime.stackalloc