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

  obint *a, *b, *c;
  obstring *str1, *str2;

  /* test machine integer creation and value methods */
  a = obint_new(1024);
  assert(obint_value(a) == 1024);
  b = obint_new(9581085);
  assert(obint_value(b) == 9581085);
  c = obint_new(-999);
  assert(obint_value(c) == -999);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* test string integer creation and value methods */
  str1 = obstring_new("12345");
  a = obint_from_string(str1);
  assert(obint_value(a) == 12345);
  str2 = obint_to_string(a);
  assert(ob_compare((obj *)str1, (obj *)str2) == OB_EQUAL_TO);

  ob_release((obj *)a);
  ob_release((obj *)str1);
  ob_release((obj *)str2);

  str1 = obstring_new("-012345");
  a = obint_from_string(str1);
  ob_release((obj *)str1);
  assert(obint_value(a) == -12345);
  str1 = obstring_new("-12345");
  str2 = obint_to_string(a);
  assert(ob_compare((obj *)str1, (obj *)str2) == OB_EQUAL_TO);

  ob_release((obj *)a);
  ob_release((obj *)str1);
  ob_release((obj *)str2);

  /* test copy method */
  a = obint_new(918394);
  b = obint_copy(a);
  assert(ob_compare((obj *)a, (obj *)b) == OB_EQUAL_TO);
  assert(a != b);
  assert(a->digits != b->digits);

  ob_release((obj *)a);
  ob_release((obj *)b);

  /* test integer zero and negative methods */
  a = obint_new(1948);
  b = obint_new(-1);
  str1 = obstring_new("-0");
  c = obint_from_string(str1);
  ob_release((obj *)str1);

  assert(!obint_is_zero(a));
  assert(!obint_is_zero(b));
  assert(obint_is_zero(c));

  assert(!obint_is_negative(a));
  assert(obint_is_negative(b));
  assert(!obint_is_negative(c));

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* test integer addition */
  a = obint_new(999);
  b = obint_add_primitive(a, 1111);
  assert(obint_value(b) == 2110);
  c = obint_add(a, b);
  assert(obint_value(c) == 2110 + 999);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(-999);
  b = obint_add_primitive(a, 1);
  assert(obint_value(b) == -998);
  ob_release((obj *)b);
  b = obint_add_primitive(a, -1);
  assert(obint_value(b) == -1000);
  ob_release((obj *)b);
  b = obint_new(1000);
  c = obint_add(a, b);
  assert(obint_value(c) == 1);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* test integer subtraction */
  a = obint_new(999);
  b = obint_subtract_primitive(a, 1111);
  assert(obint_value(b) == -112);
  c = obint_subtract(a, b);
  assert(obint_value(c) == 999 + 112);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(-999);
  b = obint_subtract_primitive(a, 1);
  assert(obint_value(b) == -1000);
  ob_release((obj *)b);
  b = obint_subtract_primitive(a, -1);
  assert(obint_value(b) == -998);
  ob_release((obj *)b);
  b = obint_new(1000);
  c = obint_subtract(a, b);
  assert(obint_value(c) == -1999);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* test integer multiplication (size under digit limit for explicit integer
   * arithmetic) */
  a = obint_new(999);
  b = obint_multiply_primitive(a, -999);
  assert(obint_value(b) == 999*-999);
  c = obint_multiply(a, b);
  assert(obint_value(c) == 999*999*-999);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(-1928491);
  b = obint_multiply_primitive(a, -58);
  assert(obint_value(b) == -1928491*-58);
  ob_release((obj *)b);
  b = obint_new(2);
  c = obint_multiply(a, b);
  assert(obint_value(c) == -1928491*2);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(29458);
  b = obint_multiply_primitive(a, 0);
  assert(obint_is_zero(b) != 0);

  ob_release((obj *)a);
  ob_release((obj *)b);

  /* test integer division (size under digit limit for explicit integer
   * arithmetic) */
  a = obint_new(999);
  b = obint_divide_primitive(a, -999);
  assert(obint_value(b) == -1);
  c = obint_divide_primitive(a, 33);
  assert(obint_value(c) == 999/33);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(1940248);
  b = obint_divide_primitive(a, -2848);
  assert(obint_value(b) == 1940248/(-2848));
  c = obint_divide(a, b);
  assert(obint_value(c) == 1940248/(1940248/(-2848)));

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* test integer modulus (size under digit limit for explicit integer
   * arithmetic) */
  a = obint_new(999);
  b = obint_mod_primitive(a, -999);
  assert(obint_value(b) == 999%(-999));
  c = obint_mod_primitive(a, 33);
  assert(obint_value(c) == 999%33);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(1940248);
  b = obint_mod_primitive(a, -2848);
  assert(obint_value(b) == 1940248%(-2848));
  c = obint_mod(a, b);
  assert(obint_value(c) == 1940248%(1940248%(-2848)));

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* set digit limit for integer arithmetic low, for test purposes */
  obint_set_max_digits(2);

  /* test integer multiplication (size over digit limit for explicit integer
   * arithmetic) */
  a = obint_new(999);
  b = obint_multiply_primitive(a, -999);
  assert(obint_value(b) == 999*-999);
  c = obint_multiply(a, b);
  assert(obint_value(c) == 999*999*-999);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(-1928491);
  b = obint_multiply_primitive(a, -58);
  assert(obint_value(b) == -1928491*-58);
  ob_release((obj *)b);
  b = obint_new(2);
  c = obint_multiply(a, b);
  assert(obint_value(c) == -1928491*2);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(29458);
  b = obint_multiply_primitive(a, 0);
  assert(obint_is_zero(b) != 0);

  ob_release((obj *)a);
  ob_release((obj *)b);

  /* test integer division (size under digit limit for explicit integer
   * arithmetic) */
  a = obint_new(999);
  b = obint_divide_primitive(a, -999);
  assert(obint_value(b) == -1);
  c = obint_divide_primitive(a, 33);
  assert(obint_value(c) == 999/33);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(1940248);
  b = obint_divide_primitive(a, -2848);
  assert(obint_value(b) == 1940248/(-2848));
  c = obint_divide(a, b);
  assert(obint_value(c) == 1940248/(1940248/(-2848)));

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  /* test integer modulus (size over digit limit for explicit integer
   * arithmetic) */
  a = obint_new(999);
  b = obint_mod_primitive(a, -999);
  assert(obint_value(b) == 999%(-999));
  c = obint_mod_primitive(a, 33);
  assert(obint_value(c) == 999%33);

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

  a = obint_new(1940248);
  b = obint_mod_primitive(a, -2848);
  assert(obint_value(b) == 1940248%(-2848));
  c = obint_mod(a, b);
  assert(obint_value(c) == 1940248%(1940248%(-2848)));

  ob_release((obj *)a);
  ob_release((obj *)b);
  ob_release((obj *)c);

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

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movl $0x400, %edi            # imm = 0x400
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
callq 0x23fd
cmpq $0x400, %rax            # imm = 0x400
jne 0x1cec
movl $0x92321d, %edi         # imm = 0x92321D
callq 0x22e0
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x92321d, %rax         # imm = 0x92321D
jne 0x1d08
movq $-0x3e7, %rdi           # imm = 0xFC19
callq 0x22e0
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3e7, %rax           # imm = 0xFC19
jne 0x1d24
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
leaq 0x3d58(%rip), %rdi      # 0x5080
callq 0x36e8
movq %rax, %rbx
movq %rax, %rdi
callq 0x2472
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x3039, %rax           # imm = 0x3039
jne 0x1d40
movq %r14, %rdi
callq 0x25ad
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4bc7
testb %al, %al
jne 0x1d5c
movq %r14, %rdi
callq 0x4c7e
movq %rbx, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
leaq 0x3d2e(%rip), %rdi      # 0x50ba
callq 0x36e8
movq %rax, %r14
movq %rax, %rdi
callq 0x2472
movq %rax, %rbx
movq %r14, %rdi
callq 0x4c7e
movq %rbx, %rdi
callq 0x23fd
cmpq $-0x3039, %rax          # imm = 0xCFC7
jne 0x1d78
leaq 0x3d12(%rip), %rdi      # 0x50d4
callq 0x36e8
movq %rax, %r14
movq %rbx, %rdi
callq 0x25ad
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x4bc7
testb %al, %al
jne 0x1d94
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0xe037a, %edi          # imm = 0xE037A
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
callq 0x2651
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4bc7
testb %al, %al
jne 0x1db0
cmpq %r14, %rbx
je 0x1dcc
movq 0x10(%rbx), %rax
cmpq 0x10(%r14), %rax
je 0x1de8
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movl $0x79c, %edi            # imm = 0x79C
callq 0x22e0
movq %rax, %rbx
pushq $-0x1
popq %rdi
callq 0x22e0
movq %rax, %r14
leaq 0x3cb6(%rip), %rdi      # 0x5127
callq 0x36e8
movq %rax, %r12
movq %rax, %rdi
callq 0x2472
movq %rax, %r15
movq %r12, %rdi
callq 0x4c7e
movq %rbx, %rdi
callq 0x256b
testb %al, %al
jne 0x1e04
movq %r14, %rdi
callq 0x256b
testb %al, %al
jne 0x1e20
movq %r15, %rdi
callq 0x256b
testb %al, %al
je 0x1e3c
movq %rbx, %rdi
callq 0x26b7
testb %al, %al
jne 0x1e58
movq %r14, %rdi
callq 0x26b7
testb %al, %al
je 0x1e74
movq %r15, %rdi
callq 0x26b7
testb %al, %al
jne 0x1e90
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movl $0x457, %esi            # imm = 0x457
movq %rax, %rdi
callq 0x298c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x83e, %rax            # imm = 0x83E
jne 0x1eac
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26e4
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0xc25, %rax            # imm = 0xC25
jne 0x1ec8
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movq $-0x3e7, %rdi           # imm = 0xFC19
callq 0x22e0
movq %rax, %rbx
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x298c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3e6, %rax           # imm = 0xFC1A
jne 0x1ee4
movq %r14, %rdi
callq 0x4c7e
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0x298c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3e8, %rax           # imm = 0xFC18
jne 0x1f00
movq %r14, %rdi
callq 0x4c7e
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x22e0
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x26e4
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x1, %rax
jne 0x1f19
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movl $0x457, %esi            # imm = 0x457
movq %rax, %rdi
callq 0x2aa9
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x70, %rax
jne 0x1f32
movq %rbx, %rdi
movq %r14, %rsi
callq 0x29e3
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x457, %rax            # imm = 0x457
jne 0x1f4b
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movq $-0x3e7, %rdi           # imm = 0xFC19
callq 0x22e0
movq %rax, %rbx
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0x2aa9
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3e8, %rax           # imm = 0xFC18
jne 0x1f64
movq %r14, %rdi
callq 0x4c7e
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0x2aa9
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3e6, %rax           # imm = 0xFC1A
jne 0x1f7d
movq %r14, %rdi
callq 0x4c7e
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x22e0
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x29e3
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0x7cf, %rax           # imm = 0xF831
jne 0x1f9a
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x2d6c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0xf3a71, %rax         # imm = 0xFFF0C58F
jne 0x1fb9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2b00
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3b6d0ef7, %rax      # imm = 0xC492F109
jne 0x1fd8
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movq $-0x1d6d2b, %rdi        # imm = 0xFFE292D5
callq 0x22e0
movq %rax, %rbx
pushq $-0x3a
popq %rsi
movq %rax, %rdi
callq 0x2d6c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x6aabbbe, %rax        # imm = 0x6AABBBE
jne 0x1ff7
movq %r14, %rdi
callq 0x4c7e
pushq $0x2
popq %rdi
callq 0x22e0
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2b00
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3ada56, %rax        # imm = 0xFFC525AA
jne 0x2016
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x7312, %edi           # imm = 0x7312
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
xorl %esi, %esi
callq 0x2d6c
movq %rax, %r14
movq %rax, %rdi
callq 0x256b
testb %al, %al
je 0x2035
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x310f
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x1, %rax
jne 0x2054
pushq $0x21
popq %rsi
movq %rbx, %rdi
callq 0x310f
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x1e, %rax
jne 0x2073
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x310f
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x2a9, %rax           # imm = 0xFD57
jne 0x2092
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2dc3
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0xb21, %rax           # imm = 0xF4DF
jne 0x20b1
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x323d
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
testq %rax, %rax
jne 0x20d0
pushq $0x21
popq %rsi
movq %rbx, %rdi
callq 0x323d
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x9, %rax
jne 0x20ef
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x323d
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x2f8, %rax            # imm = 0x2F8
jne 0x210e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x318a
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x2d8, %rax            # imm = 0x2D8
jne 0x212d
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
pushq $0x2
popq %rdi
callq 0x36d7
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x2d6c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0xf3a71, %rax         # imm = 0xFFF0C58F
jne 0x214c
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2b00
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3b6d0ef7, %rax      # imm = 0xC492F109
jne 0x216b
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movq $-0x1d6d2b, %rdi        # imm = 0xFFE292D5
callq 0x22e0
movq %rax, %rbx
pushq $-0x3a
popq %rsi
movq %rax, %rdi
callq 0x2d6c
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x6aabbbe, %rax        # imm = 0x6AABBBE
jne 0x218a
movq %r14, %rdi
callq 0x4c7e
pushq $0x2
popq %rdi
callq 0x22e0
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2b00
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0x3ada56, %rax        # imm = 0xFFC525AA
jne 0x21a9
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x7312, %edi           # imm = 0x7312
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
xorl %esi, %esi
callq 0x2d6c
movq %rax, %r14
movq %rax, %rdi
callq 0x256b
testb %al, %al
je 0x21c8
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x310f
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x1, %rax
jne 0x21e7
pushq $0x21
popq %rsi
movq %rbx, %rdi
callq 0x310f
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x1e, %rax
jne 0x2206
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x310f
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $-0x2a9, %rax           # imm = 0xFD57
jne 0x2225
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2dc3
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $-0xb21, %rax           # imm = 0xF4DF
jne 0x2244
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x323d
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
testq %rax, %rax
jne 0x2263
pushq $0x21
popq %rsi
movq %rbx, %rdi
callq 0x323d
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x9, %rax
jne 0x2282
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x22e0
movq %rax, %rbx
movq %rax, %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x323d
movq %rax, %r14
movq %rax, %rdi
callq 0x23fd
cmpq $0x2f8, %rax            # imm = 0x2F8
jne 0x22a1
movq %rbx, %rdi
movq %r14, %rsi
callq 0x318a
movq %rax, %r15
movq %rax, %rdi
callq 0x23fd
cmpq $0x2d8, %rax            # imm = 0x2D8
jne 0x22c0
movq %rbx, %rdi
callq 0x4c7e
movq %r14, %rdi
callq 0x4c7e
movq %r15, %rdi
callq 0x4c7e
leaq 0x3715(%rip), %rdi      # 0x53ee
callq 0x1070
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x3311(%rip), %rdi      # 0x5004
leaq 0x3321(%rip), %rsi      # 0x501b
leaq 0x3331(%rip), %rcx      # 0x5032
pushq $0x16
jmp 0x1f94
leaq 0x332e(%rip), %rdi      # 0x503d
leaq 0x3305(%rip), %rsi      # 0x501b
leaq 0x3315(%rip), %rcx      # 0x5032
pushq $0x18
jmp 0x1f94
leaq 0x332c(%rip), %rdi      # 0x5057
leaq 0x32e9(%rip), %rsi      # 0x501b
leaq 0x32f9(%rip), %rcx      # 0x5032
pushq $0x1a
jmp 0x1f94
leaq 0x3327(%rip), %rdi      # 0x506e
leaq 0x32cd(%rip), %rsi      # 0x501b
leaq 0x32dd(%rip), %rcx      # 0x5032
pushq $0x23
jmp 0x1f94
leaq 0x3323(%rip), %rdi      # 0x5086
leaq 0x32b1(%rip), %rsi      # 0x501b
leaq 0x32c1(%rip), %rcx      # 0x5032
pushq $0x25
jmp 0x1f94
leaq 0x3343(%rip), %rdi      # 0x50c2
leaq 0x3295(%rip), %rsi      # 0x501b
leaq 0x32a5(%rip), %rcx      # 0x5032
pushq $0x2e
jmp 0x1f94
leaq 0x32eb(%rip), %rdi      # 0x5086
leaq 0x3279(%rip), %rsi      # 0x501b
leaq 0x3289(%rip), %rcx      # 0x5032
pushq $0x31
jmp 0x1f94
leaq 0x3324(%rip), %rdi      # 0x50db
leaq 0x325d(%rip), %rsi      # 0x501b
leaq 0x326d(%rip), %rcx      # 0x5032
pushq $0x3a
jmp 0x1f94
leaq 0x3336(%rip), %rdi      # 0x5109
leaq 0x3241(%rip), %rsi      # 0x501b
leaq 0x3251(%rip), %rcx      # 0x5032
pushq $0x3b
jmp 0x1f94
leaq 0x3321(%rip), %rdi      # 0x5110
leaq 0x3225(%rip), %rsi      # 0x501b
leaq 0x3235(%rip), %rcx      # 0x5032
pushq $0x3c
jmp 0x1f94
leaq 0x331f(%rip), %rdi      # 0x512a
leaq 0x3209(%rip), %rsi      # 0x501b
leaq 0x3219(%rip), %rcx      # 0x5032
pushq $0x48
jmp 0x1f94
leaq 0x3315(%rip), %rdi      # 0x513c
leaq 0x31ed(%rip), %rsi      # 0x501b
leaq 0x31fd(%rip), %rcx      # 0x5032
pushq $0x49
jmp 0x1f94
leaq 0x330b(%rip), %rdi      # 0x514e
leaq 0x31d1(%rip), %rsi      # 0x501b
leaq 0x31e1(%rip), %rcx      # 0x5032
pushq $0x4a
jmp 0x1f94
leaq 0x3300(%rip), %rdi      # 0x515f
leaq 0x31b5(%rip), %rsi      # 0x501b
leaq 0x31c5(%rip), %rcx      # 0x5032
pushq $0x4c
jmp 0x1f94
leaq 0x32fa(%rip), %rdi      # 0x5175
leaq 0x3199(%rip), %rsi      # 0x501b
leaq 0x31a9(%rip), %rcx      # 0x5032
pushq $0x4d
jmp 0x1f94
leaq 0x32f3(%rip), %rdi      # 0x518a
leaq 0x317d(%rip), %rsi      # 0x501b
leaq 0x318d(%rip), %rcx      # 0x5032
pushq $0x4e
jmp 0x1f94
leaq 0x32ed(%rip), %rdi      # 0x51a0
leaq 0x3161(%rip), %rsi      # 0x501b
leaq 0x3171(%rip), %rcx      # 0x5032
pushq $0x57
jmp 0x1f94
leaq 0x32e8(%rip), %rdi      # 0x51b7
leaq 0x3145(%rip), %rsi      # 0x501b
leaq 0x3155(%rip), %rcx      # 0x5032
pushq $0x59
jmp 0x1f94
leaq 0x32e9(%rip), %rdi      # 0x51d4
leaq 0x3129(%rip), %rsi      # 0x501b
leaq 0x3139(%rip), %rcx      # 0x5032
pushq $0x61
jmp 0x1f94
leaq 0x32e4(%rip), %rdi      # 0x51eb
leaq 0x310d(%rip), %rsi      # 0x501b
leaq 0x311d(%rip), %rcx      # 0x5032
pushq $0x64
jmp 0x1f94
leaq 0x32e3(%rip), %rdi      # 0x5203
leaq 0x30f4(%rip), %rsi      # 0x501b
leaq 0x3104(%rip), %rcx      # 0x5032
pushq $0x68
jmp 0x1f94
leaq 0x32de(%rip), %rdi      # 0x5217
leaq 0x30db(%rip), %rsi      # 0x501b
leaq 0x30eb(%rip), %rcx      # 0x5032
pushq $0x71
jmp 0x1f94
leaq 0x32dc(%rip), %rdi      # 0x522e
leaq 0x30c2(%rip), %rsi      # 0x501b
leaq 0x30d2(%rip), %rcx      # 0x5032
pushq $0x73
jmp 0x1f94
leaq 0x3280(%rip), %rdi      # 0x51eb
leaq 0x30a9(%rip), %rsi      # 0x501b
leaq 0x30b9(%rip), %rcx      # 0x5032
pushq $0x7b
jmp 0x1f94
leaq 0x3250(%rip), %rdi      # 0x51d4
leaq 0x3090(%rip), %rsi      # 0x501b
leaq 0x30a0(%rip), %rcx      # 0x5032
pushq $0x7e
popq %rdx
callq 0x10a0
leaq 0x32a9(%rip), %rdi      # 0x524a
leaq 0x3073(%rip), %rsi      # 0x501b
leaq 0x3083(%rip), %rcx      # 0x5032
movl $0x82, %edx
callq 0x10a0
leaq 0x32a2(%rip), %rdi      # 0x5262
leaq 0x3054(%rip), %rsi      # 0x501b
leaq 0x3064(%rip), %rcx      # 0x5032
movl $0x8c, %edx
callq 0x10a0
leaq 0x329e(%rip), %rdi      # 0x527d
leaq 0x3035(%rip), %rsi      # 0x501b
leaq 0x3045(%rip), %rcx      # 0x5032
movl $0x8e, %edx
callq 0x10a0
leaq 0x329e(%rip), %rdi      # 0x529c
leaq 0x3016(%rip), %rsi      # 0x501b
leaq 0x3026(%rip), %rcx      # 0x5032
movl $0x96, %edx
callq 0x10a0
leaq 0x329e(%rip), %rdi      # 0x52bb
leaq 0x2ff7(%rip), %rsi      # 0x501b
leaq 0x3007(%rip), %rcx      # 0x5032
movl $0x9a, %edx
callq 0x10a0
leaq 0x329c(%rip), %rdi      # 0x52d8
leaq 0x2fd8(%rip), %rsi      # 0x501b
leaq 0x2fe8(%rip), %rcx      # 0x5032
movl $0xa2, %edx
callq 0x10a0
leaq 0x3293(%rip), %rdi      # 0x52ee
leaq 0x2fb9(%rip), %rsi      # 0x501b
leaq 0x2fc9(%rip), %rcx      # 0x5032
movl $0xab, %edx
callq 0x10a0
leaq 0x3289(%rip), %rdi      # 0x5303
leaq 0x2f9a(%rip), %rsi      # 0x501b
leaq 0x2faa(%rip), %rcx      # 0x5032
movl $0xad, %edx
callq 0x10a0
leaq 0x3283(%rip), %rdi      # 0x531c
leaq 0x2f7b(%rip), %rsi      # 0x501b
leaq 0x2f8b(%rip), %rcx      # 0x5032
movl $0xb5, %edx
callq 0x10a0
leaq 0x3286(%rip), %rdi      # 0x533e
leaq 0x2f5c(%rip), %rsi      # 0x501b
leaq 0x2f6c(%rip), %rcx      # 0x5032
movl $0xb7, %edx
callq 0x10a0
leaq 0x3293(%rip), %rdi      # 0x536a
leaq 0x2f3d(%rip), %rsi      # 0x501b
leaq 0x2f4d(%rip), %rcx      # 0x5032
movl $0xc1, %edx
callq 0x10a0
leaq 0x3291(%rip), %rdi      # 0x5387
leaq 0x2f1e(%rip), %rsi      # 0x501b
leaq 0x2f2e(%rip), %rcx      # 0x5032
movl $0xc3, %edx
callq 0x10a0
leaq 0x328b(%rip), %rdi      # 0x53a0
leaq 0x2eff(%rip), %rsi      # 0x501b
leaq 0x2f0f(%rip), %rcx      # 0x5032
movl $0xcb, %edx
callq 0x10a0
leaq 0x328e(%rip), %rdi      # 0x53c2
leaq 0x2ee0(%rip), %rsi      # 0x501b
leaq 0x2ef0(%rip), %rcx      # 0x5032
movl $0xcd, %edx
callq 0x10a0
leaq 0x310f(%rip), %rdi      # 0x5262
leaq 0x2ec1(%rip), %rsi      # 0x501b
leaq 0x2ed1(%rip), %rcx      # 0x5032
movl $0xda, %edx
callq 0x10a0
leaq 0x310b(%rip), %rdi      # 0x527d
leaq 0x2ea2(%rip), %rsi      # 0x501b
leaq 0x2eb2(%rip), %rcx      # 0x5032
movl $0xdc, %edx
callq 0x10a0
leaq 0x310b(%rip), %rdi      # 0x529c
leaq 0x2e83(%rip), %rsi      # 0x501b
leaq 0x2e93(%rip), %rcx      # 0x5032
movl $0xe4, %edx
callq 0x10a0
leaq 0x310b(%rip), %rdi      # 0x52bb
leaq 0x2e64(%rip), %rsi      # 0x501b
leaq 0x2e74(%rip), %rcx      # 0x5032
movl $0xe8, %edx
callq 0x10a0
leaq 0x3109(%rip), %rdi      # 0x52d8
leaq 0x2e45(%rip), %rsi      # 0x501b
leaq 0x2e55(%rip), %rcx      # 0x5032
movl $0xf0, %edx
callq 0x10a0
leaq 0x3100(%rip), %rdi      # 0x52ee
leaq 0x2e26(%rip), %rsi      # 0x501b
leaq 0x2e36(%rip), %rcx      # 0x5032
movl $0xf9, %edx
callq 0x10a0
leaq 0x30f6(%rip), %rdi      # 0x5303
leaq 0x2e07(%rip), %rsi      # 0x501b
leaq 0x2e17(%rip), %rcx      # 0x5032
movl $0xfb, %edx
callq 0x10a0
leaq 0x30f0(%rip), %rdi      # 0x531c
leaq 0x2de8(%rip), %rsi      # 0x501b
leaq 0x2df8(%rip), %rcx      # 0x5032
movl $0x103, %edx            # imm = 0x103
callq 0x10a0
leaq 0x30f3(%rip), %rdi      # 0x533e
leaq 0x2dc9(%rip), %rsi      # 0x501b
leaq 0x2dd9(%rip), %rcx      # 0x5032
movl $0x105, %edx            # imm = 0x105
callq 0x10a0
leaq 0x3100(%rip), %rdi      # 0x536a
leaq 0x2daa(%rip), %rsi      # 0x501b
leaq 0x2dba(%rip), %rcx      # 0x5032
movl $0x10f, %edx            # imm = 0x10F
callq 0x10a0
leaq 0x30fe(%rip), %rdi      # 0x5387
leaq 0x2d8b(%rip), %rsi      # 0x501b
leaq 0x2d9b(%rip), %rcx      # 0x5032
movl $0x111, %edx            # imm = 0x111
callq 0x10a0
leaq 0x30f8(%rip), %rdi      # 0x53a0
leaq 0x2d6c(%rip), %rsi      # 0x501b
leaq 0x2d7c(%rip), %rcx      # 0x5032
movl $0x119, %edx            # imm = 0x119
callq 0x10a0
leaq 0x30fb(%rip), %rdi      # 0x53c2
leaq 0x2d4d(%rip), %rsi      # 0x501b
leaq 0x2d5d(%rip), %rcx      # 0x5032
movl $0x11b, %edx            # imm = 0x11B
callq 0x10a0
nop