// File: /workspace/github_c_makefile_star2_O1/theck01[P]offbrand_lib/src/tests/obdeque_test.c
// Function: main
int main (){

  obdeque *test_deque_a, *test_deque_b, *joined_deque;
  obdeque_iterator *head_it, *tail_it, *copy_it;
  obtest *a, *b, *c, *d, *e;
  uint32_t i;

  /* create test objects */
  test_deque_a = obdeque_new();
  a = obtest_new(1);
  b = obtest_new(2);
  c = obtest_new(3);
  d = obtest_new(4);
  e = obtest_new(5);


  /* test the empty deque */
  assert(obdeque_is_empty(test_deque_a) != 0);
  assert(obdeque_length(test_deque_a) == 0);
  assert(obdeque_head_iterator(test_deque_a) == NULL);
  assert(obdeque_tail_iterator(test_deque_a) == NULL);

  /* test a deque with a single element */
  obdeque_add_at_head(test_deque_a, (obj *)a);

  assert(obdeque_is_empty(test_deque_a) == 0);
  assert(obdeque_length(test_deque_a) == 1);
  assert(ob_reference_count((obj *)a) == 2);
  assert(obtest_id((obtest *)obdeque_obj_at_head(test_deque_a)) == 1);
  assert(obtest_id((obtest *)obdeque_obj_at_tail(test_deque_a)) == 1);

  head_it = obdeque_head_iterator(test_deque_a);
  tail_it = obdeque_tail_iterator(test_deque_a);

  assert(head_it != NULL);
  assert(tail_it != NULL);
  assert(obtest_id((obtest *)obdeque_obj_at_iterator(test_deque_a, head_it)) == 1);
  assert(obtest_id((obtest *)obdeque_obj_at_iterator(test_deque_a, tail_it)) == 1);

  assert(obdeque_find_obj(test_deque_a, (obj *)a));

  /* test removing the only element from the deque */
  obdeque_remove_tail(test_deque_a);

  /* check that element is still referenced because of existing iterators */
  assert(ob_reference_count((obj *)a) == 2);
  ob_release((obj *)head_it);
  ob_release((obj *)tail_it);
  assert(ob_reference_count((obj *)a) == 1);


  assert(obdeque_is_empty(test_deque_a) != 0);
  assert(obdeque_length(test_deque_a) == 0);
  assert(obdeque_head_iterator(test_deque_a) == NULL);
  assert(obdeque_tail_iterator(test_deque_a) == NULL);

  /* test deque with multiple elements */
  obdeque_add_at_tail(test_deque_a, (obj *)a);
  obdeque_add_at_head(test_deque_a, (obj *)b);
  obdeque_add_at_tail(test_deque_a, (obj *)c);
  obdeque_add_at_head(test_deque_a, (obj *)d);
  obdeque_add_at_tail(test_deque_a, (obj *)e);

  assert(obdeque_is_empty(test_deque_a) == 0);
  assert(obdeque_length(test_deque_a) == 5);

  /* test deque removal functions */
  head_it = obdeque_head_iterator(test_deque_a);
  obdeque_remove_at_iterator(test_deque_a, head_it);
  ob_release((obj *)head_it);

  head_it = obdeque_head_iterator(test_deque_a);
  do{
    assert(obtest_id((obtest *)obdeque_obj_at_iterator(test_deque_a, head_it)) != 4);
  }while(obdeque_iterate_next(test_deque_a, head_it));

  ob_release((obj *)head_it);
  obdeque_add_at_head(test_deque_a, (obj *)d);

  test_deque_b = obdeque_copy(test_deque_a);

  assert(ob_reference_count((obj *)a) == 3);
  assert(ob_compare((obj *)test_deque_a, (obj *)test_deque_b) == OB_EQUAL_TO);
  assert(ob_hash((obj *)test_deque_a) ==  ob_hash((obj *)test_deque_b));

  obdeque_sort(test_deque_a, OB_LEAST_TO_GREATEST);

  assert(obdeque_length(test_deque_a) == 5);
  assert(ob_compare((obj *)test_deque_a, (obj *)test_deque_b) == OB_NOT_EQUAL);
  assert(ob_hash((obj *)test_deque_a) !=  ob_hash((obj *)test_deque_b));

  i = 1;
  head_it = obdeque_head_iterator(test_deque_a);
  do{
    assert(obtest_id((obtest *)obdeque_obj_at_iterator(test_deque_a, head_it)) == i);
    i++;
  }while(obdeque_iterate_next(test_deque_a, head_it));

  ob_release((obj *)head_it);
  ob_release((obj *)test_deque_a);
  assert(ob_reference_count((obj *)a) == 2);

  test_deque_a = obdeque_copy(test_deque_b);
  joined_deque = obdeque_join(test_deque_a, test_deque_b);
  obdeque_sort(joined_deque, OB_GREATEST_TO_LEAST);

  assert(obdeque_length(joined_deque) == 10);
  assert(ob_reference_count((obj *)a) == 5); /* the joined deque has two references,
                                            as a is contained within twice */

  tail_it = obdeque_tail_iterator(joined_deque);
  obdeque_remove_tail(joined_deque);
  assert(obdeque_iterate_prev(joined_deque, tail_it) == 0);
  assert(obdeque_iterate_next(joined_deque, tail_it) == 0);
  ob_release((obj *)tail_it);

  tail_it = obdeque_tail_iterator(joined_deque);
  obdeque_add_at_iterator(joined_deque, tail_it, (obj *)a);
  ob_release((obj *)tail_it);

  tail_it = obdeque_tail_iterator(joined_deque);
  copy_it = obdeque_copy_iterator(tail_it);
  ob_release((obj *)tail_it);
  tail_it = copy_it;


  for(i=0; i<10; i++){
    assert(obtest_id((obtest *)obdeque_obj_at_iterator(joined_deque, tail_it)) == i/2+1);
    if(i != 9) assert(obdeque_iterate_prev(joined_deque, tail_it));
  }

  assert(obdeque_iterate_prev(joined_deque, tail_it) == 0);

  ob_release((obj *)tail_it);

  obdeque_clear(test_deque_a);
  obdeque_clear(test_deque_b);

  for(i=0; i<10; i++){
    obdeque_remove_head(joined_deque);
  }

  assert(obdeque_is_empty(joined_deque) != 0);
  assert(obdeque_length(joined_deque) == 0);
  assert(ob_reference_count((obj *)a) == 1);

  ob_release((obj *)test_deque_a);
  ob_release((obj *)test_deque_b);
  ob_release((obj *)joined_deque);
  ob_release((obj *)e);
  ob_release((obj *)d);
  ob_release((obj *)c);
  ob_release((obj *)b);
  ob_release((obj *)a);

  printf("obdeque: TESTS PASSED\n");
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
callq 0x1db4
movq %rax, %rbp
movl $0x1, %edi
callq 0x30a0
movq %rax, %rbx
movl $0x2, %edi
callq 0x30a0
movq %rax, %r13
movl $0x3, %edi
callq 0x30a0
movq %rax, %r12
movl $0x4, %edi
callq 0x30a0
movq %rax, %r14
movl $0x5, %edi
callq 0x30a0
movq %rax, 0x10(%rsp)
movq %rbp, %rdi
callq 0x209c
testb %al, %al
je 0x1938
movq %rbp, %rdi
callq 0x20ca
testq %rax, %rax
jne 0x1957
movq %rbp, %rdi
callq 0x1ed0
testq %rax, %rax
jne 0x1976
movq %rbp, %rdi
callq 0x2170
testq %rax, %rax
jne 0x1995
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x2253
movq %rbp, %rdi
callq 0x209c
testb %al, %al
jne 0x19b4
movq %rbp, %rdi
callq 0x20ca
cmpq $0x1, %rax
jne 0x19d3
movq %rbx, %rdi
callq 0x34c6
cmpl $0x2, %eax
jne 0x19f2
movq %rbp, %rdi
callq 0x2957
movq %rax, %rdi
callq 0x329b
cmpl $0x1, %eax
jne 0x1a11
movq %r14, 0x8(%rsp)
movq %rbp, %rdi
callq 0x298d
movq %rax, %rdi
callq 0x329b
cmpl $0x1, %eax
jne 0x1a30
movq %rbp, %rdi
callq 0x1ed0
movq %rax, %r14
movq %rbp, %rdi
callq 0x2170
testq %r14, %r14
je 0x1a4f
movq %rax, %r15
testq %rax, %rax
je 0x1a6e
movq %rbp, %rdi
movq %r14, %rsi
callq 0x1efe
movq %rax, %rdi
callq 0x329b
cmpl $0x1, %eax
jne 0x1a8d
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1efe
movq %rax, %rdi
callq 0x329b
cmpl $0x1, %eax
jne 0x1aac
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x2588
testb %al, %al
je 0x1acb
movq %rbp, %rdi
callq 0x2a23
movq %rbx, %rdi
callq 0x34c6
cmpl $0x2, %eax
jne 0x1aea
movq %r14, %rdi
callq 0x345a
movq %r15, %rdi
callq 0x345a
movq %rbx, %rdi
callq 0x34c6
cmpl $0x1, %eax
jne 0x1b09
movq %rbp, %rdi
callq 0x209c
testb %al, %al
movq 0x8(%rsp), %r15
je 0x1b28
movq %rbp, %rdi
callq 0x20ca
testq %rax, %rax
jne 0x1b47
movq %rbp, %rdi
callq 0x1ed0
testq %rax, %rax
jne 0x1b66
movq %rbp, %rdi
callq 0x2170
testq %rax, %rax
jne 0x1b85
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x1f7f
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2253
movq %rbp, %rdi
movq %r12, %rsi
callq 0x1f7f
movq %rbp, %rdi
movq %r15, %rsi
callq 0x2253
movq %rbp, %rdi
movq 0x10(%rsp), %rsi
callq 0x1f7f
movq %rbp, %rdi
callq 0x209c
testb %al, %al
jne 0x1ba4
movq %rbp, %rdi
callq 0x20ca
cmpq $0x5, %rax
jne 0x1bc3
movq %rbp, %rdi
callq 0x1ed0
movq %rax, %r14
movq %rbp, %rdi
movq %rax, %rsi
callq 0x2a83
movq %r14, %rdi
callq 0x345a
movq %rbp, %rdi
callq 0x1ed0
movq %rax, %r14
movq %rbp, %rdi
movq %r14, %rsi
callq 0x1efe
movq %rax, %rdi
callq 0x329b
cmpl $0x4, %eax
je 0x18bc
movq %rbp, %rdi
movq %r14, %rsi
callq 0x1ff7
testb %al, %al
jne 0x1596
movq %r14, %rdi
callq 0x345a
movq %rbp, %rdi
movq %r15, %rsi
callq 0x2253
movq %rbp, %rdi
callq 0x1e2a
movq %rax, %r14
movq %rbx, %rdi
callq 0x34c6
cmpl $0x3, %eax
jne 0x1be2
movq %rbp, %rdi
movq %r14, %rsi
callq 0x33d7
testb %al, %al
jne 0x1c01
movq %rbp, %rdi
callq 0x3398
movq %rax, %r15
movq %r14, %rdi
callq 0x3398
cmpq %rax, %r15
jne 0x1c20
movq %rbp, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x265f
movq %rbp, %rdi
callq 0x20ca
cmpq $0x5, %rax
jne 0x1c3f
movq %rbp, %rdi
movq %r14, %rsi
callq 0x33d7
cmpb $0x2, %al
jne 0x1c5e
movq %r12, 0x20(%rsp)
movq %rbp, %rdi
callq 0x3398
movq %rax, %r15
movq %r14, %rdi
callq 0x3398
cmpq %rax, %r15
je 0x1c7d
movq %rbp, %rdi
callq 0x1ed0
movq %rax, %r15
xorl %r12d, %r12d
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1efe
movq %rax, %rdi
callq 0x329b
incl %r12d
cmpl %eax, %r12d
jne 0x18db
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1ff7
testb %al, %al
jne 0x1680
movq %r15, %rdi
callq 0x345a
movq %rbp, %rdi
callq 0x345a
movq %rbx, %rdi
callq 0x34c6
cmpl $0x2, %eax
jne 0x1c9c
movq %r14, %rdi
callq 0x1e2a
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x24b6
movq %rax, %rbp
movq %rax, %rdi
movl $0x1, %esi
callq 0x265f
movq %rbp, %rdi
callq 0x20ca
cmpq $0xa, %rax
jne 0x1cbb
movq %r13, 0x18(%rsp)
movq %rbx, %rdi
callq 0x34c6
cmpl $0x5, %eax
jne 0x1cda
movq %rbp, %rdi
callq 0x2170
movq %rax, %r13
movq %rbp, %rdi
callq 0x2a23
movq %rbp, %rdi
movq %r13, %rsi
callq 0x21ae
testb %al, %al
jne 0x1cf9
movq %rbp, %rdi
movq %r13, %rsi
callq 0x1ff7
testb %al, %al
jne 0x1d18
movq %r13, %rdi
callq 0x345a
movq %rbp, %rdi
callq 0x2170
movq %rax, %r13
movq %rbp, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x2363
movq %r13, %rdi
callq 0x345a
movq %rbp, %rdi
callq 0x2170
movq %rax, %r12
movq %rax, %rdi
callq 0x219e
movq %rax, %r13
movq %r12, %rdi
callq 0x345a
xorl %r12d, %r12d
movq %rbp, %rdi
movq %r13, %rsi
callq 0x1efe
movq %rax, %rdi
callq 0x329b
movl %r12d, %ecx
shrl %ecx
incl %ecx
cmpl %ecx, %eax
jne 0x18fa
cmpl $0x9, %r12d
je 0x17db
movq %rbp, %rdi
movq %r13, %rsi
callq 0x21ae
testb %al, %al
je 0x1919
incl %r12d
cmpl $0xa, %r12d
jne 0x17a0
movq %rbp, %rdi
movq %r13, %rsi
callq 0x21ae
testb %al, %al
jne 0x1d37
movq %r13, %rdi
callq 0x345a
movq %r15, %rdi
callq 0x2ba6
movq %r14, %rdi
callq 0x2ba6
movl $0xa, %r12d
movq %rbp, %rdi
callq 0x29c3
decl %r12d
jne 0x1815
movq %rbp, %rdi
callq 0x209c
testb %al, %al
movq 0x18(%rsp), %r12
je 0x1d56
movq %rbp, %rdi
callq 0x20ca
testq %rax, %rax
jne 0x1d75
movq %rbx, %rdi
callq 0x34c6
cmpl $0x1, %eax
jne 0x1d94
movq %r15, %rdi
callq 0x345a
movq %r14, %rdi
callq 0x345a
movq %rbp, %rdi
callq 0x345a
movq 0x10(%rsp), %rdi
callq 0x345a
movq 0x8(%rsp), %rdi
callq 0x345a
movq 0x20(%rsp), %rdi
callq 0x345a
movq %r12, %rdi
callq 0x345a
movq %rbx, %rdi
callq 0x345a
leaq 0x2d3c(%rip), %rdi      # 0x45e2
callq 0x1040
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2a02(%rip), %rdi      # 0x42c5
leaq 0x275e(%rip), %rsi      # 0x4028
leaq 0x2770(%rip), %rcx      # 0x4041
movl $0x55, %edx
callq 0x1050
leaq 0x2b51(%rip), %rdi      # 0x4433
leaq 0x273f(%rip), %rsi      # 0x4028
leaq 0x2751(%rip), %rcx      # 0x4041
movl $0x6a, %edx
callq 0x1050
leaq 0x2c22(%rip), %rdi      # 0x4523
leaq 0x2720(%rip), %rsi      # 0x4028
leaq 0x2732(%rip), %rcx      # 0x4041
movl $0x8b, %edx
callq 0x1050
leaq 0x2c50(%rip), %rdi      # 0x4570
leaq 0x2701(%rip), %rsi      # 0x4028
leaq 0x2713(%rip), %rcx      # 0x4041
movl $0x8c, %edx
callq 0x1050
leaq 0x26c5(%rip), %rdi      # 0x4004
leaq 0x26e2(%rip), %rsi      # 0x4028
leaq 0x26f4(%rip), %rcx      # 0x4041
movl $0x1d, %edx
callq 0x1050
leaq 0x26ee(%rip), %rdi      # 0x404c
leaq 0x26c3(%rip), %rsi      # 0x4028
leaq 0x26d5(%rip), %rcx      # 0x4041
movl $0x1e, %edx
callq 0x1050
leaq 0x26f1(%rip), %rdi      # 0x406e
leaq 0x26a4(%rip), %rsi      # 0x4028
leaq 0x26b6(%rip), %rcx      # 0x4041
movl $0x1f, %edx
callq 0x1050
leaq 0x26fe(%rip), %rdi      # 0x409a
leaq 0x2685(%rip), %rsi      # 0x4028
leaq 0x2697(%rip), %rcx      # 0x4041
movl $0x20, %edx
callq 0x1050
leaq 0x270b(%rip), %rdi      # 0x40c6
leaq 0x2666(%rip), %rsi      # 0x4028
leaq 0x2678(%rip), %rcx      # 0x4041
movl $0x25, %edx
callq 0x1050
leaq 0x2710(%rip), %rdi      # 0x40ea
leaq 0x2647(%rip), %rsi      # 0x4028
leaq 0x2659(%rip), %rcx      # 0x4041
movl $0x26, %edx
callq 0x1050
leaq 0x2713(%rip), %rdi      # 0x410c
leaq 0x2628(%rip), %rsi      # 0x4028
leaq 0x263a(%rip), %rcx      # 0x4041
movl $0x27, %edx
callq 0x1050
leaq 0x2716(%rip), %rdi      # 0x412e
leaq 0x2609(%rip), %rsi      # 0x4028
leaq 0x261b(%rip), %rcx      # 0x4041
movl $0x28, %edx
callq 0x1050
leaq 0x2733(%rip), %rdi      # 0x416a
leaq 0x25ea(%rip), %rsi      # 0x4028
leaq 0x25fc(%rip), %rcx      # 0x4041
movl $0x29, %edx
callq 0x1050
leaq 0x2750(%rip), %rdi      # 0x41a6
leaq 0x25cb(%rip), %rsi      # 0x4028
leaq 0x25dd(%rip), %rcx      # 0x4041
movl $0x2e, %edx
callq 0x1050
leaq 0x2741(%rip), %rdi      # 0x41b6
leaq 0x25ac(%rip), %rsi      # 0x4028
leaq 0x25be(%rip), %rcx      # 0x4041
movl $0x2f, %edx
callq 0x1050
leaq 0x2732(%rip), %rdi      # 0x41c6
leaq 0x258d(%rip), %rsi      # 0x4028
leaq 0x259f(%rip), %rcx      # 0x4041
movl $0x30, %edx
callq 0x1050
leaq 0x275c(%rip), %rdi      # 0x420f
leaq 0x256e(%rip), %rsi      # 0x4028
leaq 0x2580(%rip), %rcx      # 0x4041
movl $0x31, %edx
callq 0x1050
leaq 0x2786(%rip), %rdi      # 0x4258
leaq 0x254f(%rip), %rsi      # 0x4028
leaq 0x2561(%rip), %rcx      # 0x4041
movl $0x33, %edx
callq 0x1050
leaq 0x261b(%rip), %rdi      # 0x410c
leaq 0x2530(%rip), %rsi      # 0x4028
leaq 0x2542(%rip), %rcx      # 0x4041
movl $0x39, %edx
callq 0x1050
leaq 0x2771(%rip), %rdi      # 0x4281
leaq 0x2511(%rip), %rsi      # 0x4028
leaq 0x2523(%rip), %rcx      # 0x4041
movl $0x3c, %edx
callq 0x1050
leaq 0x24d5(%rip), %rdi      # 0x4004
leaq 0x24f2(%rip), %rsi      # 0x4028
leaq 0x2504(%rip), %rcx      # 0x4041
movl $0x3f, %edx
callq 0x1050
leaq 0x24fe(%rip), %rdi      # 0x404c
leaq 0x24d3(%rip), %rsi      # 0x4028
leaq 0x24e5(%rip), %rcx      # 0x4041
movl $0x40, %edx
callq 0x1050
leaq 0x2501(%rip), %rdi      # 0x406e
leaq 0x24b4(%rip), %rsi      # 0x4028
leaq 0x24c6(%rip), %rcx      # 0x4041
movl $0x41, %edx
callq 0x1050
leaq 0x250e(%rip), %rdi      # 0x409a
leaq 0x2495(%rip), %rsi      # 0x4028
leaq 0x24a7(%rip), %rcx      # 0x4041
movl $0x42, %edx
callq 0x1050
leaq 0x251b(%rip), %rdi      # 0x40c6
leaq 0x2476(%rip), %rsi      # 0x4028
leaq 0x2488(%rip), %rcx      # 0x4041
movl $0x4b, %edx
callq 0x1050
leaq 0x26d9(%rip), %rdi      # 0x42a3
leaq 0x2457(%rip), %rsi      # 0x4028
leaq 0x2469(%rip), %rcx      # 0x4041
movl $0x4c, %edx
callq 0x1050
leaq 0x2725(%rip), %rdi      # 0x430e
leaq 0x2438(%rip), %rsi      # 0x4028
leaq 0x244a(%rip), %rcx      # 0x4041
movl $0x5d, %edx
callq 0x1050
leaq 0x2728(%rip), %rdi      # 0x4330
leaq 0x2419(%rip), %rsi      # 0x4028
leaq 0x242b(%rip), %rcx      # 0x4041
movl $0x5e, %edx
callq 0x1050
leaq 0x274d(%rip), %rdi      # 0x4374
leaq 0x23fa(%rip), %rsi      # 0x4028
leaq 0x240c(%rip), %rcx      # 0x4041
movl $0x5f, %edx
callq 0x1050
leaq 0x265d(%rip), %rdi      # 0x42a3
leaq 0x23db(%rip), %rsi      # 0x4028
leaq 0x23ed(%rip), %rcx      # 0x4041
movl $0x63, %edx
callq 0x1050
leaq 0x274c(%rip), %rdi      # 0x43b1
leaq 0x23bc(%rip), %rsi      # 0x4028
leaq 0x23ce(%rip), %rcx      # 0x4041
movl $0x64, %edx
callq 0x1050
leaq 0x2772(%rip), %rdi      # 0x43f6
leaq 0x239d(%rip), %rsi      # 0x4028
leaq 0x23af(%rip), %rcx      # 0x4041
movl $0x65, %edx
callq 0x1050
leaq 0x2469(%rip), %rdi      # 0x410c
leaq 0x237e(%rip), %rsi      # 0x4028
leaq 0x2390(%rip), %rcx      # 0x4041
movl $0x70, %edx
callq 0x1050
leaq 0x27ba(%rip), %rdi      # 0x447c
leaq 0x235f(%rip), %rsi      # 0x4028
leaq 0x2371(%rip), %rcx      # 0x4041
movl $0x76, %edx
callq 0x1050
leaq 0x27be(%rip), %rdi      # 0x449f
leaq 0x2340(%rip), %rsi      # 0x4028
leaq 0x2352(%rip), %rcx      # 0x4041
movl $0x77, %edx
callq 0x1050
leaq 0x27c1(%rip), %rdi      # 0x44c1
leaq 0x2321(%rip), %rsi      # 0x4028
leaq 0x2333(%rip), %rcx      # 0x4041
movl $0x7c, %edx
callq 0x1050
leaq 0x27d3(%rip), %rdi      # 0x44f2
leaq 0x2302(%rip), %rsi      # 0x4028
leaq 0x2314(%rip), %rcx      # 0x4041
movl $0x7d, %edx
callq 0x1050
leaq 0x2783(%rip), %rdi      # 0x44c1
leaq 0x22e3(%rip), %rsi      # 0x4028
leaq 0x22f5(%rip), %rcx      # 0x4041
movl $0x8f, %edx
callq 0x1050
leaq 0x283f(%rip), %rdi      # 0x459c
leaq 0x22c4(%rip), %rsi      # 0x4028
leaq 0x22d6(%rip), %rcx      # 0x4041
movl $0x9a, %edx
callq 0x1050
leaq 0x2844(%rip), %rdi      # 0x45c0
leaq 0x22a5(%rip), %rsi      # 0x4028
leaq 0x22b7(%rip), %rcx      # 0x4041
movl $0x9b, %edx
callq 0x1050
leaq 0x24e6(%rip), %rdi      # 0x4281
leaq 0x2286(%rip), %rsi      # 0x4028
leaq 0x2298(%rip), %rcx      # 0x4041
movl $0x9c, %edx
callq 0x1050
nop