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

Disassembly:
mov ecx, dword [0x59ec64]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x41fa50
sub esp, 0xd4
mov eax, dword [esp + 0xd8]
test byte [eax], al
mov dword [esp], eax
call sym.runtime_internal_atomic.Loadint32
mov eax, dword [esp + 4]
test eax, eax
jge 0x41f3bc
mov eax, 0x186a0
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0xd8]
lea edx, [ecx + 0x68]
lea ebx, [ecx + 0x70]
mov dword [esp + 0xd0], ebx
lea ebp, [ecx + 0xa0]
mov dword [esp + 0xcc], ebp
lea esi, [ecx + 0xa8]
mov dword [esp + 0xc8], esi
lea edi, [ecx + 0xb0]
mov dword [esp + 0xc4], edi
lea eax, [ecx + 0x80]
mov dword [esp + 0xc0], eax
lea eax, [ecx + 0x90]
mov dword [esp + 0xbc], eax
lea eax, [ecx + 0x88]
mov dword [esp + 0xb8], eax
nop
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
nop
mov eax, dword [esp + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0xd0]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xcc]
mov dword [esp], edx
call sym.runtime_internal_atomic.Loadint64
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call sym.runtime_internal_atomic.Loadint64
mov eax, dword [esp + 4]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0xc4]
mov dword [esp], edx
call sym.runtime_internal_atomic.Loadint64
mov eax, dword [esp + 4]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], ecx
nop
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
call sym.runtime._gcControllerState_.heapGoalInternal
mov eax, dword [esp + 8]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0xc0]
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 + 0x4c], ecx
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0xb4], ecx
mov edx, dword [eax + 0x7c]
mov dword [esp + 0xb0], edx
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x48], ebp
nop
mov esi, dword [esp + 0xb8]
mov dword [esp], esi
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0xbc]
mov dword [esp], edx
call sym.runtime_internal_atomic.Load64
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
adc ebx, ebp
mov ebp, dword [esp + 0x24]
add edx, ebp
mov dword [esp + 0x58], edx
mov ebp, dword [esp + 0x40]
adc ebx, ebp
mov dword [esp + 0x5c], ebx
mov ebp, dword [esp + 0xb4]
mov esi, dword [esp + 0x20]
add ebp, esi
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x4c]
adc esi, edi
mov edi, dword [esp + 0x1c]
add ebp, edi
mov dword [esp + 0x68], ebp
mov edi, dword [esp + 0x48]
adc esi, edi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
add edi, edx
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
adc edx, ebp
add edi, eax
mov dword [esp + 0x70], edi
adc edx, ecx
mov dword [esp + 0x74], edx
cmp esi, ebx
sete al
setl cl
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x58]
cmp ebp, edi
setb dl
and eax, edx
or ecx, eax
test cl, cl
jne 0x41f61e
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
jmp 0x41f830
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
mov ebx, dword [esp + 0x84]
sub ebx, ecx
mov ecx, dword [esp + 0x80]
sbb ecx, edx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x68]
mov dword [esp], edx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym.runtime.fdiv64
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x70]
mov dword [esp], ebx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym.runtime.fmul64
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 + 0xb4], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0xd8]
mov ebx, dword [edx + 0x58]
mov dword [esp + 0xac], ebx
mov ebp, dword [edx + 0x5c]
mov dword [esp + 0xa8], ebp
mov esi, dword [esp + 0x8c]
mov dword [esp], esi
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], 0x40590000
mov dword [esp + 8], 0
call sym.runtime.fdiv64
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], 0x3ff00000
mov dword [esp], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call sym.runtime.fadd64
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x84]
mov dword [esp], edx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call sym.runtime.fmul64
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 + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xac]
add edx, ebx
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xa8]
adc ebx, ebp
cmp eax, ebx
sete al
xchg ebp, ebx
setl bl
xchg ebp, ebx
cmp edx, ecx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, eax
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x41f81c
mov ebx, dword [esp + 0xc]
jmp 0x41f81e
mov ecx, edx
mov edi, dword [esp + 0x58]
mov eax, ebx
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
cmp eax, edx
setl dl
sete bl
mov edi, dword [esp + 0x34]
cmp ecx, edi
xchg edi, ebx
setb bl
xchg edi, ebx
and ebx, edi
or ebx, edx
test bl, bl
je 0x41f8a5
mov dword [esp + 4], eax
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 dword [esp + 0xc], 0x3ff19999
mov dword [esp + 8], 0x9999999a
call sym.runtime.fmul64
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call sym.runtime.f64toint64
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
sub ebp, edx
mov edx, dword [esp + 0x5c]
sbb esi, edx
test esi, esi
setl dl
sete bl
cmp ebp, 0x3e8
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, ebx
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x41f8d7
xor esi, esi
mov ebp, 0x3e8
mov edx, dword [esp + 0x34]
sub ecx, edx
mov edx, dword [esp + 0x54]
sbb eax, edx
test eax, eax
setl dl
sete bl
test ecx, ecx
xchg edi, ebx
setbe bl
xchg edi, ebx
and edi, ebx
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x41f905
xor eax, eax
mov ecx, 1
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 4], esi
mov dword [esp], ebp
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x78]
mov dword [esp], ebx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym.runtime.fdiv64
mov eax, dword [esp + 0x14]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x78]
mov dword [esp], edx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x60]
mov dword [esp], edx
call sym.runtime.fint64to64
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call sym.runtime.fdiv64
mov eax, dword [esp + 0xd8]
lea ecx, [eax + 0xf8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x98], ebx
add eax, 0x100
mov dword [esp + 0xd0], eax
nop
nop
mov dword [esp], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
call sym.runtime_internal_atomic.Store64
nop
nop
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
call sym.runtime_internal_atomic.Store64
add esp, 0xd4
ret
call sym.runtime.morestack_noctxt
jmp sym.runtime._gcControllerState_.revise