user: What is the c source code of the assembly code below?

```asm
<calc_padding_cca>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  movl   $0x0,-0x4(%rbp)
  cmpl   $0x4,-0x18(%rbp)
  je     L181
  cmpl   $0x4,-0x18(%rbp)
  jg     L369
  cmpl   $0x2,-0x18(%rbp)
  je     L117
  cmpl   $0x3,-0x18(%rbp)
  je     L195
  jmp    L369
L117:
  cmpl   $0x3b,-0x14(%rbp)
  jg     L37
  movl   $0x3b,-0x4(%rbp)
  jmp    L126
L37:
  cmpl   $0x4e,-0x14(%rbp)
  jg     L205
  movl   $0x4e,-0x4(%rbp)
  jmp    L126
L205:
  cmpl   $0x58,-0x14(%rbp)
  jg     L93
  movl   $0x58,-0x4(%rbp)
  jmp    L126
L93:
  cmpl   $0x6c,-0x14(%rbp)
  jg     L136
  movl   $0x6c,-0x4(%rbp)
  jmp    L126
L136:
  cmpl   $0x76,-0x14(%rbp)
  jg     L284
  movl   $0x76,-0x4(%rbp)
  jmp    L126
L284:
  cmpl   $0x8a,-0x14(%rbp)
  jg     L59
  movl   $0x8a,-0x4(%rbp)
  jmp    L126
L59:
  cmpl   $0xa7,-0x14(%rbp)
  jg     L126
  movl   $0xa7,-0x4(%rbp)
  jmp    L126
L195:
  cmpl   $0x4e,-0x14(%rbp)
  jg     L39
  movl   $0x4e,-0x4(%rbp)
  jmp    L389
L39:
  cmpl   $0x62,-0x14(%rbp)
  jg     L297
  movl   $0x62,-0x4(%rbp)
  jmp    L389
L297:
  cmpl   $0x76,-0x14(%rbp)
  jg     L100
  movl   $0x76,-0x4(%rbp)
  jmp    L389
L100:
  cmpl   $0x8a,-0x14(%rbp)
  jg     L332
  movl   $0x8a,-0x4(%rbp)
  jmp    L389
L332:
  cmpl   $0xa7,-0x14(%rbp)
  jg     L389
  movl   $0xa7,-0x4(%rbp)
  jmp    L389
L181:
  cmpl   $0x4e,-0x14(%rbp)
  jg     L380
  movl   $0x4e,-0x4(%rbp)
  jmp    L370
L380:
  cmpl   $0x6c,-0x14(%rbp)
  jg     L113
  movl   $0x6c,-0x4(%rbp)
  jmp    L370
L113:
  cmpl   $0x8a,-0x14(%rbp)
  jg     L308
  movl   $0x8a,-0x4(%rbp)
  jmp    L370
L308:
  cmpl   $0xa7,-0x14(%rbp)
  jg     L298
  movl   $0xa7,-0x4(%rbp)
  jmp    L370
L298:
  cmpl   $0xc5,-0x14(%rbp)
  jg     L370
  movl   $0xc5,-0x4(%rbp)
  jmp    L370
L126:
  nop
  jmp    L369
L389:
  nop
  jmp    L369
L370:
  nop
L369:
  mov    -0x4(%rbp),%eax
  pop    %rbp
  ret
```

assistant: ```c
int calc_padding_cca(const int binary_length, const int cc_width) {
  int target_bitsize = 0;
  switch (cc_width) {
  case 2:
    if (binary_length <= 59) {
      target_bitsize = 59;
    } else if (binary_length <= 78) {
      target_bitsize = 78;
    } else if (binary_length <= 88) {
      target_bitsize = 88;
    } else if (binary_length <= 108) {
      target_bitsize = 108;
    } else if (binary_length <= 118) {
      target_bitsize = 118;
    } else if (binary_length <= 138) {
      target_bitsize = 138;
    } else if (binary_length <= 167) {
      target_bitsize = 167;
    }
    break;
  case 3:
    if (binary_length <= 78) {
      target_bitsize = 78;
    } else if (binary_length <= 98) {
      target_bitsize = 98;
    } else if (binary_length <= 118) {
      target_bitsize = 118;
    } else if (binary_length <= 138) {
      target_bitsize = 138;
    } else if (binary_length <= 167) {
      target_bitsize = 167;
    }
    break;
  case 4:
    if (binary_length <= 78) {
      target_bitsize = 78;
    } else if (binary_length <= 108) {
      target_bitsize = 108;
    } else if (binary_length <= 138) {
      target_bitsize = 138;
    } else if (binary_length <= 167) {
      target_bitsize = 167;
    } else if (binary_length <= 197) {
      target_bitsize = 197;
    }
    break;
  }
  return target_bitsize;
}
```