Function at 0x4535d0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x6e9808]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4539b0
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 0x453999
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x453983
lea eax, [0x6e9c94]
mov dword [esp], eax
call sym.internal_runtime_atomic.Loadint32
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
test eax, eax
je 0x453638
mov ecx, dword [esp + 0x24]
jmp 0x453654
mov ecx, dword [esp + 0x24]
movzx edx, byte [ecx + 6]
test dl, dl
je 0x453654
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 0x453678
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 0x4536dc
mov esi, dword [0x6e9960]
test esi, esi
je 0x4536c4
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 0x4537fa
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 0x453759
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 0x45379e
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 0x4537e3
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 0x4537e5
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 0x4537fc
xor edx, edx
mov byte [esp + 0xd], dl
movzx ebp, byte [ecx + 5]
nop
xchg ebp, eax
test al, 1
xchg ebp, eax
jne 0x45385c
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 0x453853
movzx edx, byte [ecx + 6]
test dl, dl
je 0x453843
mov edx, dword [ecx + 8]
test edx, edx
seta dl
test eax, eax
jmp 0x45384a
test eax, eax
mov edx, 1
mov ebp, edx
movzx edx, byte [esp + 0xd]
jmp 0x453863
test eax, eax
movzx edx, byte [esp + 0xd]
jmp 0x45385e
test eax, eax
mov ebp, 0
xchg ebp, eax
mov byte [esp + 0xf], al
xchg ebp, eax
jne 0x4538d3
movzx edi, byte [ecx + 6]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4538d3
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 0x4538d3
lea eax, [ecx + 0x34]
mov dword [esp], eax
call sym.internal_runtime_atomic.Loadint32
mov eax, dword [esp + 4]
test eax, eax
jle 0x4538bc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
movzx edx, byte [esp + 0xd]
movzx ebp, byte [esp + 0xf]
mov esi, 1
jmp 0x4538d3
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 0x4538f4
mov eax, dword [esp + 0x24]
movzx ecx, byte [esp + 0xe]
jmp 0x45393f
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax + 6]
test cl, cl
jne 0x453907
movzx ecx, byte [esp + 0xe]
jmp 0x45393f
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 0x453959
mov dword [esp], eax
call sym.runtime._timer_.maybeAdd
movzx ecx, byte [esp + 0xe]
movzx eax, byte [esp + 0xd]
test al, al
je 0x45397b
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, [0x593b36]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call sym.runtime.throw
lea eax, [0x591c9b]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
call sym.runtime.throw
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime._timer_.modify