user: Please show me the C implementation that matches the assembly code listed below:

```asm
<test_unsigned_modulus>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x0,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0x0,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0x8,%ecx
  lea    D0(%rip),%rbx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x1,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0x9,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x2,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0xa,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x0,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0x3,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0xb,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x1,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0x4,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0xc,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x2,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0xffffffff,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0xe,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x1,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0xfffffffe,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0xf,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x0,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0xfffffffd,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0x10,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  mov    $0x2,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%ebp
  mov    $0x3,%esi
  mov    $0xfffffffc,%edi
  call   <UnsignedModulus@plt>
  mov    %eax,%esi
  mov    $0x4,%edi
  call   <_cast_to_largest_integral_type@plt>
  mov    %eax,%edi
  mov    $0x11,%ecx
  mov    %rbx,%rdx
  mov    %ebp,%esi
  call   <_assert_int_equal@plt>
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: label: D0
datatype: string

tool: D0: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c

assistant: ```c
void test_unsigned_modulus(void) {
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(0, 3)), UnsignedModulus(0, 3)), _cast_to_largest_integral_type(sizeof(0), 0), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 8);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(1, 3)), UnsignedModulus(1, 3)), _cast_to_largest_integral_type(sizeof(1), 1), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 9);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(2, 3)), UnsignedModulus(2, 3)), _cast_to_largest_integral_type(sizeof(2), 2), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 10);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(3, 3)), UnsignedModulus(3, 3)), _cast_to_largest_integral_type(sizeof(0), 0), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 11);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(4, 3)), UnsignedModulus(4, 3)), _cast_to_largest_integral_type(sizeof(1), 1), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 12);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(-1, 3)), UnsignedModulus(-1, 3)), _cast_to_largest_integral_type(sizeof(2), 2), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 14);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(-2, 3)), UnsignedModulus(-2, 3)), _cast_to_largest_integral_type(sizeof(1), 1), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 15);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(-3, 3)), UnsignedModulus(-3, 3)), _cast_to_largest_integral_type(sizeof(0), 0), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 16);
  _assert_int_equal(_cast_to_largest_integral_type(sizeof(UnsignedModulus(-4, 3)), UnsignedModulus(-4, 3)), _cast_to_largest_integral_type(sizeof(2), 2), "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jooooooon/core/refs/heads/master/tests/unit/misc_lib_test.c", 17);
}
```