Function at 0x423dd0
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 0x4240cb
sub esp, 0x54
mov eax, dword [esp + 0x58]
test byte [eax], al
movzx ecx, byte [esp + 0x5c]
test cl, cl
je 0x423e13
lea ecx, [eax + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call sym.runtime_internal_atomic.Store64
jmp 0x423e49
lea ecx, [eax + 0x68]
lea edx, [eax + 0x50]
mov dword [esp + 0x50], edx
mov dword [esp], ecx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
add eax, 0x100000
mov dword [esp + 4], eax
adc ecx, 0
mov dword [esp + 8], ecx
call sym.runtime_internal_atomic.Store64
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call sym.runtime_internal_atomic.Loadint32
mov eax, dword [esp + 4]
test eax, eax
jge 0x423e6c
mov edx, 0xffffffff
mov ecx, 0xffffffff
jmp 0x423f64
mov dword [esp + 0x30], eax
sar eax, 0x1f
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x58]
lea ebx, [edx + 0x80]
lea ebp, [edx + 0x90]
mov dword [esp + 0x50], ebp
mov dword [esp], ebx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x50]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x98]
mov edx, dword [eax + 0x9c]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0x20]
add esi, ecx
mov edi, dword [esp + 0x2c]
adc edi, edx
add esi, ebx
adc edi, ebp
mov eax, dword [esp + 0x30]
mul esi
mov ebx, dword [esp + 0x30]
imul edi, ebx
mov ebx, dword [esp + 0x44]
imul ebx, esi
add edx, ebx
add edx, edi
mov ebx, edx
shr edx, 1
mov esi, eax
mov eax, edx
mov edi, 0xa3d70a3e
mul edi
shr edx, 5
mov dword [esp + 0x3c], edx
imul eax, edx, 0x64
sub ebx, eax
mov eax, ebx
mov ebp, 0x28f5c28
mul ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
lea ebx, [ebx + ebx*2]
shl ebx, 5
mov ebp, esi
shr esi, 1
mov eax, edi
mul esi
shr edx, 5
imul eax, edx, 0x64
sub ebp, eax
lea eax, [ebx + ebp]
shr eax, 1
mov ebx, edx
mul edi
shr edx, 5
add ebx, 0
mov eax, dword [esp + 0x3c]
adc eax, 0
mov ebp, dword [esp + 0x34]
add ebx, ebp
mov ebp, dword [esp + 0x38]
adc eax, ebp
add edx, ebx
adc eax, 0
add ecx, edx
mov edx, dword [esp + 0x40]
adc edx, eax
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
cmp edx, ebp
xchg esi, ebx
setb bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ecx, ebx
setb al
and edi, eax
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x423f91
mov ebp, edx
mov ebx, ecx
mov eax, dword [esp + 0x58]
lea ecx, [eax + 0x48]
lea edx, [eax + 0x80]
mov dword [esp + 0x50], edx
lea esi, [eax + 0x90]
mov dword [esp + 0x4c], esi
lea edi, [eax + 0x18]
mov dword [esp + 0x48], edi
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call sym.runtime_internal_atomic.Store64
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov ebx, dword [esp + 4]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x24], ebp
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x3fe80000
call sym.runtime.fmul64
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], 0x3fd00000
call sym.runtime.fdiv64
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x78]
mov edx, dword [edx + 0x7c]
mov ebp, dword [esp + 0x1c]
add ebx, ebp
mov ebp, dword [esp + 0x28]
adc edx, ebp
mov ebp, dword [esp + 0x18]
add ebx, ebp
mov dword [esp], ebx
mov ebx, dword [esp + 0x24]
adc edx, ebx
mov dword [esp + 4], edx
call sym.runtime.fuint64to64
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym.runtime.fmul64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.f64touint64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime_internal_atomic.Store64
add esp, 0x54
ret
call sym.runtime.morestack_noctxt
jmp sym.runtime._gcControllerState_.commit