LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_parser.c
// Function: dx_annotationitem
DexAnnotationItem* dx_annotationitem(ByteStream* bs, uint32_t offset) {
  DexAnnotationItem* res;
  int check;

  if (bs == NULL) return NULL;

  DX_ALLOC(DexAnnotationItem,res);

  bsseek(bs,offset);

  check  = bsread(bs,(uint8_t*) &(res->visibility),sizeof(uint8_t));

  res->annotation = dx_encodedannotation(bs,bs->offset);

  res->meta.corrupted = (check != sizeof(uint8_t) || bs->exhausted);
  
  return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x92e3
movq $0x0, -0x8(%rbp)
jmp 0x9375
jmp 0x92e5
movl $0x18, %edi
callq 0x4750
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x44f0
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
addq $0x8, %rsi
movl $0x1, %edx
callq 0x4500
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x18(%rax), %esi
callq 0x41a0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movslq -0x24(%rbp), %rcx
movb $0x1, %al
cmpq $0x1, %rcx
movb %al, -0x25(%rbp)
jne 0x9361
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
setne %al
movb %al, -0x25(%rbp)
movb -0x25(%rbp), %cl
movq -0x20(%rbp), %rax
andb $0x1, %cl
movb %cl, (%rax)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_parser.c
// Function: dx_encodedarrayitem
DexEncodedArrayItem* dx_encodedarrayitem(ByteStream* bs, uint32_t offset) {
  DexEncodedArrayItem* res;

  if (bs == NULL) return NULL;

  DX_ALLOC(DexEncodedArrayItem,res);

  bsseek(bs,offset);

  res->value = dx_encodedarray(bs,bs->offset);

  res->meta.corrupted = bs->exhausted;
  
  return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x93a0
movq $0x0, -0x8(%rbp)
jmp 0x9404
jmp 0x93a2
movl $0x10, %edi
callq 0x4750
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x44f0
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x18(%rax), %esi
callq 0x48c0
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
setne %cl
movq -0x20(%rbp), %rax
andb $0x1, %cl
movb %cl, (%rax)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_string.c
// Function: dx_string_find_index
uint32_t dx_string_find_index(Dex* dx, char* str) {
  unsigned int i;
  int ret;

  if (dx == NULL || str == NULL) return -1;

  for (i=0; i<dx->header->string_ids_size; i++) {
    ret = strncmp(str, (char *)dx->string_data_list[i]->data, strlen((char *)dx->string_data_list[i]->data));

    if (ret == 0) // string already exists
      return -1;
    else if (ret < 0)
      return i;
  }

  return dx->header->string_ids_size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0xacae
cmpq $0x0, -0x18(%rbp)
jne 0xacba
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xad56
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x10(%rbp), %rcx
movq (%rcx), %rcx
cmpl 0x40(%rcx), %eax
jae 0xad49
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x1c(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x1c(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rdi
callq 0x4240
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq %rax, %rdx
callq 0x40c0
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x20(%rbp)
jne 0xad29
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xad56
cmpl $0x0, -0x20(%rbp)
jge 0xad37
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0xad56
jmp 0xad39
jmp 0xad3b
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xacc1
movq -0x10(%rbp), %rax
movq (%rax), %rax
movl 0x40(%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_string.c
// Function: dx_string_add
void dx_string_add(Dex* dx, char* str) {
  uint32_t index;

  if (dx == NULL || str == NULL) return;

  index = dx_string_find_index(dx,str);

  dx_string_add_stringid(dx,index);
  dx_string_add_stringdata(dx,index,str);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0xb33e
cmpq $0x0, -0x10(%rbp)
jne 0xb340
jmp 0xb36c
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x49b0
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x4350
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
movq -0x10(%rbp), %rdx
callq 0x4590
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: add_shift
void add_shift(dx_shift* shift, uint32_t base, int32_t delta) {
  dx_shift* next;
  dx_shift* last;

  printf("Shift Added.\n");

  if (shift == NULL) return;

  next = (dx_shift*) malloc_s(sizeof(dx_shift));

  next->base = base;
  next->delta = delta;
  next->next = NULL;
  
  last = shift;
  while (last->next != NULL) last = last->next;
  
  last->next = next;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
leaq 0x2e2b(%rip), %rdi      # 0xe1c4
movb $0x0, %al
callq 0x4290
cmpq $0x0, -0x8(%rbp)
jne 0xb3a9
jmp 0xb403
movl $0x10, %edi
callq 0x4750
movq %rax, -0x18(%rbp)
movl -0xc(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl -0x10(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xb3f7
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0xb3de
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_header
void dxo_header(DexHeaderItem* obj, dx_shift* shift) {
  UPDATE(obj->meta.offset);

  UPDATE(obj->link_off);
  UPDATE(obj->map_off);
  UPDATE(obj->string_ids_off);
  UPDATE(obj->type_ids_off);
  UPDATE(obj->proto_ids_off);
  UPDATE(obj->field_ids_off);
  UPDATE(obj->method_ids_off);
  UPDATE(obj->class_defs_off);
  UPDATE(obj->data_off);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb43c
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xb43e
jmp 0xb440
movq -0x8(%rbp), %rax
movl 0x38(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb460
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x38(%rax), %ecx
movl %ecx, 0x38(%rax)
jmp 0xb462
jmp 0xb464
movq -0x8(%rbp), %rax
movl 0x3c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb484
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
jmp 0xb486
jmp 0xb488
movq -0x8(%rbp), %rax
movl 0x44(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb4a8
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x44(%rax), %ecx
movl %ecx, 0x44(%rax)
jmp 0xb4aa
jmp 0xb4ac
movq -0x8(%rbp), %rax
movl 0x4c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb4cc
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4c(%rax), %ecx
movl %ecx, 0x4c(%rax)
jmp 0xb4ce
jmp 0xb4d0
movq -0x8(%rbp), %rax
movl 0x54(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb4f0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x54(%rax), %ecx
movl %ecx, 0x54(%rax)
jmp 0xb4f2
jmp 0xb4f4
movq -0x8(%rbp), %rax
movl 0x5c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb514
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x5c(%rax), %ecx
movl %ecx, 0x5c(%rax)
jmp 0xb516
jmp 0xb518
movq -0x8(%rbp), %rax
movl 0x64(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb538
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x64(%rax), %ecx
movl %ecx, 0x64(%rax)
jmp 0xb53a
jmp 0xb53c
movq -0x8(%rbp), %rax
movl 0x6c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb55c
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x6c(%rax), %ecx
movl %ecx, 0x6c(%rax)
jmp 0xb55e
jmp 0xb560
movq -0x8(%rbp), %rax
movl 0x74(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb580
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x74(%rax), %ecx
movl %ecx, 0x74(%rax)
jmp 0xb582
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_classdef
void dxo_classdef(DexClassDefItem* obj, dx_shift* shift) {
  UPDATE(obj->meta.offset);

  UPDATE(obj->interfaces_off);
  UPDATE(obj->annotations_off);
  UPDATE(obj->class_data_off);
  UPDATE(obj->static_values_off);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb70c
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xb70e
jmp 0xb710
movq -0x8(%rbp), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb730
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x14(%rax), %ecx
movl %ecx, 0x14(%rax)
jmp 0xb732
jmp 0xb734
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb754
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x1c(%rax), %ecx
movl %ecx, 0x1c(%rax)
jmp 0xb756
jmp 0xb758
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb778
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x20(%rax), %ecx
movl %ecx, 0x20(%rax)
jmp 0xb77a
jmp 0xb77c
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb79c
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x24(%rax), %ecx
movl %ecx, 0x24(%rax)
jmp 0xb79e
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_encodedmethod
void dxo_encodedmethod(DexEncodedMethodItem* obj, dx_shift* shift) {
  size_t old_size;

  UPDATE(obj->meta.offset);
  
  old_size = obj->code_off.size;
  
  UPDATE_ULEB(obj->code_off);

  if (obj->code_off.size != old_size)
    add_shift(shift,obj->meta.offset + 1,obj->code_off.size - old_size);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb830
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xb832
movq -0x8(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq %rcx, -0x28(%rbp)
movl 0x28(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x41c0
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb89f
movq -0x8(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq %rcx, -0x38(%rbp)
movl 0x28(%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x41c0
movq -0x40(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x4(%rax), %esi
callq 0x4540
jmp 0xb8a1
movq -0x8(%rbp), %rax
movl 0x28(%rax), %eax
cmpq -0x18(%rbp), %rax
je 0xb8ce
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x4(%rax), %esi
addl $0x1, %esi
movq -0x8(%rbp), %rax
movl 0x28(%rax), %eax
subq -0x18(%rbp), %rax
movl %eax, %edx
callq 0x42c0
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_classdata
void dxo_classdata(DexClassDataItem* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<ul128toui(obj->static_fields_size); i++)
    dxo_encodedfield(obj->static_fields[i],shift);

  for (i=0; i<ul128toui(obj->instance_fields_size); i++)
    dxo_encodedfield(obj->instance_fields[i],shift);

  for (i=0; i<ul128toui(obj->direct_methods_size); i++)
    dxo_encodedmethod(obj->direct_methods[i],shift);

  for (i=0; i<ul128toui(obj->virtual_methods_size); i++)
    dxo_encodedmethod(obj->virtual_methods[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xb910
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xb912
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movl 0x10(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x5c(%rbp), %eax
cmpl %ecx, %eax
jae 0xb969
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4650
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xb919
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq 0x14(%rax), %rcx
movq %rcx, -0x38(%rbp)
movl 0x1c(%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x60(%rbp), %eax
cmpl %ecx, %eax
jae 0xb9c0
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4650
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xb970
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq %rcx, -0x48(%rbp)
movl 0x28(%rax), %eax
movl %eax, -0x40(%rbp)
movq -0x48(%rbp), %rdi
movl -0x40(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x64(%rbp), %eax
cmpl %ecx, %eax
jae 0xba17
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4830
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xb9c7
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x68(%rbp)
movq -0x8(%rbp), %rax
movq 0x2c(%rax), %rcx
movq %rcx, -0x58(%rbp)
movl 0x34(%rax), %eax
movl %eax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x68(%rbp), %eax
cmpl %ecx, %eax
jae 0xba6e
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4830
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xba1e
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_typelist
void dxo_typelist(DexTypeList* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<obj->size; i++)
    dxo_typeitem(obj->list[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbae0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbae2
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xbb18
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x48d0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbae9
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_encodedcatchhandler
void dxo_encodedcatchhandler(DexEncodedCatchHandler* obj, dx_shift* shift) {
  int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<abs(sl128toi(obj->size)); i++)
    dxo_encodedtypeaddrpair(obj->handlers[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbbb0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbbb2
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movl 0x10(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x45e0
movl %eax, %ecx
movl -0x2c(%rbp), %eax
movl %ecx, %edx
negl %edx
cmovnsl %edx, %ecx
cmpl %ecx, %eax
jge 0xbc11
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4700
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbbb9
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_encodedcatchhandlerlist
void dxo_encodedcatchhandlerlist(DexEncodedCatchHandlerList* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<ul128toui(obj->size); i++)
    dxo_encodedcatchhandler(obj->list[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbc50
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbc52
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movl 0x10(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x2c(%rbp), %eax
cmpl %ecx, %eax
jae 0xbca9
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x45f0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbc59
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_codeitem
void dxo_codeitem(DexCodeItem* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  UPDATE(obj->debug_info_off);

  if (obj->tries_size > 0) {
    for (i=0; i<obj->tries_size; i++)
      dxo_tryitem(obj->tries[i],shift);

    dxo_encodedcatchhandlerlist(obj->handlers,shift);    
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbce0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbce2
jmp 0xbce4
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbd04
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x10(%rax), %ecx
movl %ecx, 0x10(%rax)
jmp 0xbd06
movq -0x8(%rbp), %rax
movzwl 0xe(%rax), %eax
cmpl $0x0, %eax
jle 0xbd5d
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0xe(%rcx), %ecx
cmpl %ecx, %eax
jae 0xbd4c
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4880
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbd1a
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x4090
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_maplist
void dxo_maplist(DexMapList* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<obj->size; i++)
    dxo_mapitem(obj->list[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbe30
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbe32
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xbe68
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4200
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbe39
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_encodedvalue
void dxo_encodedvalue(DexEncodedValue* obj, dx_shift* shift) {
  uint8_t value_type;

  UPDATE(obj->meta.offset);

  value_type = (obj->argtype & 0x1f);
	       
  switch (value_type) {
  case 0x1c:
    dxo_encodedarray((DexEncodedArray*) obj->value,shift);
    break;
  case 0x1d:
    dxo_encodedannotation((DexEncodedAnnotation*)obj->value,shift);
    break;
  default:
    break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbea0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbea2
movq -0x8(%rbp), %rax
movb 0x8(%rax), %al
andb $0x1f, %al
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
movl %eax, -0x18(%rbp)
subl $0x1c, %eax
je 0xbec6
jmp 0xbebc
movl -0x18(%rbp), %eax
subl $0x1d, %eax
je 0xbed9
jmp 0xbeec
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x46b0
jmp 0xbeee
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x4630
jmp 0xbeee
jmp 0xbeee
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_encodedarray
void dxo_encodedarray(DexEncodedArray* obj, dx_shift* shift) {
  unsigned int i;
  
  UPDATE(obj->meta.offset);

  for (i=0; i<ul128toui(obj->size); i++)
    dxo_encodedvalue(obj->values[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbf30
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbf32
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movl 0x10(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x2c(%rbp), %eax
cmpl %ecx, %eax
jae 0xbf89
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x41e0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbf39
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_encodedannotation
void dxo_encodedannotation(DexEncodedAnnotation* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<ul128toui(obj->size); i++)
    dxo_annotationelement(obj->elements[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xbfc0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xbfc2
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x14(%rax), %rcx
movq %rcx, -0x24(%rbp)
movl 0x1c(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x24(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x28(%rbp), %eax
cmpl %ecx, %eax
jae 0xc019
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4130
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xbfc9
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_annotationdirectoryitem
void dxo_annotationdirectoryitem(DexAnnotationDirectoryItem* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  UPDATE(obj->class_annotations_off);

  for (i=0; i<obj->fields_size; i++)
    dxo_fieldannotation(obj->field_annotations[i],shift);

  for (i=0; i<obj->annotated_methods_size; i++)
    dxo_methodannotation(obj->method_annotations[i],shift);
  
  for (i=0; i<obj->annotated_parameters_size; i++)
    dxo_parameterannotation(obj->parameter_annotations[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xc1c0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xc1c2
jmp 0xc1c4
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xc1e4
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
jmp 0xc1e6
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jae 0xc21c
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x42b0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xc1ed
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jae 0xc252
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4660
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xc223
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x14(%rcx), %eax
jae 0xc288
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4900
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xc259
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_annotationsetreflist
void dxo_annotationsetreflist(DexAnnotationSetRefList* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<obj->size; i++)
    dxo_annotationsetrefitem(obj->list[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xc320
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xc322
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xc358
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4810
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xc329
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_offset.c
// Function: dxo_annotationsetitem
void dxo_annotationsetitem(DexAnnotationSetItem* obj, dx_shift* shift) {
  unsigned int i;

  UPDATE(obj->meta.offset);

  for (i=0; i<obj->size; i++)
    dxo_annotationoffitem(obj->entries[i],shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xc3f0
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
addl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
jmp 0xc3f2
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xc428
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x14(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rsi
callq 0x4520
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xc3f9
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_stringid.c
// Function: dxsi_debuginfo
void dxsi_debuginfo(DexDebugInfo* obj, dx_shift* shift) {
  unsigned int i;
  size_t old_size;

  for (i=0; i<ul128toui(obj->parameters_size); i++) {
    old_size = obj->parameter_names[i].size;

    UPDATE_ULEBP1(obj->parameter_names[i]);
    
    if (obj->parameter_names[i].size != old_size)
      add_shift(shift,obj->meta.offset + 1,obj->parameter_names[i].size - old_size);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x54(%rbp)
movq -0x8(%rbp), %rax
movq 0x14(%rax), %rcx
movq %rcx, -0x30(%rbp)
movl 0x1c(%rax), %eax
movl %eax, -0x28(%rbp)
movq -0x30(%rbp), %rdi
movl -0x28(%rbp), %esi
callq 0x41c0
movl %eax, %ecx
movl -0x54(%rbp), %eax
cmpl %ecx, %eax
jae 0xcbd2
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, -0x40(%rbp)
movl 0x8(%rax), %eax
movl %eax, -0x38(%rbp)
movq -0x40(%rbp), %rdi
movl -0x38(%rbp), %esi
callq 0x45a0
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jl 0xcb77
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, -0x50(%rbp)
movl 0x8(%rax), %eax
movl %eax, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movl -0x48(%rbp), %esi
callq 0x45a0
movq -0x60(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x4(%rax), %esi
callq 0x4730
jmp 0xcb79
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
cmpq -0x20(%rbp), %rax
je 0xcbc2
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x4(%rax), %esi
addl $0x1, %esi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
subq -0x20(%rbp), %rax
movl %eax, %edx
callq 0x42c0
jmp 0xcbc4
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xcaa7
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_stringid.c
// Function: dxsi_encodedvalue
void dxsi_encodedvalue(DexEncodedValue* obj, dx_shift* shift) {
  uint8_t value_type;

  value_type = (obj->argtype & 0x1f);
	       
  switch (value_type) {
  case 0x17:
    UPDATE(*((uint32_t*)obj->value));
    break;
  case 0x1C:
    dxsi_encodedarray((DexEncodedArray*) obj->value,shift);
    break;
  case 0x1d:
    dxsi_encodedannotation((DexEncodedAnnotation*)obj->value,shift);
    break;
  default:
    break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movb 0x8(%rax), %al
andb $0x1f, %al
movb %al, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
movl %eax, -0x18(%rbp)
subl $0x17, %eax
je 0xcc1e
jmp 0xcc0a
movl -0x18(%rbp), %eax
subl $0x1c, %eax
je 0xcc49
jmp 0xcc14
movl -0x18(%rbp), %eax
subl $0x1d, %eax
je 0xcc5c
jmp 0xcc6f
jmp 0xcc20
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xcc45
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
addl (%rax), %ecx
movl %ecx, (%rax)
jmp 0xcc47
jmp 0xcc71
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x43a0
jmp 0xcc71
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x4850
jmp 0xcc71
jmp 0xcc71
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/dex_stringid.c
// Function: dxsi_annotationelement
void dxsi_annotationelement(DexAnnotationElement* obj, dx_shift* shift) {
  size_t old_size;
 
  old_size = obj->name_idx.size;

  UPDATE_ULEB(obj->name_idx);
  
  if (obj->name_idx.size != old_size)
    add_shift(shift,obj->meta.offset + 1,obj->name_idx.size - old_size);

  dxsi_encodedvalue(obj->value,shift);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movl 0x10(%rax), %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x41c0
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jb 0xcddd
movq -0x8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x38(%rbp)
movl 0x10(%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x41c0
movq -0x40(%rbp), %rdi
movl %eax, %esi
movq -0x10(%rbp), %rax
addl 0x4(%rax), %esi
callq 0x4540
jmp 0xcddf
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
cmpq -0x18(%rbp), %rax
je 0xce0c
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x4(%rax), %esi
addl $0x1, %esi
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
subq -0x18(%rbp), %rax
movl %eax, %edx
callq 0x42c0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x47f0
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/leb128.c
// Function: l128size
unsigned int l128size(ByteStream* bs) {
  int32_t offset;
  unsigned int len = 0;
  uint8_t cbyte = 0x0;

  if (bs == NULL) return 0;

  offset = bs->offset;

  bsread(bs,&cbyte,1);

  if (!bs->exhausted) {
    len = 1;

    while (!bs->exhausted && len < 5 && (cbyte & 0x80) != 0x0) {
      len++;
      bsread(bs,&cbyte,1);
    }      
  }  
  
  bsseek(bs,offset);  

  return len;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xd15a
movl $0x0, -0x4(%rbp)
jmp 0xd1ed
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x19(%rbp), %rsi
movl $0x1, %edx
callq 0x4500
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jne 0xd1db
movl $0x1, -0x18(%rbp)
movq -0x10(%rbp), %rcx
xorl %eax, %eax
cmpl $0x0, 0x1c(%rcx)
movb %al, -0x1a(%rbp)
jne 0xd1b3
xorl %eax, %eax
cmpl $0x5, -0x18(%rbp)
movb %al, -0x1a(%rbp)
jae 0xd1b3
movzbl -0x19(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x1a(%rbp)
movb -0x1a(%rbp), %al
testb $0x1, %al
jne 0xd1bc
jmp 0xd1d9
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x19(%rbp), %rsi
movl $0x1, %edx
callq 0x4500
jmp 0xd187
jmp 0xd1db
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x44f0
movl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/leb128.c
// Function: l128read
int l128read(ByteStream* bs, leb128_t* leb) {
  unsigned int ret;

  if (bs == NULL || leb == NULL) return -1;

  leb->size = l128size(bs);

  ret = bsread(bs,leb->data,leb->size);

  return ret != leb->size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0xd21e
cmpq $0x0, -0x18(%rbp)
jne 0xd227
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xd267
movq -0x10(%rbp), %rdi
callq 0x42f0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, %edx
callq 0x4500
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x8(%rcx), %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/leb128.c
// Function: ul128toui
uint32_t ul128toui(leb128_t uleb) {
  uint32_t val = 0;
  int i;
  
  for (i=uleb.size-1; i>=0; i--) {
    val = val * 128 + (uleb.data[i] & 0x7f);
  }  

  return val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x1c(%rbp)
movl %esi, -0x14(%rbp)
movq -0x1c(%rbp), %rax
movq %rax, -0xc(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x4(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
jl 0xd3b1
movl -0x20(%rbp), %eax
shll $0x7, %eax
movslq -0x24(%rbp), %rcx
movzbl -0xc(%rbp,%rcx), %ecx
andl $0x7f, %ecx
addl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xd389
movl -0x20(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/leb128.c
// Function: sl128toi
int32_t sl128toi(leb128_t sleb) {
  int32_t val = 0;
  
  val = ul128toui(sleb);

  if ((sleb.size != 5) && (sleb.data[sleb.size-1] & 0x40) != 0) {
    val = val | ~((1 << (sleb.size*7))-1);
  }

  return val;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x1c(%rbp)
movl %esi, -0x14(%rbp)
movq -0x1c(%rbp), %rax
movq %rax, -0xc(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl $0x0, -0x20(%rbp)
movq -0xc(%rbp), %rax
movq %rax, -0x30(%rbp)
movl -0x4(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x30(%rbp), %rdi
movl -0x28(%rbp), %esi
callq 0x41c0
movl %eax, -0x20(%rbp)
cmpl $0x5, -0x4(%rbp)
je 0xd477
movl -0x4(%rbp), %eax
subl $0x1, %eax
movl %eax, %eax
movzbl -0xc(%rbp,%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0xd477
movl -0x20(%rbp), %eax
imull $0x7, -0x4(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
xorl $-0x1, %ecx
orl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/leb128.c
// Function: uitoul128
void uitoul128(leb128_t* leb, uint32_t num) {
  unsigned int i;

  for (i=0; i<5; i++) {
    if (i == 4)
      leb->data[i] = num & 0x4f;
    else
      leb->data[i] = num & 0x7f;

    num /= 128;
    
    if (num == 0) break;

    leb->data[i] |= 0x80;
  }

  leb->size = i+1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
cmpl $0x5, -0x10(%rbp)
jae 0xd4f4
cmpl $0x4, -0x10(%rbp)
jne 0xd4b2
movl -0xc(%rbp), %eax
andl $0x4f, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movl -0x10(%rbp), %ecx
movb %dl, (%rax,%rcx)
jmp 0xd4c4
movl -0xc(%rbp), %eax
andl $0x7f, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movl -0x10(%rbp), %ecx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
shrl $0x7, %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0xd4d5
jmp 0xd4f4
movq -0x8(%rbp), %rax
movl -0x10(%rbp), %ecx
movzbl (%rax,%rcx), %edx
orl $0x80, %edx
movb %dl, (%rax,%rcx)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xd492
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/leb128.c
// Function: itosl128
void itosl128(leb128_t* leb, int32_t num) {
  unsigned int i;

  leb->data[0] = ((num >> 00) & 0x7f) | 0x80;
  leb->data[1] = ((num >> 07) & 0x7f) | 0x80;
  leb->data[2] = ((num >> 14) & 0x7f) | 0x80;
  leb->data[3] = ((num >> 21) & 0x7f) | 0x80;
  leb->data[4] = ((num >> 28) & 0x4f) | 0x00;

  leb->size = 5;

  if (leb->data[4] == 0x00 || leb->data[4] == 0x4f) {
    leb->size--;

    for (i=3; i>0; i--) {
      if (leb->data[i] == 0x80 || leb->data[i] == 0xff)
	leb->size--;
      else 
	break;
    }
  }

  if (num > 0 && (leb->data[leb->size-1] & 0x40) != 0x0) {
    leb->size++;
  } 

  if (num < 0 && (leb->data[leb->size-1] & 0x40) == 0x0) {
    leb->size++;
  } 

  leb->data[leb->size-1] &= 0x7f;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
sarl $0x0, %eax
andl $0x7f, %eax
orl $0x80, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, (%rax)
movl -0xc(%rbp), %eax
sarl $0x7, %eax
andl $0x7f, %eax
orl $0x80, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x1(%rax)
movl -0xc(%rbp), %eax
sarl $0xe, %eax
andl $0x7f, %eax
orl $0x80, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x2(%rax)
movl -0xc(%rbp), %eax
sarl $0x15, %eax
andl $0x7f, %eax
orl $0x80, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x3(%rax)
movl -0xc(%rbp), %eax
sarl $0x1c, %eax
andl $0x4f, %eax
orl $0x0, %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movb %cl, 0x4(%rax)
movq -0x8(%rbp), %rax
movl $0x5, 0x8(%rax)
movq -0x8(%rbp), %rax
movzbl 0x4(%rax), %eax
cmpl $0x0, %eax
je 0xd5e0
movq -0x8(%rbp), %rax
movzbl 0x4(%rax), %eax
cmpl $0x4f, %eax
jne 0xd63e
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x8(%rax)
movl $0x3, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jbe 0xd63c
movq -0x8(%rbp), %rax
movl -0x10(%rbp), %ecx
movzbl (%rax,%rcx), %eax
cmpl $0x80, %eax
je 0xd61e
movq -0x8(%rbp), %rax
movl -0x10(%rbp), %ecx
movzbl (%rax,%rcx), %eax
cmpl $0xff, %eax
jne 0xd62d
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x8(%rax)
jmp 0xd62f
jmp 0xd63c
jmp 0xd631
movl -0x10(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xd5f4
jmp 0xd63e
cmpl $0x0, -0xc(%rbp)
jle 0xd66d
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0xd66d
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
cmpl $0x0, -0xc(%rbp)
jge 0xd69c
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0xd69c
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %edx
andl $0x7f, %edx
movb %dl, (%rax,%rcx)
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/rchiossi[P]dexterity/lib/malloc_s.c
// Function: malloc_s
void *malloc_s(size_t size) {
	if (!size)
		return NULL;

	void *new_mem = malloc(size);

	if (!new_mem) {
		fprintf(stderr, "fatal: memory exhausted (malloc of %zu bytes)\n", size);
		exit(-1);
	}

	return new_mem;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xd6dd
movq $0x0, -0x8(%rbp)
jmp 0xd71f
movq -0x10(%rbp), %rdi
callq 0x45b0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xd717
movq 0x3900(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0xae6(%rip), %rsi       # 0xe1ec
movb $0x0, %al
callq 0x4440
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x4890
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/comfies[P]custard/src/vector.c
// Function: construct_vector
vector_t *construct_vector() {
    vector_t *vector = (vector_t*)calloc(1, sizeof(vector_t));
    vector->memory = 1;
    vector->size = 0;
    vector->elements = calloc(1, sizeof(void*));
    vector->remaining = 0;

    return vector;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x1, %edi
movl $0x18, %esi
callq 0x3350
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl $0x1, 0x8(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0xc(%rax)
movl $0x1, %edi
movl $0x8, %esi
callq 0x3350
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/comfies[P]custard/src/vector.c
// Function: vector_iterator
void *vector_iterator(vector_t *vector) {
    if (!vector->remaining) {
        vector->remaining = vector->size;
        return NULL;
    }

    unsigned int index = (vector->size - vector->remaining);
    vector->remaining--;

    return get_from_vector(vector, index);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x38ee
movq -0x10(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x10(%rax)
movq $0x0, -0x8(%rbp)
jmp 0x391c
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x10(%rcx), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x3930
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/comfies[P]custard/src/vector.c
// Function: push_to_vector
void push_to_vector(vector_t *vector, void *data) {
    if (vector->size == vector->memory) {
        vector->memory *= 2;
        vector->elements = realloc(vector->elements,
            sizeof(void*) * (vector->memory + 1));
    }

    vector->elements[vector->size++] = (void*)data;
    vector->remaining++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jne 0x39e4
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
shll %ecx
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
shlq $0x3, %rsi
callq 0x34b0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rsi
movl 0xc(%rsi), %ecx
movl %ecx, %edi
addl $0x1, %edi
movl %edi, 0xc(%rsi)
movl %ecx, %ecx
movq %rdx, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/comfies[P]custard/src/vector.c
// Function: pull_from_vector
void pull_from_vector(vector_t *vector, unsigned int index) {
    if (index >= vector->size)
        return;

    for (; index < vector->size; index++)
        vector->elements[index] = vector->elements[index + 1];

    vector->elements[vector->size--] = NULL;
    vector->remaining--;

    if ((vector->size * 2) == vector->memory) {
        vector->memory /= 2;
        vector->elements = realloc(vector->elements,
            sizeof(void *) * (vector->memory + 1));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jb 0x3a40
jmp 0x3aed
jmp 0x3a42
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jae 0x3a7a
movq -0x8(%rbp), %rax
movq (%rax), %rax
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
movq (%rax), %rax
movl -0xc(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x3a42
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rdx
movl 0xc(%rdx), %ecx
movl %ecx, %esi
addl $-0x1, %esi
movl %esi, 0xc(%rdx)
movl %ecx, %ecx
movq $0x0, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
shll %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jne 0x3aed
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
shrl %ecx
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
shlq $0x3, %rsi
callq 0x34b0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)