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

Disassembly:
mov ecx, dword [0x8993fc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x421c41
sub esp, 0x68
mov eax, dword [esp + 0x6c]
test byte [eax], al
lea ecx, [eax + 0xa0]
lea edx, [eax + 0xa8]
mov dword [esp + 0x54], edx
lea ebx, [eax + 0xb0]
mov dword [esp + 0x50], ebx
lea ebp, [eax + 0xb8]
mov dword [esp + 0x4c], ebp
lea esi, [eax + 0xc0]
mov dword [esp + 0x48], esi
lea edi, [eax + 0xc8]
mov dword [esp + 0x64], edi
lea edi, [eax + 0xd0]
mov dword [esp + 0x60], edi
lea edi, [eax + 0xd8]
mov dword [esp + 0x5c], edi
add eax, 0x68
mov dword [esp + 0x58], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Storeint64
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0xe0], eax
mov eax, dword [esp + 0x74]
mov dword [ecx + 0xe4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], ecx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.runtime.fint32to64
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x3fd00000
call sym.runtime.fmul64
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x3fe00000
call sym.runtime.fadd64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.f64toint64
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.fint64to64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
call sym.runtime.fdiv64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0xbff00000
call sym.runtime.fadd64
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp], 0x33333333
mov dword [esp + 4], 0xbfd33333
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call sym.runtime.fgt64
movzx eax, byte [esp + 0x10]
test al, al
je 0x421829
mov eax, 1
jmp 0x421852
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x33333333
mov dword [esp + 0xc], 0x3fd33333
call sym.runtime.fgt64
movzx eax, byte [esp + 0x10]
test al, al
jne 0x42187b
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x108], 0
mov dword [edx + 0x10c], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
jmp 0x421969
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
call sym.runtime.fint64to64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
call sym.runtime.fgt64
movzx eax, byte [esp + 0x10]
test al, al
je 0x4218cc
mov eax, dword [esp + 0x24]
add eax, 0xffffffff
mov ecx, dword [esp + 0x28]
adc ecx, 0xffffffff
jmp 0x4218d4
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
xor eax, 0x80000000
mov dword [esp + 0xc], eax
call sym.runtime.fadd64
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x78]
mov dword [esp], edx
call sym.runtime.fint32to64
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x44]
mov dword [esp], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call sym.runtime.fdiv64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x108], eax
mov dword [edx + 0x10c], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov ebx, dword [0x899960]
test ebx, ebx
jle 0x421994
mov dword [edx + 0x108], 0
mov dword [edx + 0x10c], 0
mov eax, dword [esp + 0x78]
mov ecx, eax
sar eax, 0x1f
mov ebx, ecx
jmp 0x421998
mov ebx, dword [esp + 0x78]
mov ebp, dword [0x85a2e0]
mov esi, dword [0x85a2e4]
xor edi, edi
jmp 0x4219d9
mov ebx, dword [ebp + edi*4]
mov dword [ebx + 0x958], 0
mov dword [ebx + 0x95c], 0
mov dword [ebx + 0x960], 0
mov dword [ebx + 0x964], 0
inc edi
mov ebx, dword [esp + 0x78]
cmp edi, esi
jl 0x4219a8
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov ebp, dword [esp + 0x7c]
cmp ebp, 1
jne 0x421a31
test eax, eax
sete bl
xchg ebp, ebx
setg bl
xchg ebp, ebx
test ecx, ecx
xchg esi, ebx
seta bl
xchg esi, ebx
and ebx, esi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x421a1f
mov dword [esp], edx
mov dword [esp + 4], 0
call sym.runtime._gcControllerState_.setMaxIdleMarkWorkers
jmp 0x421a3f
mov dword [esp], edx
mov dword [esp + 4], 1
call sym.runtime._gcControllerState_.setMaxIdleMarkWorkers
jmp 0x421a3f
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 4], ebx
call sym.runtime._gcControllerState_.setMaxIdleMarkWorkers
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0xe8]
nop
mov dword [esp], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edx
call sym.runtime_internal_atomic.Storeint64
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call sym.runtime._gcControllerState_.revise
mov eax, dword [0x899958]
test eax, eax
jle 0x421c3d
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0xf8]
mov dword [esp + 0x58], ecx
nop
mov dword [esp], eax
call sym.runtime._gcControllerState_.heapGoalInternal
mov eax, dword [esp + 4]
shr eax, 0x14
mov ecx, dword [esp + 8]
mov edx, ecx
shl ecx, 0xc
or eax, ecx
mov dword [esp + 0x44], eax
shr edx, 0x14
mov dword [esp + 0x40], edx
nop
nop
mov ecx, dword [esp + 0x58]
mov dword [esp], ecx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], ecx
lea edx, [0x89a170]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [0x85acf4]
mov ecx, dword [0x85acf0]
mov edx, eax
shl eax, 0xc
shr edx, 0x14
mov dword [esp + 0x3c], edx
shr ecx, 0x14
or eax, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x6c]
mov ebx, dword [ecx + 0x108]
mov dword [esp + 0x34], ebx
mov ecx, dword [ecx + 0x10c]
mov dword [esp + 0x30], ecx
mov ebp, dword [esp + 4]
shr ebp, 0x14
mov dword [esp + 0x2c], ebp
mov esi, dword [esp + 8]
mov dword [esp + 0x1c], esi
call sym.runtime.printlock
lea eax, [0x697583]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call sym.runtime.printstring
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
call sym.runtime.printfloat
lea eax, [0x693126]
mov dword [esp], eax
mov dword [esp + 4], 7
call sym.runtime.printstring
mov eax, dword [esp + 0x1c]
mov ecx, eax
shl eax, 0xc
mov edx, dword [esp + 0x2c]
or edx, eax
mov dword [esp], edx
shr ecx, 0x14
mov dword [esp + 4], ecx
call sym.runtime.printuint
lea eax, [0x69312d]
mov dword [esp], eax
mov dword [esp + 4], 7
call sym.runtime.printstring
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym.runtime.printuint
lea eax, [0x6927d8]
mov dword [esp], eax
mov dword [esp + 4], 2
call sym.runtime.printstring
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call sym.runtime.printuint
lea eax, [0x694b58]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call sym.runtime.printstring
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call sym.runtime.printint
lea eax, [0x6927b7]
mov dword [esp], eax
mov dword [esp + 4], 1
call sym.runtime.printstring
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym.runtime.printfloat
call sym.runtime.printnl
call sym.runtime.printunlock
add esp, 0x68
ret
call sym.runtime.morestack_noctxt
jmp sym.runtime._gcControllerState_.startCycle