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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x422fae
sub esp, 0x60
mov edx, dword [esp + 0x64]
test byte [edx], al
mov ebx, dword [0x5652cc]
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x50], 0
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
mov eax, ebp
xor ecx, ecx
jmp 0x422d02
mov edx, dword [esp + 0x48]
lea edi, [edx + ebp*8]
shl ebp, 3
mov edx, dword [esp + 0x40]
sub edx, ebp
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov ebp, edx
mov edx, dword [esp + 0x64]
test ebp, ebp
jbe 0x422d92
mov dword [esp + 0x48], edi
shr edi, 9
cmp esi, edi
jbe 0x422fa4
mov edx, dword [edx + 0xe4]
test byte [edx], al
mov edi, dword [ebx + edi*4]
cmp edi, 0x400
jae 0x422f98
mov edx, dword [edx + edi*4]
test byte [edx], al
mov edi, dword [esp + 0x48]
and edi, 0x1ff
mov dword [esp + 0x44], edi
shr edi, 3
cmp edi, 0x40
ja 0x422f8c
mov dword [esp + 0x40], ebp
mov dword [esp + 0x30], edx
lea ebx, [edi - 0x40]
neg ebx
mov dword [esp + 0x24], ebx
neg ebx
sar ebx, 0x1f
and edi, ebx
lea ebx, [edx + edi + 0x40800]
lea edi, [edx + edi + 0x40840]
shr ebp, 3
mov edx, dword [esp + 0x24]
cmp edx, ebp
ja 0x422d82
mov ebp, edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x20], ebp
xor edx, edx
jmp 0x422e03
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x4c]
mov dword [esp], eax
call dbg.runtime.(*sweepLocker).dispose
movzx eax, byte [0x569868]
test al, al
je 0x422dde
nop
nop
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call dbg.runtime.unlock2
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
sub eax, ecx
shl eax, 0xd
mov dword [esp], eax
call dbg.runtime.traceGCSweepSpan
nop
nop
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call dbg.runtime.lock2
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
add esp, 0x60
ret
inc edx
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x58]
mov ebp, ecx
mov edi, dword [esp + 0x54]
mov ecx, esi
mov esi, dword [esp + 0x6c]
cmp ebp, edx
jle 0x422ce4
jbe 0x422f83
mov dword [esp + 0x2c], edx
mov dword [esp + 0x3c], ecx
lea eax, [ebx + edx]
mov dword [esp + 0x5c], eax
mov dword [esp], eax
call dbg.runtime/internal/atomic.Load8
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jbe 0x422f7c
mov ebx, dword [esp + 0x54]
movzx ebp, byte [edx + ebx]
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x422e59
mov esi, dword [esp + 0x3c]
jmp 0x422dea
mov esi, dword [esp + 0x3c]
xor eax, eax
jmp 0x422e68
inc eax
mov ecx, edi
mov ebx, dword [esp + 0x54]
cmp eax, 8
jae 0x422dea
mov edi, ecx
mov ecx, eax
mov ebx, 1
shl ebx, cl
xchg ebp, eax
test bl, al
xchg ebp, eax
je 0x422e61
mov ebx, dword [esp + 0x44]
lea edi, [ebx + edx*8]
add edi, eax
cmp edi, 0x200
jae 0x422f70
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], esi
xchg ebp, eax
mov byte [esp + 0x13], al
xchg ebp, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + edi*4 + 0x40000]
lea edx, [esp + 0x4c]
mov dword [esp], edx
mov dword [esp + 4], ecx
call dbg.runtime.(*sweepLocker).tryAcquire
mov eax, dword [esp + 8]
movzx ecx, byte [esp + 0xc]
mov dword [esp + 0x14], eax
test cl, cl
jne 0x422ee4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
movzx ebp, byte [esp + 0x13]
mov edx, dword [esp + 0x38]
jmp 0x422f5b
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], eax
nop
nop
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
call dbg.runtime.unlock2
lea eax, [esp + 0x14]
mov dword [esp], eax
mov byte [esp + 4], 0
call dbg.runtime.(*sweepLocked).sweep
movzx eax, byte [esp + 8]
test al, al
je 0x422f20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
lea esi, [ecx + eax]
jmp 0x422f24
mov esi, dword [esp + 0x38]
mov dword [esp + 0x34], esi
nop
nop
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call dbg.runtime.lock2
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call dbg.runtime/internal/atomic.Load8
movzx ebp, byte [esp + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [ecx + eax]
not edx
and ebp, edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov ecx, eax
mov edi, dword [esp + 0x20]
mov esi, edx
mov edx, dword [esp + 0x2c]
jmp 0x422e61
mov eax, edi
mov ecx, 0x200
call dbg.runtime.panicIndexU
mov eax, edx
call dbg.runtime.panicIndex
mov eax, edx
mov ecx, ebp
call dbg.runtime.panicIndex
mov eax, edi
mov ecx, 0x40
call dbg.runtime.panicSliceBU
mov eax, edi
mov ecx, 0x400
call dbg.runtime.panicIndexU
mov eax, edi
mov ecx, esi
call dbg.runtime.panicIndexU
nop
call dbg.runtime.morestack_noctxt
jmp dbg.runtime.(*mheap).reclaimChunk