
/* WARNING: Unknown calling convention */

int ecc_test(void)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  ecc_point *p;
  ecc_point *p_00;
  undefined8 *puVar4;
  long in_FS_OFFSET;
  int primality;
  void *modulus;
  void *order;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar3 = ltc_init_multi(&modulus,&order,0);
  if (iVar3 == 0) {
    p = ltc_ecc_new_point();
    p_00 = ltc_ecc_new_point();
    if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {
      ltc_deinit_multi(modulus,order,0);
      ltc_ecc_del_point(p);
      ltc_ecc_del_point(p_00);
      iVar3 = 0xd;
    }
    else {
      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;
      if (iVar3 != 0) {
        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);
        do {
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);
          if (iVar3 != 0) goto LAB_00180226;
          if (primality == 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);
          if (iVar3 != 0) goto LAB_00180226;
          if (primality == 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);
          puVar2 = PTR_ltc_mp_001dfed8;
          if (iVar3 != 0) goto LAB_00180226;
          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);
          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);
          if (iVar3 != 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);
          if (iVar3 != 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          piVar1 = (int *)(puVar4 + 5);
          puVar4 = puVar4 + 7;
        } while (*piVar1 != 0);
        iVar3 = 0;
      }
LAB_00180226:
      ltc_ecc_del_point(p_00);
      ltc_ecc_del_point(p);
      ltc_deinit_multi(order,modulus,0);
    }
  }
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int ecc_test(void)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  long in_FS_OFFSET;
  int local_54;
  undefined8 local_50;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar3 = ltc_init_multi(&local_50,&local_48,0);
  if (iVar3 == 0) {
    puVar4 = (undefined8 *)ltc_ecc_new_point();
    puVar5 = (undefined8 *)ltc_ecc_new_point();
    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {
      ltc_deinit_multi(local_50,local_48,0);
      ltc_ecc_del_point(puVar4);
      ltc_ecc_del_point(puVar5);
      iVar3 = 0xd;
    }
    else {
      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;
      if (iVar3 != 0) {
        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);
        do {
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);
          if (iVar3 != 0) goto LAB_00180226;
          if (local_54 == 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);
          if (iVar3 != 0) goto LAB_00180226;
          if (local_54 == 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);
          puVar2 = PTR_ltc_mp_001dfed8;
          if (iVar3 != 0) goto LAB_00180226;
          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);
          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);
          if (iVar3 != 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);
          if (iVar3 != 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          piVar1 = (int *)(puVar6 + 5);
          puVar6 = puVar6 + 7;
        } while (*piVar1 != 0);
        iVar3 = 0;
      }
LAB_00180226:
      ltc_ecc_del_point(puVar5);
      ltc_ecc_del_point(puVar4);
      ltc_deinit_multi(local_48,local_50,0);
    }
  }
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
LEA RSI,[RSP + 0x10]
LEA RDI,[RSP + 0x8]
MOV EDX,0x0
CALL 0x001135b0
MOV EBX,EAX
TEST EAX,EAX
JZ 0x00180012
MOV EAX,EBX
MOV RCX,qword ptr [RSP + 0x18]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x00180269
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CALL 0x00114dc0
MOV RBP,RAX
CALL 0x00114dc0
MOV R13,RAX
TEST RBP,RBP
JZ 0x001801ee
TEST RAX,RAX
JZ 0x001801ee
MOV RAX,qword ptr [0x001dfed0]
MOV EBX,dword ptr [RAX]
TEST EBX,EBX
JZ 0x00180226
MOV RDX,qword ptr [0x001dfed0]
LEA R12,[RDX + 0x10]
LEA R15,[RSP + 0x4]
MOV EDX,0x10
MOV RSI,qword ptr [R12]
MOV RDI,qword ptr [RSP + 0x8]
MOV RBX,qword ptr [0x001dfed8]
CALL qword ptr [RBX + 0x80]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
MOV RSI,qword ptr [R12 + 0x10]
MOV EDX,0x10
MOV RDI,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [0x001dfed8]
CALL qword ptr [RAX + 0x80]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
MOV RDX,R15
MOV ESI,0x8
MOV RDI,qword ptr [RSP + 0x8]
MOV RBX,qword ptr [0x001dfed8]
CALL qword ptr [RBX + 0x148]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
CMP dword ptr [RSP + 0x4],0x0
JZ 0x00180221
MOV RDX,R15
MOV ESI,0x8
MOV RDI,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [0x001dfed8]
CALL qword ptr [RAX + 0x148]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
CMP dword ptr [RSP + 0x4],0x0
JZ 0x00180254
MOV RSI,qword ptr [R12 + 0x18]
MOV EDX,0x10
MOV RDI,qword ptr [RBP]
MOV RBX,qword ptr [0x001dfed8]
CALL qword ptr [RBX + 0x80]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
MOV RSI,qword ptr [R12 + 0x20]
MOV RDI,qword ptr [RBP + 0x8]
MOV EDX,0x10
MOV R14,qword ptr [0x001dfed8]
CALL qword ptr [R14 + 0x80]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
MOV RDI,qword ptr [RBP + 0x10]
MOV RBX,qword ptr [0x001dfed8]
MOV ESI,0x1
CALL qword ptr [RBX + 0x38]
MOV RDI,qword ptr [RSP + 0x10]
MOV RDX,RDI
MOV ESI,0x1
CALL qword ptr [RBX + 0xb0]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
MOV R8D,0x1
MOV RCX,qword ptr [RSP + 0x8]
MOV RDX,R13
MOV RSI,RBP
MOV RDI,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [0x001dfed8]
CALL qword ptr [RAX + 0x150]
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x00180226
MOV RSI,qword ptr [R13]
MOV RDI,qword ptr [RBP]
MOV R14,qword ptr [0x001dfed8]
CALL qword ptr [R14 + 0x58]
TEST EAX,EAX
JNZ 0x0018025b
MOV RSI,qword ptr [R13 + 0x8]
MOV RDI,qword ptr [RBP + 0x8]
MOV RBX,qword ptr [0x001dfed8]
CALL qword ptr [RBX + 0x58]
TEST EAX,EAX
JNZ 0x00180262
ADD R12,0x38
MOV EBX,dword ptr [R12 + -0x10]
TEST EBX,EBX
JNZ 0x00180055
JMP 0x00180226
MOV EDX,0x0
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,qword ptr [RSP + 0x8]
MOV EAX,0x0
CALL 0x00113330
MOV RDI,RBP
CALL 0x00113060
MOV RDI,R13
CALL 0x00113060
MOV EBX,0xd
JMP 0x0017ffed
MOV EBX,0x5
MOV RDI,R13
CALL 0x00113060
MOV RDI,RBP
CALL 0x00113060
MOV EDX,0x0
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x10]
MOV EAX,0x0
CALL 0x00113330
JMP 0x0017ffed
MOV EBX,0x5
JMP 0x00180226
MOV EBX,0x5
JMP 0x00180226
MOV EBX,0x5
JMP 0x00180226
CALL 0x00113870
(translation_unit "int ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "ecc_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = ltc_init_multi(&local_50,&local_48,0);" (assignment_expression "iVar3 = ltc_init_multi(&local_50,&local_48,0)" identifier = (call_expression "ltc_init_multi(&local_50,&local_48,0)" identifier (argument_list "(&local_50,&local_48,0)" ( (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_48" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }" { (expression_statement "puVar4 = (undefined8 *)ltc_ecc_new_point();" (assignment_expression "puVar4 = (undefined8 *)ltc_ecc_new_point()" identifier = (cast_expression "(undefined8 *)ltc_ecc_new_point()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ltc_ecc_new_point()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar5 = (undefined8 *)ltc_ecc_new_point();" (assignment_expression "puVar5 = (undefined8 *)ltc_ecc_new_point()" identifier = (cast_expression "(undefined8 *)ltc_ecc_new_point()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ltc_ecc_new_point()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" if (parenthesized_expression "((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0))" ( (binary_expression "(puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)" (parenthesized_expression "(puVar4 == (undefined8 *)0x0)" ( (binary_expression "puVar4 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }" { (expression_statement "ltc_deinit_multi(local_50,local_48,0);" (call_expression "ltc_deinit_multi(local_50,local_48,0)" identifier (argument_list "(local_50,local_48,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "ltc_ecc_del_point(puVar4);" (call_expression "ltc_ecc_del_point(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "ltc_ecc_del_point(puVar5);" (call_expression "ltc_ecc_del_point(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "iVar3 = 0xd;" (assignment_expression "iVar3 = 0xd" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" else (compound_statement "{\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" { (expression_statement "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;" (assignment_expression "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0" identifier = (pointer_expression "*(int *)PTR_ltc_ecc_sets_001dfed0" * (cast_expression "(int *)PTR_ltc_ecc_sets_001dfed0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" { (expression_statement "puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);" (assignment_expression "puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" identifier = (cast_expression "(undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_ltc_ecc_sets_001dfed0 + 0x10)" ( (binary_expression "PTR_ltc_ecc_sets_001dfed0 + 0x10" identifier + number_literal) )))) ;) (do_statement "do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);" do (compound_statement "{\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        }" { (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(local_50,*puVar6,0x10)" ( identifier , (pointer_expression "*puVar6" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(local_48,puVar6[2],0x10)" ( identifier , (subscript_expression "puVar6[2]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" identifier + number_literal) ))))) )) (argument_list "(local_50,8,&local_54)" ( identifier , number_literal , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (if_statement "if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(local_54 == 0)" ( (binary_expression "local_54 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" identifier + number_literal) ))))) )) (argument_list "(local_48,8,&local_54)" ( identifier , number_literal , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (if_statement "if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(local_54 == 0)" ( (binary_expression "local_54 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(*puVar4,puVar6[3],0x10)" ( (pointer_expression "*puVar4" * identifier) , (subscript_expression "puVar6[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(puVar4[1],puVar6[4],0x10)" ( (subscript_expression "puVar4[1]" identifier [ number_literal ]) , (subscript_expression "puVar6[4]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "puVar2 = PTR_ltc_mp_001dfed8;" (assignment_expression "puVar2 = PTR_ltc_mp_001dfed8" identifier = identifier) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);" (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x38)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x38)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x38)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x38" identifier + number_literal) ))))) )) (argument_list "(puVar4[2],1)" ( (subscript_expression "puVar4[2]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48)" identifier = (call_expression "(**(code **)(puVar2 + 0xb0))(local_48,1,local_48)" (parenthesized_expression "(**(code **)(puVar2 + 0xb0))" ( (pointer_expression "**(code **)(puVar2 + 0xb0)" * (pointer_expression "*(code **)(puVar2 + 0xb0)" * (cast_expression "(code **)(puVar2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0xb0)" ( (binary_expression "puVar2 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(local_48,1,local_48)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x150)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x150)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x150)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x150" identifier + number_literal) ))))) )) (argument_list "(local_48,puVar4,puVar5,local_50,1)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" identifier + number_literal) ))))) )) (argument_list "(*puVar4,*puVar5)" ( (pointer_expression "*puVar4" * identifier) , (pointer_expression "*puVar5" * identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1])" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1])" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" identifier + number_literal) ))))) )) (argument_list "(puVar4[1],puVar5[1])" ( (subscript_expression "puVar4[1]" identifier [ number_literal ]) , (subscript_expression "puVar5[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "piVar1 = (int *)(puVar6 + 5);" (assignment_expression "piVar1 = (int *)(puVar6 + 5)" identifier = (cast_expression "(int *)(puVar6 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) )))) ;) (expression_statement "puVar6 = puVar6 + 7;" (assignment_expression "puVar6 = puVar6 + 7" identifier = (binary_expression "puVar6 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_00180226:\n      ltc_ecc_del_point(puVar5);" statement_identifier : (expression_statement "ltc_ecc_del_point(puVar5);" (call_expression "ltc_ecc_del_point(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;)) (expression_statement "ltc_ecc_del_point(puVar4);" (call_expression "ltc_ecc_del_point(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "ltc_deinit_multi(local_48,local_50,0);" (call_expression "ltc_deinit_multi(local_48,local_50,0)" identifier (argument_list "(local_48,local_50,0)" ( identifier , identifier , number_literal ))) ;) }))) })) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  ecc_point *p;\n  ecc_point *p_00;\n  undefined8 *puVar4;\n  long in_FS_OFFSET;\n  int primality;\n  void *modulus;\n  void *order;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&modulus,&order,0);\n  if (iVar3 == 0) {\n    p = ltc_ecc_new_point();\n    p_00 = ltc_ecc_new_point();\n    if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "int ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  ecc_point *p;\n  ecc_point *p_00;\n  undefined8 *puVar4;\n  long in_FS_OFFSET;\n  int primality;\n  void *modulus;\n  void *order;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&modulus,&order,0);\n  if (iVar3 == 0) {\n    p = ltc_ecc_new_point();\n    p_00 = ltc_ecc_new_point();\n    if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "ecc_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  ecc_point *p;\n  ecc_point *p_00;\n  undefined8 *puVar4;\n  long in_FS_OFFSET;\n  int primality;\n  void *modulus;\n  void *order;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&modulus,&order,0);\n  if (iVar3 == 0) {\n    p = ltc_ecc_new_point();\n    p_00 = ltc_ecc_new_point();\n    if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ecc_point *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "ecc_point *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int primality;" primitive_type identifier ;) (declaration "void *modulus;" primitive_type (pointer_declarator "*modulus" * identifier) ;) (declaration "void *order;" primitive_type (pointer_declarator "*order" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = ltc_init_multi(&modulus,&order,0);" (assignment_expression "iVar3 = ltc_init_multi(&modulus,&order,0)" identifier = (call_expression "ltc_init_multi(&modulus,&order,0)" identifier (argument_list "(&modulus,&order,0)" ( (pointer_expression "&modulus" & identifier) , (pointer_expression "&order" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n    p = ltc_ecc_new_point();\n    p_00 = ltc_ecc_new_point();\n    if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    p = ltc_ecc_new_point();\n    p_00 = ltc_ecc_new_point();\n    if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }\n  }" { (expression_statement "p = ltc_ecc_new_point();" (assignment_expression "p = ltc_ecc_new_point()" identifier = (call_expression "ltc_ecc_new_point()" identifier (argument_list "()" ( )))) ;) (expression_statement "p_00 = ltc_ecc_new_point();" (assignment_expression "p_00 = ltc_ecc_new_point()" identifier = (call_expression "ltc_ecc_new_point()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)) {\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }" if (parenthesized_expression "((p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0))" ( (binary_expression "(p == (ecc_point *)0x0) || (p_00 == (ecc_point *)0x0)" (parenthesized_expression "(p == (ecc_point *)0x0)" ( (binary_expression "p == (ecc_point *)0x0" identifier == (cast_expression "(ecc_point *)0x0" ( (type_descriptor "ecc_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_00 == (ecc_point *)0x0)" ( (binary_expression "p_00 == (ecc_point *)0x0" identifier == (cast_expression "(ecc_point *)0x0" ( (type_descriptor "ecc_point *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      ltc_deinit_multi(modulus,order,0);\n      ltc_ecc_del_point(p);\n      ltc_ecc_del_point(p_00);\n      iVar3 = 0xd;\n    }" { (expression_statement "ltc_deinit_multi(modulus,order,0);" (call_expression "ltc_deinit_multi(modulus,order,0)" identifier (argument_list "(modulus,order,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "ltc_ecc_del_point(p);" (call_expression "ltc_ecc_del_point(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "ltc_ecc_del_point(p_00);" (call_expression "ltc_ecc_del_point(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) (expression_statement "iVar3 = 0xd;" (assignment_expression "iVar3 = 0xd" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }" else (compound_statement "{\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(p_00);\n      ltc_ecc_del_point(p);\n      ltc_deinit_multi(order,modulus,0);\n    }" { (expression_statement "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;" (assignment_expression "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0" identifier = (pointer_expression "*(int *)PTR_ltc_ecc_sets_001dfed0" * (cast_expression "(int *)PTR_ltc_ecc_sets_001dfed0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar3 != 0) {\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" { (expression_statement "puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);" (assignment_expression "puVar4 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" identifier = (cast_expression "(undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_ltc_ecc_sets_001dfed0 + 0x10)" ( (binary_expression "PTR_ltc_ecc_sets_001dfed0 + 0x10" identifier + number_literal) )))) ;) (do_statement "do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        } while (*piVar1 != 0);" do (compound_statement "{\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar4 + 5);\n          puVar4 = puVar4 + 7;\n        }" { (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(modulus,*puVar4,0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(modulus,*puVar4,0x10)" ( identifier , (pointer_expression "*puVar4" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(order,puVar4[2],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(order,puVar4[2],0x10)" ( identifier , (subscript_expression "puVar4[2]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(modulus,8,&primality)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" identifier + number_literal) ))))) )) (argument_list "(modulus,8,&primality)" ( identifier , number_literal , (pointer_expression "&primality" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (if_statement "if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(primality == 0)" ( (binary_expression "primality == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(order,8,&primality)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" identifier + number_literal) ))))) )) (argument_list "(order,8,&primality)" ( identifier , number_literal , (pointer_expression "&primality" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (if_statement "if (primality == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(primality == 0)" ( (binary_expression "primality == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->x,puVar4[3],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(p->x,puVar4[3],0x10)" ( (field_expression "p->x" identifier -> field_identifier) , (subscript_expression "puVar4[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(p->y,puVar4[4],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(p->y,puVar4[4],0x10)" ( (field_expression "p->y" identifier -> field_identifier) , (subscript_expression "puVar4[4]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "puVar2 = PTR_ltc_mp_001dfed8;" (assignment_expression "puVar2 = PTR_ltc_mp_001dfed8" identifier = identifier) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1);" (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(p->z,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x38)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x38)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x38)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x38" identifier + number_literal) ))))) )) (argument_list "(p->z,1)" ( (field_expression "p->z" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0xb0))(order,1,order)" identifier = (call_expression "(**(code **)(puVar2 + 0xb0))(order,1,order)" (parenthesized_expression "(**(code **)(puVar2 + 0xb0))" ( (pointer_expression "**(code **)(puVar2 + 0xb0)" * (pointer_expression "*(code **)(puVar2 + 0xb0)" * (cast_expression "(code **)(puVar2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0xb0)" ( (binary_expression "puVar2 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(order,1,order)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(order,p,p_00,modulus,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x150)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x150)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x150)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x150" identifier + number_literal) ))))) )) (argument_list "(order,p,p_00,modulus,1)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->x,p_00->x)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" identifier + number_literal) ))))) )) (argument_list "(p->x,p_00->x)" ( (field_expression "p->x" identifier -> field_identifier) , (field_expression "p_00->x" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(p->y,p_00->y)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" identifier + number_literal) ))))) )) (argument_list "(p->y,p_00->y)" ( (field_expression "p->y" identifier -> field_identifier) , (field_expression "p_00->y" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "piVar1 = (int *)(puVar4 + 5);" (assignment_expression "piVar1 = (int *)(puVar4 + 5)" identifier = (cast_expression "(int *)(puVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 5)" ( (binary_expression "puVar4 + 5" identifier + number_literal) )))) ;) (expression_statement "puVar4 = puVar4 + 7;" (assignment_expression "puVar4 = puVar4 + 7" identifier = (binary_expression "puVar4 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_00180226:\n      ltc_ecc_del_point(p_00);" statement_identifier : (expression_statement "ltc_ecc_del_point(p_00);" (call_expression "ltc_ecc_del_point(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;)) (expression_statement "ltc_ecc_del_point(p);" (call_expression "ltc_ecc_del_point(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "ltc_deinit_multi(order,modulus,0);" (call_expression "ltc_deinit_multi(order,modulus,0)" identifier (argument_list "(order,modulus,0)" ( identifier , identifier , number_literal ))) ;) }))) })) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "ecc_test(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = ltc_init_multi(&local_50,&local_48,0);" (assignment_expression "iVar3 = ltc_init_multi(&local_50,&local_48,0)" identifier = (call_expression "ltc_init_multi(&local_50,&local_48,0)" identifier (argument_list "(&local_50,&local_48,0)" ( (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_48" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }" { (expression_statement "puVar4 = (undefined8 *)ltc_ecc_new_point();" (assignment_expression "puVar4 = (undefined8 *)ltc_ecc_new_point()" identifier = (cast_expression "(undefined8 *)ltc_ecc_new_point()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ltc_ecc_new_point()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar5 = (undefined8 *)ltc_ecc_new_point();" (assignment_expression "puVar5 = (undefined8 *)ltc_ecc_new_point()" identifier = (cast_expression "(undefined8 *)ltc_ecc_new_point()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ltc_ecc_new_point()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" if (parenthesized_expression "((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0))" ( (binary_expression "(puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)" (parenthesized_expression "(puVar4 == (undefined8 *)0x0)" ( (binary_expression "puVar4 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }" { (expression_statement "ltc_deinit_multi(local_50,local_48,0);" (call_expression "ltc_deinit_multi(local_50,local_48,0)" identifier (argument_list "(local_50,local_48,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "ltc_ecc_del_point(puVar4);" (call_expression "ltc_ecc_del_point(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "ltc_ecc_del_point(puVar5);" (call_expression "ltc_ecc_del_point(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "iVar3 = 0xd;" (assignment_expression "iVar3 = 0xd" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" else (compound_statement "{\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" { (expression_statement "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;" (assignment_expression "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0" identifier = (pointer_expression "*(int *)PTR_ltc_ecc_sets_001dfed0" * (cast_expression "(int *)PTR_ltc_ecc_sets_001dfed0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" { (expression_statement "puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);" (assignment_expression "puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" identifier = (cast_expression "(undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_ltc_ecc_sets_001dfed0 + 0x10)" ( (binary_expression "PTR_ltc_ecc_sets_001dfed0 + 0x10" identifier + number_literal) )))) ;) (do_statement "do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);" do (compound_statement "{\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        }" { (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(local_50,*puVar6,0x10)" ( identifier , (pointer_expression "*puVar6" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(local_48,puVar6[2],0x10)" ( identifier , (subscript_expression "puVar6[2]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" identifier + number_literal) ))))) )) (argument_list "(local_50,8,&local_54)" ( identifier , number_literal , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (if_statement "if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(local_54 == 0)" ( (binary_expression "local_54 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" identifier + number_literal) ))))) )) (argument_list "(local_48,8,&local_54)" ( identifier , number_literal , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (if_statement "if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(local_54 == 0)" ( (binary_expression "local_54 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(*puVar4,puVar6[3],0x10)" ( (pointer_expression "*puVar4" * identifier) , (subscript_expression "puVar6[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" identifier + number_literal) ))))) )) (argument_list "(puVar4[1],puVar6[4],0x10)" ( (subscript_expression "puVar4[1]" identifier [ number_literal ]) , (subscript_expression "puVar6[4]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "puVar2 = PTR_ltc_mp_001dfed8;" (assignment_expression "puVar2 = PTR_ltc_mp_001dfed8" identifier = identifier) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);" (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x38)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x38)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x38)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x38" identifier + number_literal) ))))) )) (argument_list "(puVar4[2],1)" ( (subscript_expression "puVar4[2]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48)" identifier = (call_expression "(**(code **)(puVar2 + 0xb0))(local_48,1,local_48)" (parenthesized_expression "(**(code **)(puVar2 + 0xb0))" ( (pointer_expression "**(code **)(puVar2 + 0xb0)" * (pointer_expression "*(code **)(puVar2 + 0xb0)" * (cast_expression "(code **)(puVar2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0xb0)" ( (binary_expression "puVar2 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(local_48,1,local_48)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x150)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x150)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x150)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x150" identifier + number_literal) ))))) )) (argument_list "(local_48,puVar4,puVar5,local_50,1)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00180226;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00180226;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" identifier + number_literal) ))))) )) (argument_list "(*puVar4,*puVar5)" ( (pointer_expression "*puVar4" * identifier) , (pointer_expression "*puVar5" * identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1])" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1])" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" ( (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" identifier + number_literal) ))))) )) (argument_list "(puVar4[1],puVar5[1])" ( (subscript_expression "puVar4[1]" identifier [ number_literal ]) , (subscript_expression "puVar5[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" { (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00180226;" goto statement_identifier ;) })) (expression_statement "piVar1 = (int *)(puVar6 + 5);" (assignment_expression "piVar1 = (int *)(puVar6 + 5)" identifier = (cast_expression "(int *)(puVar6 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) )))) ;) (expression_statement "puVar6 = puVar6 + 7;" (assignment_expression "puVar6 = puVar6 + 7" identifier = (binary_expression "puVar6 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_00180226:\n      ltc_ecc_del_point(puVar5);" statement_identifier : (expression_statement "ltc_ecc_del_point(puVar5);" (call_expression "ltc_ecc_del_point(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;)) (expression_statement "ltc_ecc_del_point(puVar4);" (call_expression "ltc_ecc_del_point(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "ltc_deinit_multi(local_48,local_50,0);" (call_expression "ltc_deinit_multi(local_48,local_50,0)" identifier (argument_list "(local_48,local_50,0)" ( identifier , identifier , number_literal ))) ;) }))) })) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int ecc_test(void)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "ecc_test(void)" (identifier "ecc_test") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined8 *puVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long in_FS_OFFSET;\n  int local_54;\n  undefined8 local_50;\n  undefined8 local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar3 = ltc_init_multi(&local_50,&local_48,0);\n  if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar3 = ltc_init_multi(&local_50,&local_48,0);" (assignment_expression "iVar3 = ltc_init_multi(&local_50,&local_48,0)" (identifier "iVar3") (= "=") (call_expression "ltc_init_multi(&local_50,&local_48,0)" (identifier "ltc_init_multi") (argument_list "(&local_50,&local_48,0)" (( "(") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar4 = (undefined8 *)ltc_ecc_new_point();\n    puVar5 = (undefined8 *)ltc_ecc_new_point();\n    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }\n  }" ({ "{") (expression_statement "puVar4 = (undefined8 *)ltc_ecc_new_point();" (assignment_expression "puVar4 = (undefined8 *)ltc_ecc_new_point()" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)ltc_ecc_new_point()" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ltc_ecc_new_point()" (identifier "ltc_ecc_new_point") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar5 = (undefined8 *)ltc_ecc_new_point();" (assignment_expression "puVar5 = (undefined8 *)ltc_ecc_new_point()" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)ltc_ecc_new_point()" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ltc_ecc_new_point()" (identifier "ltc_ecc_new_point") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }\n    else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" (if "if") (parenthesized_expression "((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0))" (( "(") (binary_expression "(puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)" (parenthesized_expression "(puVar4 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar4 == (undefined8 *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      ltc_deinit_multi(local_50,local_48,0);\n      ltc_ecc_del_point(puVar4);\n      ltc_ecc_del_point(puVar5);\n      iVar3 = 0xd;\n    }" ({ "{") (expression_statement "ltc_deinit_multi(local_50,local_48,0);" (call_expression "ltc_deinit_multi(local_50,local_48,0)" (identifier "ltc_deinit_multi") (argument_list "(local_50,local_48,0)" (( "(") (identifier "local_50") (, ",") (identifier "local_48") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "ltc_ecc_del_point(puVar4);" (call_expression "ltc_ecc_del_point(puVar4)" (identifier "ltc_ecc_del_point") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "ltc_ecc_del_point(puVar5);" (call_expression "ltc_ecc_del_point(puVar5)" (identifier "ltc_ecc_del_point") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "iVar3 = 0xd;" (assignment_expression "iVar3 = 0xd" (identifier "iVar3") (= "=") (number_literal "0xd")) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" (else "else") (compound_statement "{\n      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;\n      if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }\nLAB_00180226:\n      ltc_ecc_del_point(puVar5);\n      ltc_ecc_del_point(puVar4);\n      ltc_deinit_multi(local_48,local_50,0);\n    }" ({ "{") (expression_statement "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;" (assignment_expression "iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0" (identifier "iVar3") (= "=") (pointer_expression "*(int *)PTR_ltc_ecc_sets_001dfed0" (* "*") (cast_expression "(int *)PTR_ltc_ecc_sets_001dfed0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ltc_ecc_sets_001dfed0")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);\n        do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);\n        iVar3 = 0;\n      }" ({ "{") (expression_statement "puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);" (assignment_expression "puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_ltc_ecc_sets_001dfed0 + 0x10)" (( "(") (binary_expression "PTR_ltc_ecc_sets_001dfed0 + 0x10" (identifier "PTR_ltc_ecc_sets_001dfed0") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (do_statement "do {\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        } while (*piVar1 != 0);" (do "do") (compound_statement "{\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);\n          if (iVar3 != 0) goto LAB_00180226;\n          if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);\n          puVar2 = PTR_ltc_mp_001dfed8;\n          if (iVar3 != 0) goto LAB_00180226;\n          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);\n          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);\n          if (iVar3 != 0) goto LAB_00180226;\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);\n          if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }\n          piVar1 = (int *)(puVar6 + 5);\n          puVar6 = puVar6 + 7;\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_50,*puVar6,0x10)" (( "(") (identifier "local_50") (, ",") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_48,puVar6[2],0x10)" (( "(") (identifier "local_48") (, ",") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x148")) () ")"))))) () ")")) (argument_list "(local_50,8,&local_54)" (( "(") (identifier "local_50") (, ",") (number_literal "8") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (if_statement "if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" (if "if") (parenthesized_expression "(local_54 == 0)" (( "(") (binary_expression "local_54 == 0" (identifier "local_54") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x148))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x148)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x148)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x148)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x148)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x148" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x148")) () ")"))))) () ")")) (argument_list "(local_48,8,&local_54)" (( "(") (identifier "local_48") (, ",") (number_literal "8") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (if_statement "if (local_54 == 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" (if "if") (parenthesized_expression "(local_54 == 0)" (( "(") (binary_expression "local_54 == 0" (identifier "local_54") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(*puVar4,puVar6[3],0x10)" (( "(") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (, ",") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x80))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x80)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x80" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(puVar4[1],puVar6[4],0x10)" (( "(") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "puVar2 = PTR_ltc_mp_001dfed8;" (assignment_expression "puVar2 = PTR_ltc_mp_001dfed8" (identifier "puVar2") (= "=") (identifier "PTR_ltc_mp_001dfed8")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (expression_statement "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);" (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x38))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x38)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x38)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x38)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x38" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(puVar4[2],1)" (( "(") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar2 + 0xb0))(local_48,1,local_48)" (parenthesized_expression "(**(code **)(puVar2 + 0xb0))" (( "(") (pointer_expression "**(code **)(puVar2 + 0xb0)" (* "*") (pointer_expression "*(code **)(puVar2 + 0xb0)" (* "*") (cast_expression "(code **)(puVar2 + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0xb0)" (( "(") (binary_expression "puVar2 + 0xb0" (identifier "puVar2") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(local_48,1,local_48)" (( "(") (identifier "local_48") (, ",") (number_literal "1") (, ",") (identifier "local_48") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x150))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x150)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x150)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x150)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x150)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x150" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x150")) () ")"))))) () ")")) (argument_list "(local_48,puVar4,puVar5,local_50,1)" (( "(") (identifier "local_48") (, ",") (identifier "puVar4") (, ",") (identifier "puVar5") (, ",") (identifier "local_50") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00180226;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(*puVar4,*puVar5)" (( "(") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);" (assignment_expression "iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1])" (identifier "iVar3") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1])" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001dfed8 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001dfed8 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001dfed8 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001dfed8 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001dfed8 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001dfed8 + 0x58" (identifier "PTR_ltc_mp_001dfed8") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(puVar4[1],puVar5[1])" (( "(") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = 5;\n            goto LAB_00180226;\n          }" ({ "{") (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00180226;" (goto "goto") (statement_identifier "LAB_00180226") (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)(puVar6 + 5);" (assignment_expression "piVar1 = (int *)(puVar6 + 5)" (identifier "piVar1") (= "=") (cast_expression "(int *)(puVar6 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 5)" (( "(") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5")) () ")")))) (; ";")) (expression_statement "puVar6 = puVar6 + 7;" (assignment_expression "puVar6 = puVar6 + 7" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_00180226:\n      ltc_ecc_del_point(puVar5);" (statement_identifier "LAB_00180226") (: ":") (expression_statement "ltc_ecc_del_point(puVar5);" (call_expression "ltc_ecc_del_point(puVar5)" (identifier "ltc_ecc_del_point") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";"))) (expression_statement "ltc_ecc_del_point(puVar4);" (call_expression "ltc_ecc_del_point(puVar4)" (identifier "ltc_ecc_del_point") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "ltc_deinit_multi(local_48,local_50,0);" (call_expression "ltc_deinit_multi(local_48,local_50,0)" (identifier "ltc_deinit_multi") (argument_list "(local_48,local_50,0)" (( "(") (identifier "local_48") (, ",") (identifier "local_50") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar3;\n  }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

int function_1(void)

{
  int *piVar1;
  type_1 *var_12;
  int var_3;
  type_2 *var_5;
  type_2 *var_6;
  type_3 *var_13;
  long var_1;
  int var_11;
  void *modulus;
  void *order;
  long var_14;
  
  var_14 = *(long *)(var_1 + 0x28);
  var_3 = var_2(&modulus,&order,0);
  if (var_3 == 0) {
    var_5 = var_4();
    var_6 = var_4();
    if ((var_5 == (type_2 *)0x0) || (var_6 == (type_2 *)0x0)) {
      var_7(modulus,order,0);
      var_8(var_5);
      var_8(var_6);
      var_3 = 0xd;
    }
    else {
      var_3 = *(int *)var_9;
      if (var_3 != 0) {
        var_13 = (type_3 *)(var_9 + 0x10);
        do {
          var_3 = (**(type_4 **)(var_10 + 0x80))(modulus,*var_13,0x10);
          if (var_3 != 0) goto LAB_00180226;
          var_3 = (**(type_4 **)(var_10 + 0x80))(order,var_13[2],0x10);
          if (var_3 != 0) goto LAB_00180226;
          var_3 = (**(type_4 **)(var_10 + 0x148))(modulus,8,&var_11);
          if (var_3 != 0) goto LAB_00180226;
          if (var_11 == 0) {
            var_3 = 5;
            goto LAB_00180226;
          }
          var_3 = (**(type_4 **)(var_10 + 0x148))(order,8,&var_11);
          if (var_3 != 0) goto LAB_00180226;
          if (var_11 == 0) {
            var_3 = 5;
            goto LAB_00180226;
          }
          var_3 = (**(type_4 **)(var_10 + 0x80))(var_5->x,var_13[3],0x10);
          if (var_3 != 0) goto LAB_00180226;
          var_3 = (**(type_4 **)(var_10 + 0x80))(var_5->y,var_13[4],0x10);
          var_12 = var_10;
          if (var_3 != 0) goto LAB_00180226;
          (**(type_4 **)(var_10 + 0x38))(var_5->z,1);
          var_3 = (**(type_4 **)(var_12 + 0xb0))(order,1,order);
          if (var_3 != 0) goto LAB_00180226;
          var_3 = (**(type_4 **)(var_10 + 0x150))(order,var_5,var_6,modulus,1);
          if (var_3 != 0) goto LAB_00180226;
          var_3 = (**(type_4 **)(var_10 + 0x58))(var_5->x,var_6->x);
          if (var_3 != 0) {
            var_3 = 5;
            goto LAB_00180226;
          }
          var_3 = (**(type_4 **)(var_10 + 0x58))(var_5->y,var_6->y);
          if (var_3 != 0) {
            var_3 = 5;
            goto LAB_00180226;
          }
          piVar1 = (int *)(var_13 + 5);
          var_13 = var_13 + 7;
        } while (*piVar1 != 0);
        var_3 = 0;
      }
LAB_00180226:
      var_8(var_6);
      var_8(var_5);
      var_7(order,modulus,0);
    }
  }
  if (var_14 == *(long *)(var_1 + 0x28)) {
    return var_3;
  }
                    /* WARNING: Subroutine does not return */
  var_15();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

int MASKED(void)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  undefined8 *puVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  long in_FS_OFFSET;
  int local_54;
  undefined8 local_50;
  undefined8 local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  iVar3 = ltc_init_multi(&local_50,&local_48,0);
  if (iVar3 == 0) {
    puVar4 = (undefined8 *)ltc_ecc_new_point();
    puVar5 = (undefined8 *)ltc_ecc_new_point();
    if ((puVar4 == (undefined8 *)0x0) || (puVar5 == (undefined8 *)0x0)) {
      ltc_deinit_multi(local_50,local_48,0);
      ltc_ecc_del_point(puVar4);
      ltc_ecc_del_point(puVar5);
      iVar3 = 0xd;
    }
    else {
      iVar3 = *(int *)PTR_ltc_ecc_sets_001dfed0;
      if (iVar3 != 0) {
        puVar6 = (undefined8 *)(PTR_ltc_ecc_sets_001dfed0 + 0x10);
        do {
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_50,*puVar6,0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(local_48,puVar6[2],0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_50,8,&local_54);
          if (iVar3 != 0) goto LAB_00180226;
          if (local_54 == 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x148))(local_48,8,&local_54);
          if (iVar3 != 0) goto LAB_00180226;
          if (local_54 == 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(*puVar4,puVar6[3],0x10);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x80))(puVar4[1],puVar6[4],0x10);
          puVar2 = PTR_ltc_mp_001dfed8;
          if (iVar3 != 0) goto LAB_00180226;
          (**(code **)(PTR_ltc_mp_001dfed8 + 0x38))(puVar4[2],1);
          iVar3 = (**(code **)(puVar2 + 0xb0))(local_48,1,local_48);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x150))(local_48,puVar4,puVar5,local_50,1);
          if (iVar3 != 0) goto LAB_00180226;
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(*puVar4,*puVar5);
          if (iVar3 != 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          iVar3 = (**(code **)(PTR_ltc_mp_001dfed8 + 0x58))(puVar4[1],puVar5[1]);
          if (iVar3 != 0) {
            iVar3 = 5;
            goto LAB_00180226;
          }
          piVar1 = (int *)(puVar6 + 5);
          puVar6 = puVar6 + 7;
        } while (*piVar1 != 0);
        iVar3 = 0;
      }
LAB_00180226:
      ltc_ecc_del_point(puVar5);
      ltc_ecc_del_point(puVar4);
      ltc_deinit_multi(local_48,local_50,0);
    }
  }
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

