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

Disassembly:
mov ecx, dword [0x61c868]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x421953
sub esp, 0xc0
mov eax, dword [esp + 0xc4]
test byte [eax], al
mov dword [esp], eax
call sym.internal_runtime_atomic._Int32_.Load
mov eax, dword [esp + 4]
test eax, eax
jge 0x4213dc
mov eax, 0x186a0
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0xc4]
lea edx, [ecx + 0x68]
mov dword [esp], edx
call sym.internal_runtime_atomic._Uint64_.Load
mov eax, dword [esp + 0xc4]
lea ecx, [eax + 0x70]
lea edx, [eax + 0xa0]
mov dword [esp + 0xbc], edx
lea ebx, [eax + 0xa8]
mov dword [esp + 0xb8], ebx
lea ebp, [eax + 0xb0]
mov dword [esp + 0xb4], ebp
lea esi, [eax + 0x80]
mov dword [esp + 0xb0], esi
lea edi, [eax + 0x90]
mov dword [esp + 0xac], edi
lea edi, [eax + 0x88]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], edi
mov dword [esp], ecx
call sym.internal_runtime_atomic._Uint64_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call sym.internal_runtime_atomic._Int64_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
call sym.internal_runtime_atomic._Int64_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0xb4]
mov dword [esp], edx
call sym.internal_runtime_atomic._Int64_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0xc4]
mov dword [esp], edx
call sym.runtime._gcControllerState_.heapGoal
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp], edx
call sym.internal_runtime_atomic._Uint64_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0xac]
mov dword [esp], edx
call sym.internal_runtime_atomic._Uint64_.Load
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 4]
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x74], ebp
mov esi, dword [esp + 0xa8]
mov dword [esp], esi
call sym.internal_runtime_atomic._Uint64_.Load
mov eax, dword [esp + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0xac]
mov dword [esp], edx
call sym.internal_runtime_atomic._Uint64_.Load
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa4]
add edx, ebx
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x98]
adc ebx, ebp
mov ebp, dword [esp + 0x94]
add ebp, edx
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x90]
adc ebx, edx
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
add edx, esi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
adc esi, edi
mov edi, dword [esp + 0x78]
add edx, edi
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x74]
adc esi, edi
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
add edi, edx
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
adc edx, ebp
add eax, edi
mov dword [esp + 0xa4], eax
adc edx, ecx
mov dword [esp + 0x24], edx
cmp esi, ebx
setl cl
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
cmp edi, edx
setb al
and eax, ebp
or eax, ecx
test al, al
jne 0x421650
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x48]
jmp 0x4217c1
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
mov ebx, dword [esp + 0x4c]
cvtsi2sd xmm0, ebx
movsd xmm1, qword [0x53afd8]
divsd xmm0, xmm1
movsd xmm1, qword [0x53aeb8]
addsd xmm1, xmm0
movsd qword [esp + 0x68], xmm1
mov ebx, dword [esp + 0x48]
sub ebx, ecx
mov dword [esp], ebx
mov ecx, dword [esp + 0x8c]
sbb ecx, edx
mov dword [esp + 4], ecx
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 0x60]
divsd xmm0, qword [esp + 8]
movsd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 0x60]
mulsd xmm0, qword [esp + 8]
movsd qword [esp], xmm0
call sym.runtime.float64toint64
mov eax, dword [esp + 8]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0xc4]
mov ebx, dword [edx + 0x58]
mov dword [esp + 0x94], ebx
mov ebp, dword [edx + 0x5c]
mov dword [esp + 0x88], ebp
mov esi, dword [esp + 0x48]
mov dword [esp], esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 4], esi
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 0x68]
mulsd xmm0, qword [esp + 8]
movsd qword [esp], xmm0
call sym.runtime.float64toint64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x94]
add edx, ebx
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x88]
adc ebx, ebp
cmp ecx, ebx
xchg ebp, ebx
setl bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
cmp edx, eax
xchg edi, ebx
seta bl
xchg edi, ebx
and edi, esi
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4217ae
mov ecx, ebx
mov eax, edx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0xa4]
mov ebp, dword [esp + 0x3c]
cmp ecx, ebp
xchg ebp, ebx
setl bl
xchg ebp, ebx
sete bl
mov edx, dword [esp + 0x38]
cmp eax, edx
setb dl
and edx, ebx
or edx, ebp
test dl, dl
je 0x421819
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.int64tofloat64
movsd xmm0, qword [0x53afb0]
mulsd xmm0, qword [esp + 8]
movsd qword [esp], xmm0
call sym.runtime.float64toint64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0x10]
sub edi, edx
mov edx, dword [esp + 0x14]
sbb esi, edx
test esi, esi
setl dl
sete bl
cmp edi, 0x3e8
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x42184b
xor esi, esi
mov edi, 0x3e8
mov edx, dword [esp + 0x38]
sub eax, edx
mov edx, dword [esp + 0x3c]
sbb ecx, edx
test ecx, ecx
setl dl
sete bl
test eax, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebx, ebp
or ebx, edx
test bl, bl
je 0x421877
xor ecx, ecx
mov eax, 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov dword [esp], edi
mov dword [esp + 4], esi
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 0x68]
divsd xmm0, qword [esp + 8]
movsd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 0x68]
divsd xmm0, qword [esp + 8]
movsd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0xc4]
lea ecx, [eax + 0xf8]
mov dword [esp], ecx
movsd xmm1, qword [esp + 0x50]
movsd qword [esp + 4], xmm1
call sym.internal_runtime_atomic._Float64_.Store
mov eax, dword [esp + 0xc4]
add eax, 0x100
mov dword [esp], eax
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 4], xmm0
call sym.internal_runtime_atomic._Float64_.Store
add esp, 0xc0
ret
call sym.runtime.morestack_noctxt
jmp sym.runtime._gcControllerState_.revise