// File: /workspace/github_c_makefile_star2_O2/takoeight0821[P]hoc_nyan/src/gen_x86.c
// Function: gen_x86
void gen_x86(IProgram* prog) {
  for (GVar* gvar = prog->globals; gvar != NULL; gvar = gvar->next) {
    if (gvar->is_extern) {
      printf("extern %s\n", gvar->name);
    }
  }

  puts("section .data");
  for (GVar* gvar = prog->globals; gvar != NULL; gvar = gvar->next) {
    if (gvar->init && !gvar->is_extern) {
      printf("%s:\n", gvar->name);
      emit_const(gvar->type, gvar->init);
    } else if (gvar->inits && !gvar->is_extern) {
      printf("%s:\n", gvar->name);
      for (size_t i = 0; i < gvar->inits->length; i++) {
        emit_const(gvar->type->ptr_to, gvar->inits->ptr[i]);
      }
    }
  }

  puts("section .bss");
  for (GVar* gvar = prog->globals; gvar != NULL; gvar = gvar->next) {
    if (gvar->init == NULL && gvar->inits == NULL && !gvar->is_extern) {
      printf("%s:\n", gvar->name);
      emit("resb %zu", size_of(gvar->type));
    }
  }

  puts("section .text");
  for (size_t i = 0; i < prog->ifuncs->length; i++) {
    emit_function(prog->ifuncs->ptr[i]);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, 0x8(%rsp)
leaq 0x8(%rdi), %rbx
leaq 0x7062(%rip), %r14      # 0xcda8
movq %rbx, %r15
movq (%r15), %r15
testq %r15, %r15
je 0x5d68
cmpb $0x1, 0x28(%r15)
jne 0x5d49
movq 0x8(%r15), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
jmp 0x5d49
leaq 0x7044(%rip), %rdi      # 0xcdb3
callq 0x2050
leaq 0x63e4(%rip), %r14      # 0xc15f
movq %rbx, %r15
movq (%r15), %r15
testq %r15, %r15
je 0x5df3
cmpq $0x0, 0x18(%r15)
je 0x5d94
cmpb $0x0, 0x28(%r15)
je 0x5dd6
cmpq $0x0, 0x20(%r15)
je 0x5d7e
cmpb $0x0, 0x28(%r15)
jne 0x5d7e
movq 0x8(%r15), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
xorl %r12d, %r12d
movq 0x20(%r15), %rax
cmpq 0x10(%rax), %r12
jae 0x5d7e
movq 0x10(%r15), %rcx
movq 0x18(%rcx), %rdi
movq (%rax), %rax
movq (%rax,%r12,8), %rsi
callq 0x6a6a
incq %r12
jmp 0x5db3
movq 0x8(%r15), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
movq 0x10(%r15), %rdi
movq 0x18(%r15), %rsi
callq 0x6a6a
jmp 0x5d7e
leaq 0x6fc7(%rip), %rdi      # 0xcdc1
callq 0x2050
leaq 0x6359(%rip), %r14      # 0xc15f
leaq 0x6fc1(%rip), %r15      # 0xcdce
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x5e4f
cmpq $0x0, 0x18(%rbx)
jne 0x5e0d
cmpq $0x0, 0x20(%rbx)
jne 0x5e0d
cmpb $0x0, 0x28(%rbx)
jne 0x5e0d
movq 0x8(%rbx), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
movq 0x10(%rbx), %rdi
callq 0x75fe
movq %r15, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x6b64
jmp 0x5e0d
leaq 0x6f81(%rip), %rdi      # 0xcdd7
callq 0x2050
leaq 0x6eaa(%rip), %r14      # 0xcd0c
xorl %ecx, %ecx
movq 0x8(%rsp), %rax
movq (%rax), %rax
cmpq 0x10(%rax), %rcx
jae 0x698a
movq (%rax), %rax
movq %rcx, 0x10(%rsp)
movq (%rax,%rcx,8), %rbx
cmpq $0x0, 0x18(%rbx)
je 0x696c
movl 0xc2bd(%rip), %edx      # 0x12150
leal 0x1(%rdx), %eax
movl %eax, 0xc2b4(%rip)      # 0x12150
leaq 0x63ac(%rip), %rdi      # 0xc24f
leaq 0x6365(%rip), %rsi      # 0xc20f
xorl %eax, %eax
callq 0xa84a
movq %rax, 0xc290(%rip)      # 0x12148
cmpb $0x0, 0x8(%rbx)
jne 0x5ecf
movq (%rbx), %rsi
leaq 0x634c(%rip), %rdi      # 0xc214
xorl %eax, %eax
callq 0x20a0
movq (%rbx), %rsi
leaq 0x6286(%rip), %rdi      # 0xc15f
xorl %eax, %eax
callq 0x20a0
leaq 0x6338(%rip), %rdi      # 0xc21f
xorl %eax, %eax
callq 0x6b64
leaq 0x6333(%rip), %rdi      # 0xc228
xorl %eax, %eax
callq 0x6b64
cmpb $0x1, 0x9(%rbx)
jne 0x5fea
movq 0x10(%rbx), %rax
movl 0x10(%rax), %eax
movl %eax, 0xc241(%rip)      # 0x12154
leaq 0x633c(%rip), %rdi      # 0xc256
movl $0xb0, %esi
xorl %eax, %eax
callq 0x6b64
leaq 0x6335(%rip), %rdi      # 0xc262
xorl %eax, %eax
callq 0x6b64
leaq 0x6336(%rip), %rdi      # 0xc271
xorl %eax, %eax
callq 0x6b64
leaq 0x633b(%rip), %rdi      # 0xc284
xorl %eax, %eax
callq 0x6b64
leaq 0x6341(%rip), %rdi      # 0xc298
xorl %eax, %eax
callq 0x6b64
leaq 0x6347(%rip), %rdi      # 0xc2ac
xorl %eax, %eax
callq 0x6b64
leaq 0x634c(%rip), %rdi      # 0xc2bf
xorl %eax, %eax
callq 0x6b64
leaq 0x6351(%rip), %rdi      # 0xc2d2
xorl %eax, %eax
callq 0x6b64
leaq 0x635b(%rip), %rdi      # 0xc2ea
xorl %eax, %eax
callq 0x6b64
leaq 0x6365(%rip), %rdi      # 0xc302
xorl %eax, %eax
callq 0x6b64
leaq 0x636f(%rip), %rdi      # 0xc31a
xorl %eax, %eax
callq 0x6b64
leaq 0x6379(%rip), %rdi      # 0xc332
xorl %eax, %eax
callq 0x6b64
leaq 0x6384(%rip), %rdi      # 0xc34b
xorl %eax, %eax
callq 0x6b64
leaq 0x638f(%rip), %rdi      # 0xc364
xorl %eax, %eax
callq 0x6b64
leaq 0x639a(%rip), %rdi      # 0xc37d
xorl %eax, %eax
callq 0x6b64
movq %rbx, %rdi
callq 0x6c7b
leaq 0x625d(%rip), %rdi      # 0xc256
movl %eax, %esi
xorl %eax, %eax
callq 0x6b64
leaq 0x6a38(%rip), %rdi      # 0xca41
xorl %eax, %eax
callq 0x6b64
xorl %ecx, %ecx
movq %rbx, 0x18(%rsp)
movq 0x18(%rbx), %rax
cmpq 0x10(%rax), %rcx
jae 0x692b
movq (%rax), %rax
movq %rcx, 0x20(%rsp)
movq (%rax,%rcx,8), %r15
movq (%r15), %rsi
leaq 0x6124(%rip), %rdi      # 0xc15f
xorl %eax, %eax
callq 0x20a0
xorl %r13d, %r13d
movq 0x8(%r15), %rax
cmpq 0x10(%rax), %r13
jae 0x6919
movq (%rax), %rax
movq (%rax,%r13,8), %rbx
movl (%rbx), %eax
cmpq $0x1a, %rax
ja 0x6911
movslq (%r14,%rax,4), %rax
addq %r14, %rax
leaq 0xba6c(%rip), %rbp      # 0x11ae0
leaq 0xba25(%rip), %r12      # 0x11aa0
jmpq *%rax
movq 0x10(%rbx), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb9c5(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
movl 0x4(%rbx), %edx
leaq 0x6430(%rip), %rdi      # 0xc4dd
jmp 0x674d
movq 0x10(%rbx), %rax
movq 0x8(%rax), %rcx
movslq (%rax), %rax
cmpq $0x1, %rcx
jne 0x6803
movq (%r12,%rax,8), %rsi
movq 0x18(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rdx
leaq 0x6d92(%rip), %rdi      # 0xce70
jmp 0x690a
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movq 0x8(%rax), %rdx
cmpq $0x4, %rdx
cmoveq %r12, %rbp
cmpq $0x1, %rdx
leaq 0xb95e(%rip), %rdx      # 0x11a60
cmovneq %rbp, %rdx
movslq (%rax), %rax
movq (%rdx,%rax,8), %rdi
movslq (%rcx), %rax
movq (%rdx,%rax,8), %rsi
jmp 0x672d
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jne 0x6999
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb91f(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x64b4(%rip), %rdi      # 0xc60f
jmp 0x690a
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x617d
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
leaq 0x647f(%rip), %rdi      # 0xc5f7
callq 0x6c0b
movq 0xbfc4(%rip), %rsi      # 0x12148
jmp 0x6509
movq 0x18(%rbx), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb8b9(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x641c(%rip), %rdi      # 0xc5d2
xorl %eax, %eax
callq 0x6b64
movq 0x40(%rbx), %rsi
leaq 0x64af(%rip), %rdi      # 0xc677
xorl %eax, %eax
callq 0x6b64
movq 0x38(%rbx), %rsi
jmp 0x6509
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb866(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x6302(%rip), %rdi      # 0xc516
xorl %eax, %eax
callq 0x6b64
leaq 0x635c(%rip), %rdi      # 0xc57e
jmp 0x6705
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jne 0x69f6
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb811(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x621a(%rip), %rdi      # 0xc483
jmp 0x690a
movq 0x18(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
leaq 0x6376(%rip), %r14      # 0xc5f7
movq %r14, %rdi
callq 0x6c0b
movq 0x20(%rbx), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb7b9(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x620b(%rip), %rdi      # 0xc4c1
jmp 0x6570
movq 0x48(%rbx), %rsi
leaq 0x644b(%rip), %rdi      # 0xc711
callq 0xaa3e
testl %eax, %eax
je 0x6827
movq 0x50(%rbx), %rax
movq (%rax), %rax
movq (%rax), %rbx
leaq 0x6c6c(%rip), %rdi      # 0xcf50
xorl %eax, %eax
callq 0x6b64
movslq (%rbx), %rax
movq (%rbp,%rax,8), %rsi
leaq 0x6c5f(%rip), %rdi      # 0xcf59
xorl %eax, %eax
callq 0x6b64
movl 0xbe4d(%rip), %esi      # 0x12154
shll $0x3, %esi
leaq 0x6c54(%rip), %rdi      # 0xcf65
xorl %eax, %eax
callq 0x6b64
leaq 0x6c5a(%rip), %rdi      # 0xcf79
xorl %eax, %eax
callq 0x6b64
leaq 0x66cf(%rip), %rdi      # 0xc9fc
movl $0xb0, %esi
xorl %eax, %eax
callq 0x6b64
leaq 0x66d0(%rip), %rdi      # 0xca10
xorl %eax, %eax
callq 0x6b64
leaq 0x6c43(%rip), %rdi      # 0xcf91
xorl %eax, %eax
callq 0x6b64
jmp 0x6911
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb6e4(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x6180(%rip), %rdi      # 0xc516
xorl %eax, %eax
callq 0x6b64
leaq 0x620f(%rip), %rdi      # 0xc5b3
jmp 0x6705
movq 0x8(%rbx), %rax
cmpq $0x8, %rax
ja 0x6a4b
movl $0x112, %ecx            # imm = 0x112
btq %rax, %rcx
jae 0x6a4b
movq 0x18(%rbx), %rcx
cmpq $0x8, 0x8(%rcx)
jne 0x6a0f
cmpq $0x1, %rax
je 0x68e9
cmpq $0x4, %rax
je 0x68d4
cmpq $0x8, %rax
jne 0x6911
movslq (%rcx), %rax
movq (%rbp,%rax,8), %rsi
movslq 0x4(%rbx), %rax
leaq 0xb62a(%rip), %rcx      # 0x11a30
jmp 0x67fa
leaq 0x5e82(%rip), %rdi      # 0xc294
leaq 0x61c1(%rip), %rsi      # 0xc5da
callq 0x6c0b
movq 0x18(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
leaq 0x61c6(%rip), %r14      # 0xc5f7
movq %r14, %rdi
jmp 0x653e
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb605(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x60a1(%rip), %rdi      # 0xc516
xorl %eax, %eax
callq 0x6b64
leaq 0x6116(%rip), %rdi      # 0xc599
jmp 0x6705
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jne 0x6a2e
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb5b0(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5fd8(%rip), %rdi      # 0xc4a2
jmp 0x690a
movq 0x10(%rbx), %rax
movq 0x28(%rbx), %rdx
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb56f(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x691e(%rip), %rdi      # 0xce1e
jmp 0x690a
movq 0x30(%rbx), %rsi
leaq 0x6178(%rip), %rdi      # 0xc688
jmp 0x67c0
leaq 0x5d78(%rip), %r14      # 0xc294
leaq 0x60b7(%rip), %rsi      # 0xc5da
movq %r14, %rdi
callq 0x6c0b
movq 0x18(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
leaq 0x60b9(%rip), %rdi      # 0xc5f7
callq 0x6c0b
movq 0x20(%rbx), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb4ff(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x5f78(%rip), %rdi      # 0xc4e8
xorl %eax, %eax
callq 0x6b64
movq 0x10(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rdi
movq %r14, %rsi
leaq 0x677f(%rip), %r14      # 0xcd0c
jmp 0x672d
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb4ac(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5f48(%rip), %rdi      # 0xc516
xorl %eax, %eax
callq 0x6b64
leaq 0x5f45(%rip), %rdi      # 0xc521
jmp 0x6705
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jne 0x69b8
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb457(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x601e(%rip), %rdi      # 0xc641
jmp 0x690a
movq 0x10(%rbx), %rax
cmpq 0x18(%rbx), %rax
jne 0x69d7
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
leaq 0xb410(%rip), %rax      # 0x11a60
cmovneq %rbp, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5fd6(%rip), %rdi      # 0xc640
jmp 0x690a
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb3cf(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5e6b(%rip), %rdi      # 0xc516
xorl %eax, %eax
callq 0x6b64
leaq 0x5eab(%rip), %rdi      # 0xc564
jmp 0x6705
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmovneq %rbp, %r12
cmpq $0x1, %rax
leaq 0xb383(%rip), %rax      # 0x11a60
cmovneq %r12, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbx), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5e1f(%rip), %rdi      # 0xc516
xorl %eax, %eax
callq 0x6b64
leaq 0x5e44(%rip), %rdi      # 0xc549
xorl %eax, %eax
callq 0x6b64
leaq 0x5e16(%rip), %rdi      # 0xc529
xorl %eax, %eax
callq 0x6b64
movq 0x10(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rdi
leaq 0x5eca(%rip), %rsi      # 0xc5f7
callq 0x6c0b
jmp 0x6911
movq 0x10(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
movl 0x4(%rbx), %edx
leaq 0x6710(%rip), %rdi      # 0xce5d
xorl %eax, %eax
callq 0x6b64
jmp 0x6911
movq 0x10(%rbx), %rax
movq 0x18(%rbx), %rcx
movq 0x8(%rax), %rdx
cmpq $0x4, %rdx
movq %rbp, %rsi
cmoveq %r12, %rsi
cmpq $0x1, %rdx
leaq 0xb2e5(%rip), %r14      # 0x11a60
cmoveq %r14, %rsi
movslq (%rax), %rax
movq (%rsi,%rax,8), %rdi
movslq (%rcx), %rax
movq (%rsi,%rax,8), %rsi
callq 0x6c0b
movq 0x10(%rbx), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
cmoveq %r12, %rbp
cmpq $0x1, %rax
cmoveq %r14, %rbp
leaq 0x6558(%rip), %r14      # 0xcd0c
movq (%rbp,%rcx,8), %rsi
leaq 0x692b(%rip), %rdi      # 0xd0eb
xorl %eax, %eax
callq 0x6b64
jmp 0x6911
movq 0x18(%rbx), %rax
movq 0x20(%rbx), %rcx
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
movslq (%rcx), %rax
movq 0x8(%rcx), %rcx
cmpq $0x4, %rcx
cmovneq %rbp, %r12
cmpq $0x1, %rcx
leaq 0xb26a(%rip), %rcx      # 0x11a60
cmovneq %r12, %rcx
movq (%rcx,%rax,8), %rdx
jmp 0x6903
cmpq $0x4, %rcx
cmovneq %rbp, %r12
movq (%r12,%rax,8), %rsi
movq 0x18(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rdx
leaq 0x6662(%rip), %rdi      # 0xce84
jmp 0x690a
leaq 0xb202(%rip), %r14      # 0x11a30
xorl %r12d, %r12d
movq 0x50(%rbx), %rax
cmpq 0x10(%rax), %r12
jae 0x685b
movq (%r14), %rdi
movq (%rax), %rax
movq (%rax,%r12,8), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rsi
callq 0x6c0b
incq %r12
addq $0x8, %r14
jmp 0x6831
leaq 0x667e(%rip), %rdi      # 0xcee0
xorl %eax, %eax
callq 0x6b64
leaq 0x6679(%rip), %rdi      # 0xcee9
xorl %eax, %eax
callq 0x6b64
leaq 0x5e11(%rip), %rdi      # 0xc68f
xorl %eax, %eax
callq 0x6b64
movq 0x48(%rbx), %rsi
leaq 0x5e98(%rip), %rdi      # 0xc728
xorl %eax, %eax
callq 0x6b64
leaq 0x6654(%rip), %rdi      # 0xcef2
xorl %eax, %eax
callq 0x6b64
leaq 0x664e(%rip), %rdi      # 0xcefa
xorl %eax, %eax
callq 0x6b64
movq 0x10(%rbx), %rax
movslq (%rax), %rax
movq (%rbp,%rax,8), %rdi
leaq 0x5d31(%rip), %rsi      # 0xc5f7
callq 0x6c0b
leaq 0x643a(%rip), %r14      # 0xcd0c
jmp 0x6911
movslq (%rcx), %rax
movq (%rbp,%rax,8), %rsi
movslq 0x4(%rbx), %rax
leaq 0x6491(%rip), %rcx      # 0xcd78
jmp 0x68fc
movslq (%rcx), %rax
movq (%rbp,%rax,8), %rsi
movslq 0x4(%rbx), %rax
leaq 0x6494(%rip), %rcx      # 0xcd90
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
leaq 0x65c9(%rip), %rdi      # 0xced3
xorl %eax, %eax
callq 0x6b64
incq %r13
jmp 0x6045
movq 0x20(%rsp), %rcx
incq %rcx
movq 0x18(%rsp), %rbx
jmp 0x6017
movq 0xb816(%rip), %rsi      # 0x12148
leaq 0x5826(%rip), %rdi      # 0xc15f
xorl %eax, %eax
callq 0x20a0
leaq 0x64c2(%rip), %rdi      # 0xce09
xorl %eax, %eax
callq 0x6b64
leaq 0x64c1(%rip), %rdi      # 0xce16
xorl %eax, %eax
callq 0x6b64
leaq 0x58e5(%rip), %rdi      # 0xc248
xorl %eax, %eax
callq 0x6b64
jmp 0x697d
movq (%rbx), %rsi
leaq 0x6432(%rip), %rdi      # 0xcda8
xorl %eax, %eax
callq 0x20a0
movq 0x10(%rsp), %rcx
incq %rcx
jmp 0x5e64
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x648b(%rip), %rdi      # 0xce2b
leaq 0x6495(%rip), %rsi      # 0xce3c
leaq 0x649c(%rip), %rcx      # 0xce4a
movl $0xaf, %edx
callq 0x20c0
leaq 0x646c(%rip), %rdi      # 0xce2b
leaq 0x6476(%rip), %rsi      # 0xce3c
leaq 0x647d(%rip), %rcx      # 0xce4a
movl $0xb4, %edx
callq 0x20c0
leaq 0x644d(%rip), %rdi      # 0xce2b
leaq 0x6457(%rip), %rsi      # 0xce3c
leaq 0x645e(%rip), %rcx      # 0xce4a
movl $0xb9, %edx
callq 0x20c0
leaq 0x642e(%rip), %rdi      # 0xce2b
leaq 0x6438(%rip), %rsi      # 0xce3c
leaq 0x643f(%rip), %rcx      # 0xce4a
pushq $0x67
jmp 0x6a45
leaq 0x64ab(%rip), %rdi      # 0xcec1
leaq 0x641f(%rip), %rsi      # 0xce3c
leaq 0x6426(%rip), %rcx      # 0xce4a
movl $0xd3, %edx
callq 0x20c0
leaq 0x63f6(%rip), %rdi      # 0xce2b
leaq 0x6400(%rip), %rsi      # 0xce3c
leaq 0x6407(%rip), %rcx      # 0xce4a
pushq $0x6c
popq %rdx
callq 0x20c0
leaq 0x643f(%rip), %rdi      # 0xce91
leaq 0x63e3(%rip), %rsi      # 0xce3c
leaq 0x63ea(%rip), %rcx      # 0xce4a
movl $0xd2, %edx
callq 0x20c0