#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int Extraire(char *, int, int, char *);
short Statu_Checksum(char *, int, int);
void Decode_Trame_Brute(char *tab_recu_brut, char *Motdetat, char *Adeco,
                        char *Optarif, char *Isousc, char *Base, char *Hchc,
                        char *Hchp, char *Ptec, char *Iinst, char *Imax,
                        char *Papp, char *Hhphc, char *Checksum,
                        short *Statu_chcksm) {
  int indice = 0;
  int indice_deb = 0;
  while (tab_recu_brut[indice] != '\0') {
    indice_deb = indice;
    if (tab_recu_brut[indice] == 'M' && tab_recu_brut[indice + 1] == 'O') {
      indice = Extraire(tab_recu_brut, indice, 9, Motdetat);
      Checksum[0] = tab_recu_brut[indice];
      Statu_chcksm[0] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
    } else if (tab_recu_brut[indice] == 'A' &&
               tab_recu_brut[indice + 1] == 'D') {
      indice = Extraire(tab_recu_brut, indice, 5, Adeco);
      Checksum[1] = tab_recu_brut[indice];
      Statu_chcksm[1] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
    } else if (tab_recu_brut[indice] == 'O' &&
               tab_recu_brut[indice + 1] == 'P') {
      indice = Extraire(tab_recu_brut, indice, 8, Optarif);
      Checksum[2] = tab_recu_brut[indice];
      Statu_chcksm[2] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
    } else if (tab_recu_brut[indice] == 'B' &&
               tab_recu_brut[indice + 1] == 'A') {
      indice = Extraire(tab_recu_brut, indice, 5, Base);
      Checksum[4] = tab_recu_brut[indice];
      Statu_chcksm[4] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
    } else if (tab_recu_brut[indice] == 'I') {
      switch (tab_recu_brut[indice + 1]) {
      case 'S':
        indice = Extraire(tab_recu_brut, indice, 7, Isousc);
        Checksum[3] = tab_recu_brut[indice];
        Statu_chcksm[3] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      case 'I':
        indice = Extraire(tab_recu_brut, indice, 6, Iinst);
        Checksum[8] = tab_recu_brut[indice];
        Statu_chcksm[8] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      case 'M':
        indice = Extraire(tab_recu_brut, indice, 5, Imax);
        Checksum[9] = tab_recu_brut[indice];
        Statu_chcksm[9] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      default:
        indice++;
      }
    } else if (tab_recu_brut[indice] == 'H') {
      switch (tab_recu_brut[indice + 3]) {
      case 'C':
        indice = Extraire(tab_recu_brut, indice, 5, Hchc);
        Checksum[5] = tab_recu_brut[indice];
        Statu_chcksm[5] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      case 'P':
        indice = Extraire(tab_recu_brut, indice, 5, Hchp);
        Checksum[6] = tab_recu_brut[indice];
        Statu_chcksm[6] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      case 'H':
        indice = Extraire(tab_recu_brut, indice, 6, Hhphc);
        Checksum[11] = tab_recu_brut[indice];
        Statu_chcksm[11] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      default:
        indice++;
      }
    } else if (tab_recu_brut[indice] == 'P') {
      switch (tab_recu_brut[indice + 1]) {
      case 'T':
        indice = Extraire(tab_recu_brut, indice, 5, Ptec);
        Checksum[7] = tab_recu_brut[indice];
        Statu_chcksm[7] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      case 'A':
        indice = Extraire(tab_recu_brut, indice, 5, Papp);
        Checksum[10] = tab_recu_brut[indice];
        Statu_chcksm[10] = Statu_Checksum(tab_recu_brut, indice_deb, indice);
        break;
      default:
        indice++;
      }
    } else {
      indice++;
    }
  }
}


x86 assembly (clang, -O0):
<Decode_Trame_Brute>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movl   $0x0,-0x34(%rbp)
movl   $0x0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
je     16f7 <Decode_Trame_Brute+0x5d7>
mov    -0x34(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4d,%eax
jne    1203 <Decode_Trame_Brute+0xe3>
mov    -0x8(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4f,%eax
jne    1203 <Decode_Trame_Brute+0xe3>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    -0x10(%rbp),%rcx
mov    $0x9,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,(%rax)
jmp    16f2 <Decode_Trame_Brute+0x5d2>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    127b <Decode_Trame_Brute+0x15b>
mov    -0x8(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x44,%eax
jne    127b <Decode_Trame_Brute+0x15b>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    -0x18(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x1(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x2(%rax)
jmp    16ed <Decode_Trame_Brute+0x5cd>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x4f,%eax
jne    12f3 <Decode_Trame_Brute+0x1d3>
mov    -0x8(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x50,%eax
jne    12f3 <Decode_Trame_Brute+0x1d3>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    -0x20(%rbp),%rcx
mov    $0x8,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x4(%rax)
jmp    16e8 <Decode_Trame_Brute+0x5c8>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x42,%eax
jne    136b <Decode_Trame_Brute+0x24b>
mov    -0x8(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jne    136b <Decode_Trame_Brute+0x24b>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    -0x30(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x8(%rax)
jmp    16e3 <Decode_Trame_Brute+0x5c3>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x49,%eax
jne    14a9 <Decode_Trame_Brute+0x389>
mov    -0x8(%rbp),%rcx
movslq -0x34(%rbp),%rax
movsbl 0x1(%rax,%rcx,1),%eax
mov    %eax,-0x3c(%rbp)
sub    $0x49,%eax
je     1409 <Decode_Trame_Brute+0x2e9>
jmp    139e <Decode_Trame_Brute+0x27e>
mov    -0x3c(%rbp),%eax
sub    $0x4d,%eax
je     1452 <Decode_Trame_Brute+0x332>
jmp    13af <Decode_Trame_Brute+0x28f>
mov    -0x3c(%rbp),%eax
sub    $0x53,%eax
jne    149b <Decode_Trame_Brute+0x37b>
jmp    13c0 <Decode_Trame_Brute+0x2a0>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    -0x28(%rbp),%rcx
mov    $0x7,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x3(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x6(%rax)
jmp    14a4 <Decode_Trame_Brute+0x384>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x28(%rbp),%rcx
mov    $0x6,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x8(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x10(%rax)
jmp    14a4 <Decode_Trame_Brute+0x384>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x30(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x9(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x12(%rax)
jmp    14a4 <Decode_Trame_Brute+0x384>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    16de <Decode_Trame_Brute+0x5be>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x48,%eax
jne    15e7 <Decode_Trame_Brute+0x4c7>
mov    -0x8(%rbp),%rcx
movslq -0x34(%rbp),%rax
movsbl 0x3(%rax,%rcx,1),%eax
mov    %eax,-0x40(%rbp)
sub    $0x43,%eax
je     14fe <Decode_Trame_Brute+0x3de>
jmp    14dc <Decode_Trame_Brute+0x3bc>
mov    -0x40(%rbp),%eax
sub    $0x48,%eax
je     1590 <Decode_Trame_Brute+0x470>
jmp    14ed <Decode_Trame_Brute+0x3cd>
mov    -0x40(%rbp),%eax
sub    $0x50,%eax
je     1547 <Decode_Trame_Brute+0x427>
jmp    15d9 <Decode_Trame_Brute+0x4b9>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x10(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x5(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0xa(%rax)
jmp    15e2 <Decode_Trame_Brute+0x4c2>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x18(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x6(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0xc(%rax)
jmp    15e2 <Decode_Trame_Brute+0x4c2>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x40(%rbp),%rcx
mov    $0x6,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0xb(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x16(%rax)
jmp    15e2 <Decode_Trame_Brute+0x4c2>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    16d9 <Decode_Trame_Brute+0x5b9>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x50,%eax
jne    16cb <Decode_Trame_Brute+0x5ab>
mov    -0x8(%rbp),%rcx
movslq -0x34(%rbp),%rax
movsbl 0x1(%rax,%rcx,1),%eax
mov    %eax,-0x44(%rbp)
sub    $0x41,%eax
je     1674 <Decode_Trame_Brute+0x554>
jmp    161a <Decode_Trame_Brute+0x4fa>
mov    -0x44(%rbp),%eax
sub    $0x54,%eax
jne    16bd <Decode_Trame_Brute+0x59d>
jmp    162b <Decode_Trame_Brute+0x50b>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x20(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0xe(%rax)
jmp    16c6 <Decode_Trame_Brute+0x5a6>
mov    -0x8(%rbp),%rdi
mov    -0x34(%rbp),%esi
mov    0x38(%rbp),%rcx
mov    $0x5,%edx
call   1030 <Extraire@plt>
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mov    (%rax,%rcx,1),%cl
mov    0x48(%rbp),%rax
mov    %cl,0xa(%rax)
mov    -0x8(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
call   1040 <Statu_Checksum@plt>
mov    %ax,%cx
mov    0x50(%rbp),%rax
mov    %cx,0x14(%rax)
jmp    16c6 <Decode_Trame_Brute+0x5a6>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    16d4 <Decode_Trame_Brute+0x5b4>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    16d9 <Decode_Trame_Brute+0x5b9>
jmp    16de <Decode_Trame_Brute+0x5be>
jmp    16e3 <Decode_Trame_Brute+0x5c3>
jmp    16e8 <Decode_Trame_Brute+0x5c8>
jmp    16ed <Decode_Trame_Brute+0x5cd>
jmp    16f2 <Decode_Trame_Brute+0x5d2>
jmp    1172 <Decode_Trame_Brute+0x52>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Decode_Trame_Brute>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %r9,0x20(%rsp)
mov    %r8,(%rsp)
mov    %rcx,0x18(%rsp)
mov    %rdx,0x10(%rsp)
mov    %rsi,0x8(%rsp)
mov    %rdi,%rbp
xor    %r15d,%r15d
mov    0xa0(%rsp),%r12
mov    0x98(%rsp),%r13
lea    0xe9d(%rip),%rbx
jmp    1180 <Decode_Trame_Brute+0x60>
test   %cl,%cl
je     14f0 <Decode_Trame_Brute+0x3d0>
add    $0x1,%r14d
mov    %r14d,%r15d
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %r15d,%r14d
movslq %r15d,%rax
movzbl 0x0(%rbp,%rax,1),%ecx
lea    -0x41(%rcx),%edx
cmp    $0xf,%dl
ja     1165 <Decode_Trame_Brute+0x45>
movzbl %dl,%ecx
movslq (%rbx,%rcx,4),%rcx
add    %rbx,%rcx
jmp    *%rcx
lea    0x1(%rax),%r15
cmpb   $0x44,0x1(%rbp,%rax,1)
jne    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x10(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x1(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x2(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
lea    0x1(%rax),%r15
cmpb   $0x41,0x1(%rbp,%rax,1)
jne    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x20(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x4(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x8(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
movsbl 0x3(%rax,%rbp,1),%eax
cmp    $0x50,%eax
je     1402 <Decode_Trame_Brute+0x2e2>
cmp    $0x48,%eax
je     143c <Decode_Trame_Brute+0x31c>
cmp    $0x43,%eax
jne    116d <Decode_Trame_Brute+0x4d>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x60(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x5(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0xa(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
movsbl 0x1(%rbp,%rax,1),%ecx
cmp    $0x49,%ecx
je     1479 <Decode_Trame_Brute+0x359>
cmp    $0x4d,%ecx
je     14b3 <Decode_Trame_Brute+0x393>
add    $0x1,%rax
mov    %eax,%r15d
cmp    $0x53,%ecx
jne    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x7,%edx
mov    (%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x3(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x6(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
lea    0x1(%rax),%r15
cmpb   $0x4f,0x1(%rbp,%rax,1)
jne    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x9,%edx
mov    0x8(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x0(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
lea    0x1(%rax),%r15
cmpb   $0x50,0x1(%rbp,%rax,1)
jne    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x8,%edx
mov    0x18(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x2(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x4(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
movsbl 0x1(%rbp,%rax,1),%ecx
cmp    $0x41,%ecx
je     13c5 <Decode_Trame_Brute+0x2a5>
add    $0x1,%rax
mov    %eax,%r15d
cmp    $0x54,%ecx
jne    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x70(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x7(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0xe(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x88(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0xa(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x14(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x68(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x6(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0xc(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x6,%edx
mov    0x90(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0xb(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x16(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x6,%edx
mov    0x78(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x8(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x10(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
mov    %rbp,%rdi
mov    %r14d,%esi
mov    $0x5,%edx
mov    0x80(%rsp),%rcx
call   1030 <Extraire@plt>
mov    %eax,%r15d
movslq %eax,%rdx
movzbl 0x0(%rbp,%rdx,1),%eax
mov    %al,0x9(%r13)
mov    %rbp,%rdi
mov    %r14d,%esi
call   1040 <Statu_Checksum@plt>
mov    %ax,0x12(%r12)
jmp    1180 <Decode_Trame_Brute+0x60>
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @Decode_Trame_Brute(i8* %0, i8* %1, i8* %2, i8* %3, i8* %4, i8* %5, i8* %6, i8* %7, i8* %8, i8* %9, i8* %10, i8* %11, i8* %12, i8* %13, i16* %14) {
%16 = alloca i8*
%17 = alloca i8*
%18 = alloca i8*
%19 = alloca i8*
%20 = alloca i8*
%21 = alloca i8*
%22 = alloca i8*
%23 = alloca i8*
%24 = alloca i8*
%25 = alloca i8*
%26 = alloca i8*
%27 = alloca i8*
%28 = alloca i8*
%29 = alloca i8*
%30 = alloca i16*
%31 = alloca i32
%32 = alloca i32
store i8* %0, i8** %16
store i8* %1, i8** %17
store i8* %2, i8** %18
store i8* %3, i8** %19
store i8* %4, i8** %20
store i8* %5, i8** %21
store i8* %6, i8** %22
store i8* %7, i8** %23
store i8* %8, i8** %24
store i8* %9, i8** %25
store i8* %10, i8** %26
store i8* %11, i8** %27
store i8* %12, i8** %28
store i8* %13, i8** %29
store i16* %14, i16** %30
store i32 0, i32* %31
store i32 0, i32* %32
br label %33
33: ; preds = %395, %15
%34 = load i8*, i8** %16
%35 = load i32, i32* %31
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds i8, i8* %34, i64 %36
%38 = load i8, i8* %37
%39 = sext i8 %38 to i32
%40 = icmp ne i32 %39, 0
br i1 %40, label %41, label %396
41: ; preds = %33
%42 = load i32, i32* %31
store i32 %42, i32* %32
%43 = load i8*, i8** %16
%44 = load i32, i32* %31
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds i8, i8* %43, i64 %45
%47 = load i8, i8* %46
%48 = sext i8 %47 to i32
%49 = icmp eq i32 %48, 77
br i1 %49, label %50, label %77
50: ; preds = %41
%51 = load i8*, i8** %16
%52 = load i32, i32* %31
%53 = add nsw i32 %52, 1
%54 = sext i32 %53 to i64
%55 = getelementptr inbounds i8, i8* %51, i64 %54
%56 = load i8, i8* %55
%57 = sext i8 %56 to i32
%58 = icmp eq i32 %57, 79
br i1 %58, label %59, label %77
59: ; preds = %50
%60 = load i8*, i8** %16
%61 = load i32, i32* %31
%62 = load i8*, i8** %17
%63 = call i32 @Extraire(i8* %60, i32 %61, i32 9, i8* %62)
store i32 %63, i32* %31
%64 = load i8*, i8** %16
%65 = load i32, i32* %31
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds i8, i8* %64, i64 %66
%68 = load i8, i8* %67
%69 = load i8*, i8** %29
%70 = getelementptr inbounds i8, i8* %69, i64 0
store i8 %68, i8* %70
%71 = load i8*, i8** %16
%72 = load i32, i32* %32
%73 = load i32, i32* %31
%74 = call signext i16 @Statu_Checksum(i8* %71, i32 %72, i32 %73)
%75 = load i16*, i16** %30
%76 = getelementptr inbounds i16, i16* %75, i64 0
store i16 %74, i16* %76
br label %395
77: ; preds = %50, %41
%78 = load i8*, i8** %16
%79 = load i32, i32* %31
%80 = sext i32 %79 to i64
%81 = getelementptr inbounds i8, i8* %78, i64 %80
%82 = load i8, i8* %81
%83 = sext i8 %82 to i32
%84 = icmp eq i32 %83, 65
br i1 %84, label %85, label %112
85: ; preds = %77
%86 = load i8*, i8** %16
%87 = load i32, i32* %31
%88 = add nsw i32 %87, 1
%89 = sext i32 %88 to i64
%90 = getelementptr inbounds i8, i8* %86, i64 %89
%91 = load i8, i8* %90
%92 = sext i8 %91 to i32
%93 = icmp eq i32 %92, 68
br i1 %93, label %94, label %112
94: ; preds = %85
%95 = load i8*, i8** %16
%96 = load i32, i32* %31
%97 = load i8*, i8** %18
%98 = call i32 @Extraire(i8* %95, i32 %96, i32 5, i8* %97)
store i32 %98, i32* %31
%99 = load i8*, i8** %16
%100 = load i32, i32* %31
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds i8, i8* %99, i64 %101
%103 = load i8, i8* %102
%104 = load i8*, i8** %29
%105 = getelementptr inbounds i8, i8* %104, i64 1
store i8 %103, i8* %105
%106 = load i8*, i8** %16
%107 = load i32, i32* %32
%108 = load i32, i32* %31
%109 = call signext i16 @Statu_Checksum(i8* %106, i32 %107, i32 %108)
%110 = load i16*, i16** %30
%111 = getelementptr inbounds i16, i16* %110, i64 1
store i16 %109, i16* %111
br label %394
112: ; preds = %85, %77
%113 = load i8*, i8** %16
%114 = load i32, i32* %31
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds i8, i8* %113, i64 %115
%117 = load i8, i8* %116
%118 = sext i8 %117 to i32
%119 = icmp eq i32 %118, 79
br i1 %119, label %120, label %147
120: ; preds = %112
%121 = load i8*, i8** %16
%122 = load i32, i32* %31
%123 = add nsw i32 %122, 1
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds i8, i8* %121, i64 %124
%126 = load i8, i8* %125
%127 = sext i8 %126 to i32
%128 = icmp eq i32 %127, 80
br i1 %128, label %129, label %147
129: ; preds = %120
%130 = load i8*, i8** %16
%131 = load i32, i32* %31
%132 = load i8*, i8** %19
%133 = call i32 @Extraire(i8* %130, i32 %131, i32 8, i8* %132)
store i32 %133, i32* %31
%134 = load i8*, i8** %16
%135 = load i32, i32* %31
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds i8, i8* %134, i64 %136
%138 = load i8, i8* %137
%139 = load i8*, i8** %29
%140 = getelementptr inbounds i8, i8* %139, i64 2
store i8 %138, i8* %140
%141 = load i8*, i8** %16
%142 = load i32, i32* %32
%143 = load i32, i32* %31
%144 = call signext i16 @Statu_Checksum(i8* %141, i32 %142, i32 %143)
%145 = load i16*, i16** %30
%146 = getelementptr inbounds i16, i16* %145, i64 2
store i16 %144, i16* %146
br label %393
147: ; preds = %120, %112
%148 = load i8*, i8** %16
%149 = load i32, i32* %31
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds i8, i8* %148, i64 %150
%152 = load i8, i8* %151
%153 = sext i8 %152 to i32
%154 = icmp eq i32 %153, 66
br i1 %154, label %155, label %182
155: ; preds = %147
%156 = load i8*, i8** %16
%157 = load i32, i32* %31
%158 = add nsw i32 %157, 1
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds i8, i8* %156, i64 %159
%161 = load i8, i8* %160
%162 = sext i8 %161 to i32
%163 = icmp eq i32 %162, 65
br i1 %163, label %164, label %182
164: ; preds = %155
%165 = load i8*, i8** %16
%166 = load i32, i32* %31
%167 = load i8*, i8** %21
%168 = call i32 @Extraire(i8* %165, i32 %166, i32 5, i8* %167)
store i32 %168, i32* %31
%169 = load i8*, i8** %16
%170 = load i32, i32* %31
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds i8, i8* %169, i64 %171
%173 = load i8, i8* %172
%174 = load i8*, i8** %29
%175 = getelementptr inbounds i8, i8* %174, i64 4
store i8 %173, i8* %175
%176 = load i8*, i8** %16
%177 = load i32, i32* %32
%178 = load i32, i32* %31
%179 = call signext i16 @Statu_Checksum(i8* %176, i32 %177, i32 %178)
%180 = load i16*, i16** %30
%181 = getelementptr inbounds i16, i16* %180, i64 4
store i16 %179, i16* %181
br label %392
182: ; preds = %155, %147
%183 = load i8*, i8** %16
%184 = load i32, i32* %31
%185 = sext i32 %184 to i64
%186 = getelementptr inbounds i8, i8* %183, i64 %185
%187 = load i8, i8* %186
%188 = sext i8 %187 to i32
%189 = icmp eq i32 %188, 73
br i1 %189, label %190, label %256
190: ; preds = %182
%191 = load i8*, i8** %16
%192 = load i32, i32* %31
%193 = add nsw i32 %192, 1
%194 = sext i32 %193 to i64
%195 = getelementptr inbounds i8, i8* %191, i64 %194
%196 = load i8, i8* %195
%197 = sext i8 %196 to i32
switch i32 %197, label %252 [
i32 83, label %198
i32 73, label %216
i32 77, label %234
]
198: ; preds = %190
%199 = load i8*, i8** %16
%200 = load i32, i32* %31
%201 = load i8*, i8** %20
%202 = call i32 @Extraire(i8* %199, i32 %200, i32 7, i8* %201)
store i32 %202, i32* %31
%203 = load i8*, i8** %16
%204 = load i32, i32* %31
%205 = sext i32 %204 to i64
%206 = getelementptr inbounds i8, i8* %203, i64 %205
%207 = load i8, i8* %206
%208 = load i8*, i8** %29
%209 = getelementptr inbounds i8, i8* %208, i64 3
store i8 %207, i8* %209
%210 = load i8*, i8** %16
%211 = load i32, i32* %32
%212 = load i32, i32* %31
%213 = call signext i16 @Statu_Checksum(i8* %210, i32 %211, i32 %212)
%214 = load i16*, i16** %30
%215 = getelementptr inbounds i16, i16* %214, i64 3
store i16 %213, i16* %215
br label %255
216: ; preds = %190
%217 = load i8*, i8** %16
%218 = load i32, i32* %31
%219 = load i8*, i8** %25
%220 = call i32 @Extraire(i8* %217, i32 %218, i32 6, i8* %219)
store i32 %220, i32* %31
%221 = load i8*, i8** %16
%222 = load i32, i32* %31
%223 = sext i32 %222 to i64
%224 = getelementptr inbounds i8, i8* %221, i64 %223
%225 = load i8, i8* %224
%226 = load i8*, i8** %29
%227 = getelementptr inbounds i8, i8* %226, i64 8
store i8 %225, i8* %227
%228 = load i8*, i8** %16
%229 = load i32, i32* %32
%230 = load i32, i32* %31
%231 = call signext i16 @Statu_Checksum(i8* %228, i32 %229, i32 %230)
%232 = load i16*, i16** %30
%233 = getelementptr inbounds i16, i16* %232, i64 8
store i16 %231, i16* %233
br label %255
234: ; preds = %190
%235 = load i8*, i8** %16
%236 = load i32, i32* %31
%237 = load i8*, i8** %26
%238 = call i32 @Extraire(i8* %235, i32 %236, i32 5, i8* %237)
store i32 %238, i32* %31
%239 = load i8*, i8** %16
%240 = load i32, i32* %31
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds i8, i8* %239, i64 %241
%243 = load i8, i8* %242
%244 = load i8*, i8** %29
%245 = getelementptr inbounds i8, i8* %244, i64 9
store i8 %243, i8* %245
%246 = load i8*, i8** %16
%247 = load i32, i32* %32
%248 = load i32, i32* %31
%249 = call signext i16 @Statu_Checksum(i8* %246, i32 %247, i32 %248)
%250 = load i16*, i16** %30
%251 = getelementptr inbounds i16, i16* %250, i64 9
store i16 %249, i16* %251
br label %255
252: ; preds = %190
%253 = load i32, i32* %31
%254 = add nsw i32 %253, 1
store i32 %254, i32* %31
br label %255
255: ; preds = %252, %234, %216, %198
br label %391
256: ; preds = %182
%257 = load i8*, i8** %16
%258 = load i32, i32* %31
%259 = sext i32 %258 to i64
%260 = getelementptr inbounds i8, i8* %257, i64 %259
%261 = load i8, i8* %260
%262 = sext i8 %261 to i32
%263 = icmp eq i32 %262, 72
br i1 %263, label %264, label %330
264: ; preds = %256
%265 = load i8*, i8** %16
%266 = load i32, i32* %31
%267 = add nsw i32 %266, 3
%268 = sext i32 %267 to i64
%269 = getelementptr inbounds i8, i8* %265, i64 %268
%270 = load i8, i8* %269
%271 = sext i8 %270 to i32
switch i32 %271, label %326 [
i32 67, label %272
i32 80, label %290
i32 72, label %308
]
272: ; preds = %264
%273 = load i8*, i8** %16
%274 = load i32, i32* %31
%275 = load i8*, i8** %22
%276 = call i32 @Extraire(i8* %273, i32 %274, i32 5, i8* %275)
store i32 %276, i32* %31
%277 = load i8*, i8** %16
%278 = load i32, i32* %31
%279 = sext i32 %278 to i64
%280 = getelementptr inbounds i8, i8* %277, i64 %279
%281 = load i8, i8* %280
%282 = load i8*, i8** %29
%283 = getelementptr inbounds i8, i8* %282, i64 5
store i8 %281, i8* %283
%284 = load i8*, i8** %16
%285 = load i32, i32* %32
%286 = load i32, i32* %31
%287 = call signext i16 @Statu_Checksum(i8* %284, i32 %285, i32 %286)
%288 = load i16*, i16** %30
%289 = getelementptr inbounds i16, i16* %288, i64 5
store i16 %287, i16* %289
br label %329
290: ; preds = %264
%291 = load i8*, i8** %16
%292 = load i32, i32* %31
%293 = load i8*, i8** %23
%294 = call i32 @Extraire(i8* %291, i32 %292, i32 5, i8* %293)
store i32 %294, i32* %31
%295 = load i8*, i8** %16
%296 = load i32, i32* %31
%297 = sext i32 %296 to i64
%298 = getelementptr inbounds i8, i8* %295, i64 %297
%299 = load i8, i8* %298
%300 = load i8*, i8** %29
%301 = getelementptr inbounds i8, i8* %300, i64 6
store i8 %299, i8* %301
%302 = load i8*, i8** %16
%303 = load i32, i32* %32
%304 = load i32, i32* %31
%305 = call signext i16 @Statu_Checksum(i8* %302, i32 %303, i32 %304)
%306 = load i16*, i16** %30
%307 = getelementptr inbounds i16, i16* %306, i64 6
store i16 %305, i16* %307
br label %329
308: ; preds = %264
%309 = load i8*, i8** %16
%310 = load i32, i32* %31
%311 = load i8*, i8** %28
%312 = call i32 @Extraire(i8* %309, i32 %310, i32 6, i8* %311)
store i32 %312, i32* %31
%313 = load i8*, i8** %16
%314 = load i32, i32* %31
%315 = sext i32 %314 to i64
%316 = getelementptr inbounds i8, i8* %313, i64 %315
%317 = load i8, i8* %316
%318 = load i8*, i8** %29
%319 = getelementptr inbounds i8, i8* %318, i64 11
store i8 %317, i8* %319
%320 = load i8*, i8** %16
%321 = load i32, i32* %32
%322 = load i32, i32* %31
%323 = call signext i16 @Statu_Checksum(i8* %320, i32 %321, i32 %322)
%324 = load i16*, i16** %30
%325 = getelementptr inbounds i16, i16* %324, i64 11
store i16 %323, i16* %325
br label %329
326: ; preds = %264
%327 = load i32, i32* %31
%328 = add nsw i32 %327, 1
store i32 %328, i32* %31
br label %329
329: ; preds = %326, %308, %290, %272
br label %390
330: ; preds = %256
%331 = load i8*, i8** %16
%332 = load i32, i32* %31
%333 = sext i32 %332 to i64
%334 = getelementptr inbounds i8, i8* %331, i64 %333
%335 = load i8, i8* %334
%336 = sext i8 %335 to i32
%337 = icmp eq i32 %336, 80
br i1 %337, label %338, label %386
338: ; preds = %330
%339 = load i8*, i8** %16
%340 = load i32, i32* %31
%341 = add nsw i32 %340, 1
%342 = sext i32 %341 to i64
%343 = getelementptr inbounds i8, i8* %339, i64 %342
%344 = load i8, i8* %343
%345 = sext i8 %344 to i32
switch i32 %345, label %382 [
i32 84, label %346
i32 65, label %364
]
346: ; preds = %338
%347 = load i8*, i8** %16
%348 = load i32, i32* %31
%349 = load i8*, i8** %24
%350 = call i32 @Extraire(i8* %347, i32 %348, i32 5, i8* %349)
store i32 %350, i32* %31
%351 = load i8*, i8** %16
%352 = load i32, i32* %31
%353 = sext i32 %352 to i64
%354 = getelementptr inbounds i8, i8* %351, i64 %353
%355 = load i8, i8* %354
%356 = load i8*, i8** %29
%357 = getelementptr inbounds i8, i8* %356, i64 7
store i8 %355, i8* %357
%358 = load i8*, i8** %16
%359 = load i32, i32* %32
%360 = load i32, i32* %31
%361 = call signext i16 @Statu_Checksum(i8* %358, i32 %359, i32 %360)
%362 = load i16*, i16** %30
%363 = getelementptr inbounds i16, i16* %362, i64 7
store i16 %361, i16* %363
br label %385
364: ; preds = %338
%365 = load i8*, i8** %16
%366 = load i32, i32* %31
%367 = load i8*, i8** %27
%368 = call i32 @Extraire(i8* %365, i32 %366, i32 5, i8* %367)
store i32 %368, i32* %31
%369 = load i8*, i8** %16
%370 = load i32, i32* %31
%371 = sext i32 %370 to i64
%372 = getelementptr inbounds i8, i8* %369, i64 %371
%373 = load i8, i8* %372
%374 = load i8*, i8** %29
%375 = getelementptr inbounds i8, i8* %374, i64 10
store i8 %373, i8* %375
%376 = load i8*, i8** %16
%377 = load i32, i32* %32
%378 = load i32, i32* %31
%379 = call signext i16 @Statu_Checksum(i8* %376, i32 %377, i32 %378)
%380 = load i16*, i16** %30
%381 = getelementptr inbounds i16, i16* %380, i64 10
store i16 %379, i16* %381
br label %385
382: ; preds = %338
%383 = load i32, i32* %31
%384 = add nsw i32 %383, 1
store i32 %384, i32* %31
br label %385
385: ; preds = %382, %364, %346
br label %389
386: ; preds = %330
%387 = load i32, i32* %31
%388 = add nsw i32 %387, 1
store i32 %388, i32* %31
br label %389
389: ; preds = %386, %385
br label %390
390: ; preds = %389, %329
br label %391
391: ; preds = %390, %255
br label %392
392: ; preds = %391, %164
br label %393
393: ; preds = %392, %129
br label %394
394: ; preds = %393, %94
br label %395
395: ; preds = %394, %59
br label %33
396: ; preds = %33
ret void
}

LLVM IR (-O2):
define void @Decode_Trame_Brute(i8* %0, i8* %1, i8* %2, i8* %3, i8* %4, i8* %5, i8* %6, i8* %7, i8* %8, i8* %9, i8* %10, i8* %11, i8* %12, i8* nocapture writeonly %13, i16* nocapture writeonly %14) {
%16 = getelementptr inbounds i8, i8* %13, i64 10
%17 = getelementptr inbounds i16, i16* %14, i64 10
%18 = getelementptr inbounds i8, i8* %13, i64 7
%19 = getelementptr inbounds i16, i16* %14, i64 7
%20 = getelementptr inbounds i8, i8* %13, i64 11
%21 = getelementptr inbounds i16, i16* %14, i64 11
%22 = getelementptr inbounds i8, i8* %13, i64 6
%23 = getelementptr inbounds i16, i16* %14, i64 6
%24 = getelementptr inbounds i8, i8* %13, i64 5
%25 = getelementptr inbounds i16, i16* %14, i64 5
%26 = getelementptr inbounds i8, i8* %13, i64 9
%27 = getelementptr inbounds i16, i16* %14, i64 9
%28 = getelementptr inbounds i8, i8* %13, i64 8
%29 = getelementptr inbounds i16, i16* %14, i64 8
%30 = getelementptr inbounds i8, i8* %13, i64 3
%31 = getelementptr inbounds i16, i16* %14, i64 3
%32 = getelementptr inbounds i8, i8* %13, i64 4
%33 = getelementptr inbounds i16, i16* %14, i64 4
%34 = getelementptr inbounds i8, i8* %13, i64 2
%35 = getelementptr inbounds i16, i16* %14, i64 2
%36 = getelementptr inbounds i8, i8* %13, i64 1
%37 = getelementptr inbounds i16, i16* %14, i64 1
br label %38
38: ; preds = %87, %15
%39 = phi i32 [ 0, %15 ], [ %88, %87 ]
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds i8, i8* %0, i64 %40
%42 = load i8, i8* %41
switch i8 %42, label %43 [
i8 0, label %163
i8 77, label %45
i8 65, label %57
i8 79, label %69
i8 66, label %81
i8 73, label %95
i8 72, label %119
i8 80, label %145
]
43: ; preds = %38
%44 = add nsw i32 %39, 1
br label %87
45: ; preds = %38
%46 = add nsw i32 %39, 1
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds i8, i8* %0, i64 %47
%49 = load i8, i8* %48
%50 = icmp eq i8 %49, 79
br i1 %50, label %51, label %87
51: ; preds = %45
%52 = tail call i32 @Extraire(i8* %0, i32 %39, i32 9, i8* %1)
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds i8, i8* %0, i64 %53
%55 = load i8, i8* %54
store i8 %55, i8* %13
%56 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %52)
store i16 %56, i16* %14
br label %87
57: ; preds = %38
%58 = add nsw i32 %39, 1
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds i8, i8* %0, i64 %59
%61 = load i8, i8* %60
%62 = icmp eq i8 %61, 68
br i1 %62, label %63, label %87
63: ; preds = %57
%64 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %2)
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds i8, i8* %0, i64 %65
%67 = load i8, i8* %66
store i8 %67, i8* %36
%68 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %64)
store i16 %68, i16* %37
br label %87
69: ; preds = %38
%70 = add nsw i32 %39, 1
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds i8, i8* %0, i64 %71
%73 = load i8, i8* %72
%74 = icmp eq i8 %73, 80
br i1 %74, label %75, label %87
75: ; preds = %69
%76 = tail call i32 @Extraire(i8* %0, i32 %39, i32 8, i8* %3)
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds i8, i8* %0, i64 %77
%79 = load i8, i8* %78
store i8 %79, i8* %34
%80 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %76)
store i16 %80, i16* %35
br label %87
81: ; preds = %38
%82 = add nsw i32 %39, 1
%83 = sext i32 %82 to i64
%84 = getelementptr inbounds i8, i8* %0, i64 %83
%85 = load i8, i8* %84
%86 = icmp eq i8 %85, 65
br i1 %86, label %89, label %87
87: ; preds = %81, %69, %57, %45, %43, %145, %95, %63, %89, %143, %137, %131, %125, %151, %157, %101, %107, %113, %75, %51
%88 = phi i32 [ %52, %51 ], [ %64, %63 ], [ %76, %75 ], [ %90, %89 ], [ %114, %113 ], [ %108, %107 ], [ %102, %101 ], [ %144, %143 ], [ %138, %137 ], [ %132, %131 ], [ %126, %125 ], [ %158, %157 ], [ %152, %151 ], [ %96, %95 ], [ %146, %145 ], [ %44, %43 ], [ %46, %45 ], [ %58, %57 ], [ %70, %69 ], [ %82, %81 ]
br label %38
89: ; preds = %81
%90 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %5)
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds i8, i8* %0, i64 %91
%93 = load i8, i8* %92
store i8 %93, i8* %32
%94 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %90)
store i16 %94, i16* %33
br label %87
95: ; preds = %38
%96 = add nsw i32 %39, 1
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds i8, i8* %0, i64 %97
%99 = load i8, i8* %98
%100 = sext i8 %99 to i32
switch i32 %100, label %87 [
i32 83, label %101
i32 73, label %107
i32 77, label %113
]
101: ; preds = %95
%102 = tail call i32 @Extraire(i8* %0, i32 %39, i32 7, i8* %4)
%103 = sext i32 %102 to i64
%104 = getelementptr inbounds i8, i8* %0, i64 %103
%105 = load i8, i8* %104
store i8 %105, i8* %30
%106 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %102)
store i16 %106, i16* %31
br label %87
107: ; preds = %95
%108 = tail call i32 @Extraire(i8* %0, i32 %39, i32 6, i8* %9)
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds i8, i8* %0, i64 %109
%111 = load i8, i8* %110
store i8 %111, i8* %28
%112 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %108)
store i16 %112, i16* %29
br label %87
113: ; preds = %95
%114 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %10)
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds i8, i8* %0, i64 %115
%117 = load i8, i8* %116
store i8 %117, i8* %26
%118 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %114)
store i16 %118, i16* %27
br label %87
119: ; preds = %38
%120 = add nsw i32 %39, 3
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds i8, i8* %0, i64 %121
%123 = load i8, i8* %122
%124 = sext i8 %123 to i32
switch i32 %124, label %143 [
i32 67, label %125
i32 80, label %131
i32 72, label %137
]
125: ; preds = %119
%126 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %6)
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds i8, i8* %0, i64 %127
%129 = load i8, i8* %128
store i8 %129, i8* %24
%130 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %126)
store i16 %130, i16* %25
br label %87
131: ; preds = %119
%132 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %7)
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds i8, i8* %0, i64 %133
%135 = load i8, i8* %134
store i8 %135, i8* %22
%136 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %132)
store i16 %136, i16* %23
br label %87
137: ; preds = %119
%138 = tail call i32 @Extraire(i8* %0, i32 %39, i32 6, i8* %12)
%139 = sext i32 %138 to i64
%140 = getelementptr inbounds i8, i8* %0, i64 %139
%141 = load i8, i8* %140
store i8 %141, i8* %20
%142 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %138)
store i16 %142, i16* %21
br label %87
143: ; preds = %119
%144 = add nsw i32 %39, 1
br label %87
145: ; preds = %38
%146 = add nsw i32 %39, 1
%147 = sext i32 %146 to i64
%148 = getelementptr inbounds i8, i8* %0, i64 %147
%149 = load i8, i8* %148
%150 = sext i8 %149 to i32
switch i32 %150, label %87 [
i32 84, label %151
i32 65, label %157
]
151: ; preds = %145
%152 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %8)
%153 = sext i32 %152 to i64
%154 = getelementptr inbounds i8, i8* %0, i64 %153
%155 = load i8, i8* %154
store i8 %155, i8* %18
%156 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %152)
store i16 %156, i16* %19
br label %87
157: ; preds = %145
%158 = tail call i32 @Extraire(i8* %0, i32 %39, i32 5, i8* %11)
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds i8, i8* %0, i64 %159
%161 = load i8, i8* %160
store i8 %161, i8* %16
%162 = tail call signext i16 @Statu_Checksum(i8* %0, i32 %39, i32 %158)
store i16 %162, i16* %17
br label %87
163: ; preds = %38
ret void
}