pub nakedcc fn _aullrem() void {
    @setRuntimeSafety(false);
    asm volatile (
        \\.intel_syntax noprefix
        \\
        \\         push        ebx
        \\         mov         eax,dword ptr [esp+14h]
        \\         or          eax,eax
        \\         jne         L1a
        \\         mov         ecx,dword ptr [esp+10h]
        \\         mov         eax,dword ptr [esp+0Ch]
        \\         xor         edx,edx
        \\         div         ecx
        \\         mov         eax,dword ptr [esp+8]
        \\         div         ecx
        \\         mov         eax,edx
        \\         xor         edx,edx
        \\         jmp         L2a
        \\ L1a:
        \\         mov         ecx,eax
        \\         mov         ebx,dword ptr [esp+10h]
        \\         mov         edx,dword ptr [esp+0Ch]
        \\         mov         eax,dword ptr [esp+8]
        \\ L3a:
        \\         shr         ecx,1
        \\         rcr         ebx,1
        \\         shr         edx,1
        \\         rcr         eax,1
        \\         or          ecx,ecx
        \\         jne         L3a
        \\         div         ebx
        \\         mov         ecx,eax
        \\         mul         dword ptr [esp+14h]
        \\         xchg        eax,ecx
        \\         mul         dword ptr [esp+10h]
        \\         add         edx,ecx
        \\         jb          L4a
        \\         cmp         edx,dword ptr [esp+0Ch]
        \\         ja          L4a
        \\         jb          L5a
        \\         cmp         eax,dword ptr [esp+8]
        \\         jbe         L5a
        \\ L4a:
        \\         sub         eax,dword ptr [esp+10h]
        \\         sbb         edx,dword ptr [esp+14h]
        \\ L5a:
        \\         sub         eax,dword ptr [esp+8]
        \\         sbb         edx,dword ptr [esp+0Ch]
        \\         neg         edx
        \\         neg         eax
        \\         sbb         edx,0
        \\ L2a:
        \\         pop         ebx
        \\         ret         10h
    );
}
