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

Disassembly:
mov ecx, dword [0x5fc28c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x41fd1b
sub esp, 0x7c
mov eax, dword [esp + 0x80]
test byte [eax], al
lea ecx, [eax + 0xa0]
lea edx, [eax + 0xa8]
mov dword [esp + 0x78], edx
lea ebx, [eax + 0xb0]
mov dword [esp + 0x74], ebx
lea ebp, [eax + 0xb8]
mov dword [esp + 0x70], ebp
lea esi, [eax + 0xc0]
mov dword [esp + 0x6c], esi
lea edi, [eax + 0xc8]
mov dword [esp + 0x68], edi
lea edi, [eax + 0xd0]
mov dword [esp + 0x64], edi
lea edi, [eax + 0xd8]
mov dword [esp + 0x60], edi
add eax, 0x68
mov dword [esp + 0x5c], eax
mov dword [esp], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
nop
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call sym.runtime_internal_atomic.Storeint64
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0xe4], eax
mov eax, dword [esp + 0x84]
mov dword [ecx + 0xe0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x80]
mov dword [edx + 0x5c], eax
mov dword [edx + 0x58], ecx
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call sym.runtime.fint32to64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3fd00000
mov dword [esp + 8], 0
call sym.runtime.fmul64
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3fe00000
mov dword [esp + 8], 0
call sym.runtime.fadd64
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call sym.runtime.f64toint64
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x34], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
call sym.runtime.fdiv64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0xc], 0xbff00000
mov dword [esp + 8], 0
call sym.runtime.fadd64
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 4], 0xbfd33333
mov dword [esp], 0x33333333
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call sym.runtime.fgt64
movzx eax, byte [esp + 0x10]
test al, al
je 0x41f8e3
mov eax, 1
jmp 0x41f90c
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 0xc], 0x3fd33333
mov dword [esp + 8], 0x33333333
call sym.runtime.fgt64
movzx eax, byte [esp + 0x10]
test al, al
jne 0x41f938
mov edx, dword [esp + 0x80]
mov dword [edx + 0x108], 0
mov dword [edx + 0x10c], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
jmp 0x41fa2c
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ecx
call sym.runtime.fgt64
movzx eax, byte [esp + 0x10]
test al, al
je 0x41f989
mov eax, dword [esp + 0x30]
add eax, 0xffffffff
mov ecx, dword [esp + 0x34]
adc ecx, 0xffffffff
jmp 0x41f991
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
xor eax, 0x80000000
mov dword [esp + 0xc], eax
call sym.runtime.fadd64
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp], edx
call sym.runtime.fint32to64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x54]
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call sym.runtime.fdiv64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
mov dword [edx + 0x108], eax
mov dword [edx + 0x10c], ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov ebx, dword [0x5fc65c]
test ebx, ebx
jle 0x41fa5a
mov dword [edx + 0x108], 0
mov dword [edx + 0x10c], 0
mov eax, dword [esp + 0x8c]
mov ecx, eax
sar eax, 0x1f
mov ebx, ecx
jmp 0x41fa61
mov ebx, dword [esp + 0x8c]
mov ebp, dword [0x5d7390]
mov esi, dword [0x5d7394]
xor edi, edi
jmp 0x41faa5
mov ebx, dword [ebp + edi*4]
mov dword [ebx + 0x938], 0
mov dword [ebx + 0x93c], 0
mov dword [ebx + 0x940], 0
mov dword [ebx + 0x944], 0
inc edi
mov ebx, dword [esp + 0x8c]
cmp edi, esi
jl 0x41fa71
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x90]
cmp ebp, 1
jne 0x41fb00
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 0x41faee
mov dword [esp], edx
mov dword [esp + 4], 0
call sym.runtime._gcControllerState_.setMaxIdleMarkWorkers
jmp 0x41fb0e
mov dword [esp], edx
mov dword [esp + 4], 1
call sym.runtime._gcControllerState_.setMaxIdleMarkWorkers
jmp 0x41fb0e
mov dword [esp], edx
sub ebx, ecx
mov dword [esp + 4], ebx
call sym.runtime._gcControllerState_.setMaxIdleMarkWorkers
mov eax, dword [esp + 0x80]
lea ecx, [eax + 0xe8]
nop
mov dword [esp], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 4], edx
call sym.runtime_internal_atomic.Storeint64
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call sym.runtime._gcControllerState_.revise
mov eax, dword [0x5fc654]
test eax, eax
jle 0x41fd17
mov eax, dword [esp + 0x80]
lea ecx, [eax + 0xf8]
mov dword [esp + 0x5c], ecx
nop
mov dword [esp], eax
call sym.runtime._gcControllerState_.heapGoalInternal
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, eax
shl eax, 0xc
shr edx, 0x14
mov dword [esp + 0x58], edx
shr ecx, 0x14
or ecx, eax
mov dword [esp + 0x54], ecx
nop
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], ecx
lea edx, [0x5fcab0]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
mov dword [esp + 0x50], ecx
shr edx, 0x14
mov dword [esp + 0x4c], edx
mov eax, dword [0x5d7994]
mov ebx, dword [0x5d7990]
mov ebp, eax
shl eax, 0xc
shr ebx, 0x14
or ebx, eax
mov dword [esp + 0x48], ebx
shr ebp, 0x14
mov dword [esp + 0x44], ebp
mov eax, dword [esp + 0x80]
mov esi, dword [eax + 0x108]
mov dword [esp + 0x40], esi
mov eax, dword [eax + 0x10c]
mov dword [esp + 0x3c], eax
call sym.runtime.printlock
lea eax, [0x50e416]
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 + 0x1c]
mov dword [esp + 4], eax
call sym.runtime.printfloat
lea eax, [0x50b337]
mov dword [esp], eax
mov dword [esp + 4], 7
call sym.runtime.printstring
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sym.runtime.printuint
lea eax, [0x50b33e]
mov dword [esp], eax
mov dword [esp + 4], 7
call sym.runtime.printstring
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sym.runtime.printuint
lea eax, [0x50ac93]
mov dword [esp], eax
mov dword [esp + 4], 2
call sym.runtime.printstring
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sym.runtime.printuint
lea eax, [0x50c5e7]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call sym.runtime.printstring
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym.runtime.printint
lea eax, [0x50ac75]
mov dword [esp], eax
mov dword [esp + 4], 1
call sym.runtime.printstring
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym.runtime.printfloat
call sym.runtime.printnl
call sym.runtime.printunlock
add esp, 0x7c
ret
call sym.runtime.morestack_noctxt
jmp sym.runtime._gcControllerState_.startCycle