Function at 0x452190
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 0x452471
sub esp, 0x40
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
sub eax, ecx
lea edx, [eax - 1]
mov ebx, dword [0x61c868]
mov ebx, dword fs:[ebx]
mov ebx, dword [ebx]
test eax, edx
jne 0x45245a
mov edx, dword [0x61cc30]
test edx, edx
jne 0x452305
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], eax
call sym.runtime.traceAllocFreeEnabled
movzx eax, byte [esp]
test al, al
je 0x452240
call sym.runtime.traceTryAcquire
mov eax, dword [esp]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x28], ecx
call sym.runtime.traceLocker.ok
movzx eax, byte [esp + 8]
test al, al
je 0x452240
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov dword [esp], edx
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call sym.runtime.traceLocker.GoroutineStackFree
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call sym.runtime.traceRelease
mov eax, dword [esp + 0x18]
cmp eax, 0x8000
jae 0x452254
mov ecx, eax
xor edx, edx
jmp 0x45237a
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym.runtime.spanOfUnchecked
mov eax, dword [esp + 4]
mov dword [esp + 0x14], eax
test byte [eax], al
lea ecx, [eax + 0x3f]
mov dword [esp], ecx
call sym.runtime._mSpanStateBox_.get
cmp byte [esp + 4], 2
jne 0x452319
mov eax, dword [0x61c788]
test eax, eax
jne 0x4522b3
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call sym.runtime.osStackFree
lea eax, [0x604780]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov byte [esp + 8], 1
call sym.runtime._mheap_.freeManual
jmp 0x452315
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call sym.runtime.stacklog2
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
lea ecx, [0x61cdc0]
mov dword [esp], ecx
call sym.runtime.lock
mov eax, dword [esp + 0x1c]
lea ecx, [0x61cdc4]
lea eax, [ecx + eax*8]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
call sym.runtime._mSpanList_.insert
lea eax, [0x61cdc0]
mov dword [esp], eax
call sym.runtime.unlock
jmp 0x452315
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.sysFault
add esp, 0x40
ret
add esp, 0x40
ret
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call sym.runtime._mspan_.base
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
call sym.runtime.printlock
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0
call sym.runtime.printhex
call sym.runtime.printsp
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym.runtime.printpointer
call sym.runtime.printnl
call sym.runtime.printunlock
lea eax, [0x52720d]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call sym.runtime.throw
inc edx
shr eax, 1
cmp eax, 0x1000
ja 0x452377
mov byte [esp + 0xf], dl
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
mov ebx, dword [eax + 0x58]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
test ebx, ebx
je 0x4523a2
mov eax, dword [eax + 0x78]
test eax, eax
je 0x4523e2
movzx eax, dl
shl eax, 6
lea ecx, [0x61ce60]
add eax, ecx
mov dword [esp + 0x38], eax
mov dword [esp], eax
call sym.runtime.lock
mov eax, dword [esp + 0x10]
mov dword [esp], eax
movzx eax, byte [esp + 0xf]
mov byte [esp + 4], al
call sym.runtime.stackpoolfree
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym.runtime.unlock
jmp 0x452315
mov dword [esp], ebx
call sym.runtime.puintptr.ptr
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x20], eax
test byte [eax], al
movzx ecx, byte [esp + 0xf]
movzx edx, cl
mov dword [esp + 0x24], edx
lea ebx, [eax + edx*8 + 0x238]
mov dword [esp + 0x34], ebx
cmp dword [ebx], 0x8000
jb 0x452422
mov dword [esp], eax
mov byte [esp + 4], cl
call sym.runtime.stackcacherelease
mov eax, dword [esp + 0x10]
mov dword [esp], eax
call sym.runtime.gclinkptr.ptr
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea ecx, [edx + ecx*8 + 0x234]
mov edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
add dword [ecx], eax
jmp 0x452315
lea eax, [0x52a25f]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call sym.runtime.throw
nop
call sym.runtime.morestackc
jmp sym.runtime.stackfree