Function at 0x4520b0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x75421c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x452490
sub esp, 0x20
mov eax, dword [esp + 0x2c]
test eax, eax
sete cl
setl dl
mov ebx, dword [esp + 0x28]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ecx, ebp
or edx, ecx
test dl, dl
jne 0x452479
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x452463
lea eax, [0x7545b4]
mov dword [esp], eax
call sym.internal_runtime_atomic.Loadint32
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
test eax, eax
je 0x452118
mov ecx, dword [esp + 0x24]
jmp 0x452134
mov ecx, dword [esp + 0x24]
movzx edx, byte [ecx + 6]
test dl, dl
je 0x452134
lea eax, [ecx + 0x30]
nop
mov dword [esp], eax
call sym.runtime.lock2
mov ecx, dword [esp + 0x24]
test byte [ecx], al
nop
nop
mov dword [esp], ecx
call sym.runtime.lock2
mov eax, dword [esp + 0x10]
test eax, eax
je 0x452158
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym.runtime._timer_.maybeRunAsync
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x14], edx
mov ebx, dword [ecx + 0x18]
mov ebp, dword [esp + 0x30]
mov dword [ecx + 0x14], ebp
mov ebp, dword [esp + 0x34]
mov dword [ecx + 0x18], ebp
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x4521bc
mov esi, dword [0x754308]
test esi, esi
je 0x4521a4
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov esi, dword [ecx + 0x1c]
mov dword [edi + 4], esi
mov esi, dword [esp + 0x40]
mov dword [edi + 8], esi
mov edx, dword [ecx + 0x24]
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x1c], ebp
mov ebp, dword [esp + 0x3c]
mov dword [ecx + 0x20], ebp
mov ebp, dword [esp + 0x40]
mov dword [ecx + 0x24], ebp
mov ebp, dword [esp + 0x44]
mov dword [ecx + 0x28], ebp
mov ebp, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov edi, dword [esp + 0x28]
mov dword [ecx + 0xc], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x10], edi
movzx edi, byte [ecx + 5]
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
setg dl
test ebp, ebp
xchg ebp, ebx
seta bl
xchg ebp, ebx
and esi, ebp
or esi, edx
xchg esi, eax
mov byte [esp + 0xe], al
xchg esi, eax
xchg edi, eax
test al, 1
xchg edi, eax
je 0x4522da
mov dword [esp + 0x18], ebx
or edi, 2
xchg edi, eax
mov byte [ecx + 5], al
xchg edi, eax
xchg edi, eax
test al, 4
xchg edi, eax
je 0x452239
mov eax, dword [ecx + 0x2c]
test byte [eax], al
add eax, 0x14
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
call sym.internal_runtime_atomic.Xaddint32
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax + 5]
and ecx, 0xfffffffb
mov byte [eax + 5], cl
mov ecx, eax
mov eax, dword [ecx + 0x2c]
test byte [eax], al
add eax, 0x28
mov dword [esp], eax
call sym.internal_runtime_atomic.Loadint64
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test ecx, ecx
sete dl
test eax, eax
sete bl
and edx, ebx
test dl, dl
jne 0x45227e
mov edx, dword [esp + 0x2c]
cmp edx, ecx
setl cl
sete bl
mov ebp, dword [esp + 0x28]
cmp ebp, eax
setb al
and eax, ebx
or eax, ecx
test al, al
je 0x4522c3
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax + 5]
lea edx, [eax + 4]
mov dword [esp], edx
mov byte [esp + 4], cl
call sym.internal_runtime_atomic.Store8
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x2c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], edx
call sym.runtime._timers_.updateMinWhenModified
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov eax, 1
jmp 0x4522c5
xor eax, eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
movzx esi, byte [esp + 0xe]
mov edx, eax
mov eax, dword [esp + 0x10]
jmp 0x4522dc
xor edx, edx
mov byte [esp + 0xd], dl
movzx ebp, byte [ecx + 5]
nop
xchg ebp, eax
test al, 1
xchg ebp, eax
jne 0x45233c
mov ebp, dword [ecx + 0xc]
mov edi, dword [ecx + 0x10]
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
setg dl
test ebp, ebp
xchg ebp, ebx
seta bl
xchg ebp, ebx
and edi, ebp
or edx, edi
test dl, dl
je 0x452333
movzx edx, byte [ecx + 6]
test dl, dl
je 0x452323
mov edx, dword [ecx + 8]
test edx, edx
seta dl
test eax, eax
jmp 0x45232a
test eax, eax
mov edx, 1
mov ebp, edx
movzx edx, byte [esp + 0xd]
jmp 0x452343
test eax, eax
movzx edx, byte [esp + 0xd]
jmp 0x45233e
test eax, eax
mov ebp, 0
xchg ebp, eax
mov byte [esp + 0xf], al
xchg ebp, eax
jne 0x4523b3
movzx edi, byte [ecx + 6]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4523b3
inc dword [ecx + 0x28]
test ebx, ebx
sete bl
mov edi, dword [esp + 0x14]
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and ebx, edi
test bl, bl
je 0x4523b3
lea eax, [ecx + 0x34]
mov dword [esp], eax
call sym.internal_runtime_atomic.Loadint32
mov eax, dword [esp + 4]
test eax, eax
jle 0x45239c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
movzx edx, byte [esp + 0xd]
movzx ebp, byte [esp + 0xf]
mov esi, 1
jmp 0x4523b3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
movzx edx, byte [esp + 0xd]
movzx ebp, byte [esp + 0xf]
movzx esi, byte [esp + 0xe]
xchg esi, eax
mov byte [esp + 0xe], al
xchg esi, eax
mov dword [esp], ecx
call sym.runtime._timer_.unlock
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4523d4
mov eax, dword [esp + 0x24]
movzx ecx, byte [esp + 0xe]
jmp 0x45241f
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax + 6]
test cl, cl
jne 0x4523e7
movzx ecx, byte [esp + 0xe]
jmp 0x45241f
lea ecx, [eax + 0x30]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 0x24]
mov dword [esp], edx
call sym.runtime.timerchandrain
movzx eax, byte [esp + 4]
movzx ecx, byte [esp + 0xe]
or ecx, eax
mov byte [esp + 0xe], cl
nop
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sym.runtime.unlock2
mov eax, dword [esp + 0x24]
movzx ecx, byte [esp + 0xe]
mov byte [esp + 0xe], cl
movzx edx, byte [esp + 0xf]
test dl, dl
je 0x452439
mov dword [esp], eax
call sym.runtime._timer_.maybeAdd
movzx ecx, byte [esp + 0xe]
movzx eax, byte [esp + 0xd]
test al, al
je 0x45245b
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call sym.runtime.wakeNetPoller
movzx ecx, byte [esp + 0xe]
mov byte [esp + 0x48], cl
add esp, 0x20
ret
lea eax, [0x4c7f17]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call sym.runtime.throw
lea eax, [0x4c6728]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
call sym.runtime.throw
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime._timer_.modify