// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl $0x0, -0x4(%rbp)
movl $0x400, %edi            # imm = 0x400
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x25e0
cmpq $0x400, %rax            # imm = 0x400
jne 0x12a0
jmp 0x12bf
leaq 0x5d5d(%rip), %rdi      # 0x7004
leaq 0x5d6d(%rip), %rsi      # 0x701b
movl $0x16, %edx
leaq 0x5d78(%rip), %rcx      # 0x7032
callq 0x10a0
movl $0x92321d, %edi         # imm = 0x92321D
callq 0x2400
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x92321d, %rax         # imm = 0x92321D
jne 0x12e0
jmp 0x12ff
leaq 0x5d56(%rip), %rdi      # 0x703d
leaq 0x5d2d(%rip), %rsi      # 0x701b
movl $0x18, %edx
leaq 0x5d38(%rip), %rcx      # 0x7032
callq 0x10a0
movq $-0x3e7, %rdi           # imm = 0xFC19
callq 0x2400
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0x3e7, %rax           # imm = 0xFC19
jne 0x1322
jmp 0x1341
leaq 0x5d2e(%rip), %rdi      # 0x7057
leaq 0x5ceb(%rip), %rsi      # 0x701b
movl $0x1a, %edx
leaq 0x5cf6(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
leaq 0x5d1d(%rip), %rdi      # 0x7080
callq 0x4390
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x26f0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x25e0
cmpq $0x3039, %rax           # imm = 0x3039
jne 0x138c
jmp 0x13ab
leaq 0x5cdb(%rip), %rdi      # 0x706e
leaq 0x5c81(%rip), %rsi      # 0x701b
movl $0x23, %edx
leaq 0x5c8c(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x28c0
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x6360
movsbl %al, %eax
cmpl $0x0, %eax
jne 0x13cf
jmp 0x13ee
leaq 0x5cb0(%rip), %rdi      # 0x7086
leaq 0x5c3e(%rip), %rsi      # 0x701b
movl $0x25, %edx
leaq 0x5c49(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x28(%rbp), %rdi
callq 0x6480
movq -0x30(%rbp), %rdi
callq 0x6480
leaq 0x5caa(%rip), %rdi      # 0x70ba
callq 0x4390
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x26f0
movq %rax, -0x10(%rbp)
movq -0x28(%rbp), %rdi
callq 0x6480
movq -0x10(%rbp), %rdi
callq 0x25e0
cmpq $-0x3039, %rax          # imm = 0xCFC7
jne 0x1442
jmp 0x1461
leaq 0x5c79(%rip), %rdi      # 0x70c2
leaq 0x5bcb(%rip), %rsi      # 0x701b
movl $0x2e, %edx
leaq 0x5bd6(%rip), %rcx      # 0x7032
callq 0x10a0
leaq 0x5c6c(%rip), %rdi      # 0x70d4
callq 0x4390
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x28c0
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x6360
movsbl %al, %eax
cmpl $0x0, %eax
jne 0x1495
jmp 0x14b4
leaq 0x5bea(%rip), %rdi      # 0x7086
leaq 0x5b78(%rip), %rsi      # 0x701b
movl $0x31, %edx
leaq 0x5b83(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x28(%rbp), %rdi
callq 0x6480
movq -0x30(%rbp), %rdi
callq 0x6480
movl $0xe037a, %edi          # imm = 0xE037A
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x29c0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x6360
movsbl %al, %eax
cmpl $0x0, %eax
jne 0x1501
jmp 0x1520
leaq 0x5bd3(%rip), %rdi      # 0x70db
leaq 0x5b0c(%rip), %rsi      # 0x701b
movl $0x3a, %edx
leaq 0x5b17(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0x152c
jmp 0x154b
leaq 0x5bd6(%rip), %rdi      # 0x7109
leaq 0x5ae1(%rip), %rsi      # 0x701b
movl $0x3b, %edx
leaq 0x5aec(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x155f
jmp 0x157e
leaq 0x5baa(%rip), %rdi      # 0x7110
leaq 0x5aae(%rip), %rsi      # 0x701b
movl $0x3c, %edx
leaq 0x5ab9(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x79c, %edi            # imm = 0x79C
callq 0x2400
movq %rax, -0x10(%rbp)
movq $-0x1, %rdi
callq 0x2400
movq %rax, -0x18(%rbp)
leaq 0x5b72(%rip), %rdi      # 0x7127
callq 0x4390
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x26f0
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
callq 0x6480
movq -0x10(%rbp), %rdi
callq 0x2850
cmpb $0x0, %al
jne 0x15e3
jmp 0x1602
leaq 0x5b40(%rip), %rdi      # 0x712a
leaq 0x5a2a(%rip), %rsi      # 0x701b
movl $0x48, %edx
leaq 0x5a35(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x2850
cmpb $0x0, %al
jne 0x1611
jmp 0x1630
leaq 0x5b24(%rip), %rdi      # 0x713c
leaq 0x59fc(%rip), %rsi      # 0x701b
movl $0x49, %edx
leaq 0x5a07(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x20(%rbp), %rdi
callq 0x2850
cmpb $0x0, %al
je 0x163f
jmp 0x165e
leaq 0x5b08(%rip), %rdi      # 0x714e
leaq 0x59ce(%rip), %rsi      # 0x701b
movl $0x4a, %edx
leaq 0x59d9(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x2a70
cmpb $0x0, %al
jne 0x166d
jmp 0x168c
leaq 0x5aeb(%rip), %rdi      # 0x715f
leaq 0x59a0(%rip), %rsi      # 0x701b
movl $0x4c, %edx
leaq 0x59ab(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x2a70
cmpb $0x0, %al
je 0x169b
jmp 0x16ba
leaq 0x5ad3(%rip), %rdi      # 0x7175
leaq 0x5972(%rip), %rsi      # 0x701b
movl $0x4d, %edx
leaq 0x597d(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x20(%rbp), %rdi
callq 0x2a70
cmpb $0x0, %al
jne 0x16c9
jmp 0x16e8
leaq 0x5aba(%rip), %rdi      # 0x718a
leaq 0x5944(%rip), %rsi      # 0x701b
movl $0x4e, %edx
leaq 0x594f(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x457, %esi            # imm = 0x457
callq 0x3020
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x83e, %rax            # imm = 0x83E
jne 0x1736
jmp 0x1755
leaq 0x5a63(%rip), %rdi      # 0x71a0
leaq 0x58d7(%rip), %rsi      # 0x701b
movl $0x57, %edx
leaq 0x58e2(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x2ac0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0xc25, %rax            # imm = 0xC25
jne 0x1779
jmp 0x1798
leaq 0x5a37(%rip), %rdi      # 0x71b7
leaq 0x5894(%rip), %rsi      # 0x701b
movl $0x59, %edx
leaq 0x589f(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movq $-0x3e7, %rdi           # imm = 0xFC19
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x3020
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x3e6, %rax           # imm = 0xFC1A
jne 0x17e8
jmp 0x1807
leaq 0x59e5(%rip), %rdi      # 0x71d4
leaq 0x5825(%rip), %rsi      # 0x701b
movl $0x61, %edx
leaq 0x5830(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x10(%rbp), %rdi
movq $-0x1, %rsi
callq 0x3020
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x3e8, %rax           # imm = 0xFC18
jne 0x1837
jmp 0x1856
leaq 0x59ad(%rip), %rdi      # 0x71eb
leaq 0x57d6(%rip), %rsi      # 0x701b
movl $0x64, %edx
leaq 0x57e1(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x2400
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x2ac0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x1, %rax
jne 0x188f
jmp 0x18ae
leaq 0x596d(%rip), %rdi      # 0x7203
leaq 0x577e(%rip), %rsi      # 0x701b
movl $0x68, %edx
leaq 0x5789(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x457, %esi            # imm = 0x457
callq 0x31f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x70, %rax
jne 0x18fa
jmp 0x1919
leaq 0x5916(%rip), %rdi      # 0x7217
leaq 0x5713(%rip), %rsi      # 0x701b
movl $0x71, %edx
leaq 0x571e(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3090
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x457, %rax            # imm = 0x457
jne 0x193d
jmp 0x195c
leaq 0x58ea(%rip), %rdi      # 0x722e
leaq 0x56d0(%rip), %rsi      # 0x701b
movl $0x73, %edx
leaq 0x56db(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movq $-0x3e7, %rdi           # imm = 0xFC19
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x31f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x3e8, %rax           # imm = 0xFC18
jne 0x19ac
jmp 0x19cb
leaq 0x5838(%rip), %rdi      # 0x71eb
leaq 0x5661(%rip), %rsi      # 0x701b
movl $0x7b, %edx
leaq 0x566c(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x10(%rbp), %rdi
movq $-0x1, %rsi
callq 0x31f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x3e6, %rax           # imm = 0xFC1A
jne 0x19fb
jmp 0x1a1a
leaq 0x57d2(%rip), %rdi      # 0x71d4
leaq 0x5612(%rip), %rsi      # 0x701b
movl $0x7e, %edx
leaq 0x561d(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x3e8, %edi            # imm = 0x3E8
callq 0x2400
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3090
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0x7cf, %rax           # imm = 0xF831
jne 0x1a55
jmp 0x1a74
leaq 0x57ee(%rip), %rdi      # 0x724a
leaq 0x55b8(%rip), %rsi      # 0x701b
movl $0x82, %edx
leaq 0x55c3(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x35b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0xf3a71, %rax         # imm = 0xFFF0C58F
jne 0x1ac4
jmp 0x1ae3
leaq 0x5797(%rip), %rdi      # 0x7262
leaq 0x5549(%rip), %rsi      # 0x701b
movl $0x8c, %edx
leaq 0x5554(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3260
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0x3b6d0ef7, %rax      # imm = 0xC492F109
jne 0x1b07
jmp 0x1b26
leaq 0x576f(%rip), %rdi      # 0x727d
leaq 0x5506(%rip), %rsi      # 0x701b
movl $0x8e, %edx
leaq 0x5511(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movq $-0x1d6d2b, %rdi        # imm = 0xFFE292D5
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3a, %rsi
callq 0x35b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x6aabbbe, %rax        # imm = 0x6AABBBE
jne 0x1b78
jmp 0x1b97
leaq 0x571d(%rip), %rdi      # 0x729c
leaq 0x5495(%rip), %rsi      # 0x701b
movl $0x96, %edx
leaq 0x54a0(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x2, %edi
callq 0x2400
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3260
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0x3ada56, %rax        # imm = 0xFFC525AA
jne 0x1bd2
jmp 0x1bf1
leaq 0x56e2(%rip), %rdi      # 0x72bb
leaq 0x543b(%rip), %rsi      # 0x701b
movl $0x9a, %edx
leaq 0x5446(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x7312, %edi           # imm = 0x7312
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x35b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2850
movzbl %al, %eax
cmpl $0x0, %eax
je 0x1c3e
jmp 0x1c5d
leaq 0x5693(%rip), %rdi      # 0x72d8
leaq 0x53cf(%rip), %rsi      # 0x701b
movl $0xa2, %edx
leaq 0x53da(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x3b20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x1, %rax
jne 0x1ca2
jmp 0x1cc1
leaq 0x5645(%rip), %rdi      # 0x72ee
leaq 0x536b(%rip), %rsi      # 0x701b
movl $0xab, %edx
leaq 0x5376(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movl $0x21, %esi
callq 0x3b20
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x1e, %rax
jne 0x1ce4
jmp 0x1d03
leaq 0x5618(%rip), %rdi      # 0x7303
leaq 0x5329(%rip), %rsi      # 0x701b
movl $0xad, %edx
leaq 0x5334(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x3b20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x2a9, %rax           # imm = 0xFD57
jne 0x1d53
jmp 0x1d72
leaq 0x55c2(%rip), %rdi      # 0x731c
leaq 0x52ba(%rip), %rsi      # 0x701b
movl $0xb5, %edx
leaq 0x52c5(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3620
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0xb21, %rax           # imm = 0xF4DF
jne 0x1d96
jmp 0x1db5
leaq 0x55a1(%rip), %rdi      # 0x733e
leaq 0x5277(%rip), %rsi      # 0x701b
movl $0xb7, %edx
leaq 0x5282(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x3ca0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x0, %rax
jne 0x1e03
jmp 0x1e22
leaq 0x5560(%rip), %rdi      # 0x736a
leaq 0x520a(%rip), %rsi      # 0x701b
movl $0xc1, %edx
leaq 0x5215(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movl $0x21, %esi
callq 0x3ca0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x9, %rax
jne 0x1e45
jmp 0x1e64
leaq 0x553b(%rip), %rdi      # 0x7387
leaq 0x51c8(%rip), %rsi      # 0x701b
movl $0xc3, %edx
leaq 0x51d3(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x3ca0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x2f8, %rax            # imm = 0x2F8
jne 0x1eb4
jmp 0x1ed3
leaq 0x54e5(%rip), %rdi      # 0x73a0
leaq 0x5159(%rip), %rsi      # 0x701b
movl $0xcb, %edx
leaq 0x5164(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3bc0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x2d8, %rax            # imm = 0x2D8
jne 0x1ef7
jmp 0x1f16
leaq 0x54c4(%rip), %rdi      # 0x73c2
leaq 0x5116(%rip), %rsi      # 0x701b
movl $0xcd, %edx
leaq 0x5121(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x2, %edi
callq 0x4360
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x35b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0xf3a71, %rax         # imm = 0xFFF0C58F
jne 0x1f70
jmp 0x1f8f
leaq 0x52eb(%rip), %rdi      # 0x7262
leaq 0x509d(%rip), %rsi      # 0x701b
movl $0xda, %edx
leaq 0x50a8(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3260
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0x3b6d0ef7, %rax      # imm = 0xC492F109
jne 0x1fb3
jmp 0x1fd2
leaq 0x52c3(%rip), %rdi      # 0x727d
leaq 0x505a(%rip), %rsi      # 0x701b
movl $0xdc, %edx
leaq 0x5065(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movq $-0x1d6d2b, %rdi        # imm = 0xFFE292D5
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3a, %rsi
callq 0x35b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x6aabbbe, %rax        # imm = 0x6AABBBE
jne 0x2024
jmp 0x2043
leaq 0x5271(%rip), %rdi      # 0x729c
leaq 0x4fe9(%rip), %rsi      # 0x701b
movl $0xe4, %edx
leaq 0x4ff4(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x2, %edi
callq 0x2400
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3260
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0x3ada56, %rax        # imm = 0xFFC525AA
jne 0x207e
jmp 0x209d
leaq 0x5236(%rip), %rdi      # 0x72bb
leaq 0x4f8f(%rip), %rsi      # 0x701b
movl $0xe8, %edx
leaq 0x4f9a(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x7312, %edi           # imm = 0x7312
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x35b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2850
movzbl %al, %eax
cmpl $0x0, %eax
je 0x20ea
jmp 0x2109
leaq 0x51e7(%rip), %rdi      # 0x72d8
leaq 0x4f23(%rip), %rsi      # 0x701b
movl $0xf0, %edx
leaq 0x4f2e(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x3b20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x1, %rax
jne 0x214e
jmp 0x216d
leaq 0x5199(%rip), %rdi      # 0x72ee
leaq 0x4ebf(%rip), %rsi      # 0x701b
movl $0xf9, %edx
leaq 0x4eca(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movl $0x21, %esi
callq 0x3b20
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x1e, %rax
jne 0x2190
jmp 0x21af
leaq 0x516c(%rip), %rdi      # 0x7303
leaq 0x4e7d(%rip), %rsi      # 0x701b
movl $0xfb, %edx
leaq 0x4e88(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x3b20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $-0x2a9, %rax           # imm = 0xFD57
jne 0x21ff
jmp 0x221e
leaq 0x5116(%rip), %rdi      # 0x731c
leaq 0x4e0e(%rip), %rsi      # 0x701b
movl $0x103, %edx            # imm = 0x103
leaq 0x4e19(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3620
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $-0xb21, %rax           # imm = 0xF4DF
jne 0x2242
jmp 0x2261
leaq 0x50f5(%rip), %rdi      # 0x733e
leaq 0x4dcb(%rip), %rsi      # 0x701b
movl $0x105, %edx            # imm = 0x105
leaq 0x4dd6(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x3e7, %edi            # imm = 0x3E7
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0x3e7, %rsi           # imm = 0xFC19
callq 0x3ca0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x0, %rax
jne 0x22af
jmp 0x22ce
leaq 0x50b4(%rip), %rdi      # 0x736a
leaq 0x4d5e(%rip), %rsi      # 0x701b
movl $0x10f, %edx            # imm = 0x10F
leaq 0x4d69(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movl $0x21, %esi
callq 0x3ca0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x9, %rax
jne 0x22f1
jmp 0x2310
leaq 0x508f(%rip), %rdi      # 0x7387
leaq 0x4d1c(%rip), %rsi      # 0x701b
movl $0x111, %edx            # imm = 0x111
leaq 0x4d27(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
movl $0x1d9b18, %edi         # imm = 0x1D9B18
callq 0x2400
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq $-0xb20, %rsi           # imm = 0xF4E0
callq 0x3ca0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x25e0
cmpq $0x2f8, %rax            # imm = 0x2F8
jne 0x2360
jmp 0x237f
leaq 0x5039(%rip), %rdi      # 0x73a0
leaq 0x4cad(%rip), %rsi      # 0x701b
movl $0x119, %edx            # imm = 0x119
leaq 0x4cb8(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3bc0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x25e0
cmpq $0x2d8, %rax            # imm = 0x2D8
jne 0x23a3
jmp 0x23c2
leaq 0x5018(%rip), %rdi      # 0x73c2
leaq 0x4c6a(%rip), %rsi      # 0x701b
movl $0x11b, %edx            # imm = 0x11B
leaq 0x4c75(%rip), %rcx      # 0x7032
callq 0x10a0
movq -0x10(%rbp), %rdi
callq 0x6480
movq -0x18(%rbp), %rdi
callq 0x6480
movq -0x20(%rbp), %rdi
callq 0x6480
leaq 0x500a(%rip), %rdi      # 0x73ee
movb $0x0, %al
callq 0x1090
xorl %eax, %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)