// File: /workspace/github_c_makefile_star2_O0/ryancdotorg[P]bloomslice/bloom_h160_set.c
// Function: bloom_h160_set
int32_t bloom_h160_set(uint8_t *mem, const void *h160, uint8_t n, uint64_t mask) {
  const uint16_t *S = h160;
  const uint8_t  *B = h160;
  uint32_t t;
  uint64_t h;
  int i, k;

  if (n == BFS_TYPE_LEGACY) {
    t = BH00(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH01(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH02(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH03(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH04(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH05(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH06(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH07(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH08(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH09(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH10(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH11(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH12(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH13(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH14(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH15(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH16(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH17(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH18(((uint32_t*)h160)); BLOOM_SET_BIT(t);
    t = BH19(((uint32_t*)h160)); BLOOM_SET_BIT(t);
  } else if (n == BFS_TYPE_SINGLE) {
      memcpy(mem, h160, sizeof(hash160_t));
  } else if (n > BFS_TYPE_OFFSET + hash1sN + hash2bN + hash2sN && mask > 0xffffffff) {
    k = n - (hash1sN + hash2bN + hash2sN);
    for (i = 0; i < k; ++i) {
      // compute hash
      h = ((((uint64_t)S[data3sT[i*3+0]]) << 32)|
           (((uint64_t)S[data3sT[i*3+1]]) << 16)|
           (((uint64_t)S[data3sT[i*3+2]]))) & mask;
      // set bit h of mem
      mem[(h)>>3] = mem[(h)>>3] | (1 << ((h)&7));
    }
  } else if (n > BFS_TYPE_OFFSET + hash1sN + hash2bN && mask > 0xffff && mask <= 0xffffffff) {
    k = n - (hash1sN + hash2bN);
    for (i = 0; i < k; ++i) {
      // compute hash
      h = ((((uint64_t)S[data2sT[i*2+0]]) << 16)|
           (((uint64_t)S[data2sT[i*2+1]]))) & mask;
      // set bit h of mem
      mem[(h)>>3] = mem[(h)>>3] | (1 << ((h)&7));
    }
  } else if (n > BFS_TYPE_OFFSET + hash1sN && mask > 0xff && mask <= 0xffff) {
    k = n - (hash1sN);
    for (i = 0; i < k; ++i) {
      // compute hash
      h = ((((uint64_t)B[data2bT[i*2+0]]) << 8)|
           (((uint64_t)B[data2bT[i*2+1]]))) & mask;
      // set bit h of mem
      mem[(h)>>3] = mem[(h)>>3] | (1 << ((h)&7));
    }
  } else if (n > BFS_TYPE_OFFSET && mask >= 0xff && mask <= 0xffff) {
    k = n;
    for (i = 0; i < k; ++i) {
      // compute hash
      h = ((uint64_t)S[data1sT[i]]) & mask;
      // set bit h of mem
      mem[(h)>>3] = mem[(h)>>3] | (1 << ((h)&7));
    }
  } else {
      fprintf(stderr, "bloom_h160_set failed!\n");
      return -1;
  }

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x0, %eax
jne 0x8c45
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl (%rax), %eax
shll $0x10, %eax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
shrl $0x10, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
shll $0x10, %eax
movq -0x18(%rbp), %rcx
movl 0x8(%rcx), %ecx
shrl $0x10, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
shll $0x10, %eax
movq -0x18(%rbp), %rcx
movl 0xc(%rcx), %ecx
shrl $0x10, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
shll $0x10, %eax
movq -0x18(%rbp), %rcx
movl 0x10(%rcx), %ecx
shrl $0x10, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
shll $0x10, %eax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
shrl $0x10, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl (%rax), %eax
shll $0x8, %eax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
shrl $0x18, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
shll $0x8, %eax
movq -0x18(%rbp), %rcx
movl 0x8(%rcx), %ecx
shrl $0x18, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
shll $0x8, %eax
movq -0x18(%rbp), %rcx
movl 0xc(%rcx), %ecx
shrl $0x18, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
shll $0x8, %eax
movq -0x18(%rbp), %rcx
movl 0x10(%rcx), %ecx
shrl $0x18, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
shll $0x8, %eax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
shrl $0x18, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl (%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
shrl $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movl 0x8(%rcx), %ecx
shrl $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movl 0xc(%rcx), %ecx
shrl $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movl 0x10(%rcx), %ecx
shrl $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
shll $0x18, %eax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
shrl $0x8, %ecx
orl %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl -0x3c(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
shrl $0x3, %ecx
movl %ecx, %ecx
movb %dl, (%rax,%rcx)
jmp 0x905a
movzbl -0x19(%rbp), %eax
cmpl $0x1, %eax
jne 0x8c6f
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movl 0x10(%rcx), %ecx
movl %ecx, 0x10(%rax)
jmp 0x9058
movzbl -0x19(%rbp), %eax
leaq 0x5680(%rip), %rcx      # 0xe2fa
movzbl (%rcx), %ecx
addl $0x1, %ecx
leaq 0x567e(%rip), %rdx      # 0xe305
movzbl (%rdx), %edx
addl %edx, %ecx
leaq 0x55fd(%rip), %rdx      # 0xe290
movzbl (%rdx), %edx
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x8da1
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, -0x28(%rbp)
jbe 0x8da1
movzbl -0x19(%rbp), %eax
leaq 0x5640(%rip), %rcx      # 0xe2fa
movzbl (%rcx), %ecx
leaq 0x5641(%rip), %rdx      # 0xe305
movzbl (%rdx), %edx
addl %edx, %ecx
leaq 0x55c0(%rip), %rdx      # 0xe290
movzbl (%rdx), %edx
addl %edx, %ecx
subl %ecx, %eax
movl %eax, -0x50(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0x8d9c
movq -0x30(%rbp), %rax
imull $0x3, -0x4c(%rbp), %ecx
addl $0x0, %ecx
movslq %ecx, %rdx
leaq 0x546e(%rip), %rcx      # 0xe170
movzbl (%rcx,%rdx), %ecx
movzwl (%rax,%rcx,2), %eax
shlq $0x20, %rax
movq -0x30(%rbp), %rcx
imull $0x3, -0x4c(%rbp), %edx
addl $0x1, %edx
movslq %edx, %rsi
leaq 0x544d(%rip), %rdx      # 0xe170
movzbl (%rdx,%rsi), %edx
movzwl (%rcx,%rdx,2), %ecx
shlq $0x10, %rcx
orq %rcx, %rax
movq -0x30(%rbp), %rcx
imull $0x3, -0x4c(%rbp), %edx
addl $0x2, %edx
movslq %edx, %rsi
leaq 0x5429(%rip), %rdx      # 0xe170
movzbl (%rdx,%rsi), %edx
movzwl (%rcx,%rdx,2), %ecx
orq %rcx, %rax
andq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movzbl (%rax,%rcx), %eax
movq -0x48(%rbp), %rcx
andq $0x7, %rcx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movb %dl, (%rax,%rcx)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x8ce1
jmp 0x9056
movzbl -0x19(%rbp), %eax
leaq 0x554e(%rip), %rcx      # 0xe2fa
movzbl (%rcx), %ecx
addl $0x1, %ecx
leaq 0x554c(%rip), %rdx      # 0xe305
movzbl (%rdx), %edx
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x8ea7
cmpq $0xffff, -0x28(%rbp)    # imm = 0xFFFF
jbe 0x8ea7
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, -0x28(%rbp)
ja 0x8ea7
movzbl -0x19(%rbp), %eax
leaq 0x550c(%rip), %rcx      # 0xe2fa
movzbl (%rcx), %ecx
leaq 0x550d(%rip), %rdx      # 0xe305
movzbl (%rdx), %edx
addl %edx, %ecx
subl %ecx, %eax
movl %eax, -0x50(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0x8ea2
movq -0x30(%rbp), %rax
movl -0x4c(%rbp), %ecx
shll %ecx
addl $0x0, %ecx
movslq %ecx, %rdx
leaq 0x5475(%rip), %rcx      # 0xe2a0
movzbl (%rcx,%rdx), %ecx
movzwl (%rax,%rcx,2), %eax
shlq $0x10, %rax
movq -0x30(%rbp), %rcx
movl -0x4c(%rbp), %edx
shll %edx
addl $0x1, %edx
movslq %edx, %rsi
leaq 0x5453(%rip), %rdx      # 0xe2a0
movzbl (%rdx,%rsi), %edx
movzwl (%rcx,%rdx,2), %ecx
orq %rcx, %rax
andq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movzbl (%rax,%rcx), %eax
movq -0x48(%rbp), %rcx
andq $0x7, %rcx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movb %dl, (%rax,%rcx)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x8e09
jmp 0x9054
movzbl -0x19(%rbp), %eax
leaq 0x5448(%rip), %rcx      # 0xe2fa
movzbl (%rcx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jle 0x8f94
cmpq $0xff, -0x28(%rbp)
jbe 0x8f94
cmpq $0xffff, -0x28(%rbp)    # imm = 0xFFFF
ja 0x8f94
movzbl -0x19(%rbp), %eax
leaq 0x5413(%rip), %rcx      # 0xe2fa
movzbl (%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x50(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0x8f8f
movq -0x38(%rbp), %rax
movl -0x4c(%rbp), %ecx
shll %ecx
addl $0x0, %ecx
movslq %ecx, %rdx
leaq 0x53f8(%rip), %rcx      # 0xe310
movzbl (%rcx,%rdx), %ecx
movzbl (%rax,%rcx), %eax
shlq $0x8, %rax
movq -0x38(%rbp), %rcx
movl -0x4c(%rbp), %edx
shll %edx
addl $0x1, %edx
movslq %edx, %rsi
leaq 0x53d6(%rip), %rdx      # 0xe310
movzbl (%rdx,%rsi), %edx
movzbl (%rcx,%rdx), %ecx
orq %rcx, %rax
andq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movzbl (%rax,%rcx), %eax
movq -0x48(%rbp), %rcx
andq $0x7, %rcx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movb %dl, (%rax,%rcx)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x8ef6
jmp 0x9052
movzbl -0x19(%rbp), %eax
cmpl $0x1, %eax
jle 0x902f
cmpq $0xff, -0x28(%rbp)
jb 0x902f
cmpq $0xffff, -0x28(%rbp)    # imm = 0xFFFF
ja 0x902f
movzbl -0x19(%rbp), %eax
movl %eax, -0x50(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jge 0x902d
movq -0x30(%rbp), %rax
movslq -0x4c(%rbp), %rdx
leaq 0x531d(%rip), %rcx      # 0xe2fb
movzbl (%rcx,%rdx), %ecx
movzwl (%rax,%rcx,2), %eax
andq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movzbl (%rax,%rcx), %eax
movq -0x48(%rbp), %rcx
andq $0x7, %rcx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
orl %ecx, %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
shrq $0x3, %rcx
movb %dl, (%rax,%rcx)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x8fc7
jmp 0x9050
movq 0x4fc2(%rip), %rax      # 0xdff8
movq (%rax), %rdi
leaq 0x30b6(%rip), %rsi      # 0xc0f6
movb $0x0, %al
callq 0x1130
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x9061
jmp 0x9052
jmp 0x9054
jmp 0x9056
jmp 0x9058
jmp 0x905a
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)