// File: /workspace/github_c_makefile_star2_O1/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, 0x10(%rsp)
movq 0x8(%rdi), %rbx
testq %rbx, %rbx
je 0x7c3b
leaq 0x7189(%rip), %r14      # 0xeda8
cmpb $0x1, 0x28(%rbx)
jne 0x7c33
movq 0x8(%rbx), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x7c1f
leaq 0x7171(%rip), %rdi      # 0xedb3
callq 0x2050
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rbx
testq %rbx, %rbx
je 0x7cdc
leaq 0x64ff(%rip), %r14      # 0xe15f
cmpq $0x0, 0x18(%rbx)
je 0x7c6d
cmpb $0x0, 0x28(%rbx)
je 0x7cb9
cmpq $0x0, 0x20(%rbx)
je 0x7cd4
cmpb $0x0, 0x28(%rbx)
jne 0x7cd4
movq 0x8(%rbx), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
movq 0x20(%rbx), %rax
cmpq $0x0, 0x10(%rax)
je 0x7cd4
xorl %r15d, %r15d
movq 0x10(%rbx), %rcx
movq 0x18(%rcx), %rdi
movq (%rax), %rax
movq (%rax,%r15,8), %rsi
callq 0x8ad5
incq %r15
movq 0x20(%rbx), %rax
cmpq 0x10(%rax), %r15
jb 0x7c96
jmp 0x7cd4
movq 0x8(%rbx), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x8ad5
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x7c60
leaq 0x70de(%rip), %rdi      # 0xedc1
callq 0x2050
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rbx
testq %rbx, %rbx
je 0x7d44
leaq 0x6462(%rip), %r14      # 0xe15f
leaq 0x70ca(%rip), %r15      # 0xedce
cmpq $0x0, 0x18(%rbx)
jne 0x7d3c
cmpq $0x0, 0x20(%rbx)
jne 0x7d3c
cmpb $0x0, 0x28(%rbx)
jne 0x7d3c
movq 0x8(%rbx), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x20a0
movq 0x10(%rbx), %rdi
callq 0x9c8c
movq %r15, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x8bcf
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x7d04
leaq 0x708c(%rip), %rdi      # 0xedd7
callq 0x2050
movq 0x10(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x10(%rax)
je 0x89ed
leaq 0x6fa2(%rip), %r12      # 0xed0c
xorl %ebx, %ebx
movq (%rax), %rax
movq (%rax,%rbx,8), %r13
cmpq $0x0, 0x18(%r13)
je 0x89c6
movl 0xb3cc(%rip), %edx      # 0x13150
leal 0x1(%rdx), %eax
movl %eax, 0xb3c3(%rip)      # 0x13150
leaq 0x64bb(%rip), %rdi      # 0xe24f
leaq 0x6474(%rip), %rsi      # 0xe20f
xorl %eax, %eax
callq 0xd7f2
movq %rax, 0xb39f(%rip)      # 0x13148
cmpb $0x0, 0x8(%r13)
jne 0x7dc2
movq (%r13), %rsi
leaq 0x6459(%rip), %rdi      # 0xe214
xorl %eax, %eax
callq 0x20a0
movq %rbx, 0x18(%rsp)
movq (%r13), %rsi
leaq 0x638d(%rip), %rdi      # 0xe15f
xorl %eax, %eax
callq 0x20a0
leaq 0x643f(%rip), %rdi      # 0xe21f
xorl %eax, %eax
callq 0x8bcf
leaq 0x643a(%rip), %rdi      # 0xe228
xorl %eax, %eax
callq 0x8bcf
cmpb $0x1, 0x9(%r13)
jne 0x7ee4
movq 0x10(%r13), %rax
movl 0x10(%rax), %eax
movl %eax, 0xb347(%rip)      # 0x13154
leaq 0x6442(%rip), %rdi      # 0xe256
movl $0xb0, %esi
xorl %eax, %eax
callq 0x8bcf
leaq 0x643b(%rip), %rdi      # 0xe262
xorl %eax, %eax
callq 0x8bcf
leaq 0x643c(%rip), %rdi      # 0xe271
xorl %eax, %eax
callq 0x8bcf
leaq 0x6441(%rip), %rdi      # 0xe284
xorl %eax, %eax
callq 0x8bcf
leaq 0x6447(%rip), %rdi      # 0xe298
xorl %eax, %eax
callq 0x8bcf
leaq 0x644d(%rip), %rdi      # 0xe2ac
xorl %eax, %eax
callq 0x8bcf
leaq 0x6452(%rip), %rdi      # 0xe2bf
xorl %eax, %eax
callq 0x8bcf
leaq 0x6457(%rip), %rdi      # 0xe2d2
xorl %eax, %eax
callq 0x8bcf
leaq 0x6461(%rip), %rdi      # 0xe2ea
xorl %eax, %eax
callq 0x8bcf
leaq 0x646b(%rip), %rdi      # 0xe302
xorl %eax, %eax
callq 0x8bcf
leaq 0x6475(%rip), %rdi      # 0xe31a
xorl %eax, %eax
callq 0x8bcf
leaq 0x647f(%rip), %rdi      # 0xe332
xorl %eax, %eax
callq 0x8bcf
leaq 0x648a(%rip), %rdi      # 0xe34b
xorl %eax, %eax
callq 0x8bcf
leaq 0x6495(%rip), %rdi      # 0xe364
xorl %eax, %eax
callq 0x8bcf
leaq 0x64a0(%rip), %rdi      # 0xe37d
xorl %eax, %eax
callq 0x8bcf
movq %r13, %rdi
callq 0x8d00
leaq 0x6363(%rip), %rdi      # 0xe256
movl %eax, %esi
xorl %eax, %eax
callq 0x8bcf
leaq 0x6b3e(%rip), %rdi      # 0xea41
xorl %eax, %eax
callq 0x8bcf
movq 0x18(%r13), %rax
cmpq $0x0, 0x10(%rax)
je 0x8980
xorl %ecx, %ecx
movq (%rax), %rax
movq %rcx, 0x20(%rsp)
movq (%rax,%rcx,8), %rbx
movq (%rbx), %rsi
leaq 0x622e(%rip), %rdi      # 0xe15f
xorl %eax, %eax
callq 0x20a0
movq 0x8(%rbx), %rax
cmpq $0x0, 0x10(%rax)
je 0x896a
xorl %r15d, %r15d
movq %rbx, 0x8(%rsp)
movq (%rax), %rax
movq (%rax,%r15,8), %rbp
movl (%rbp), %eax
cmpq $0x1a, %rax
ja 0x8959
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movq 0x10(%rbp), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xab1e(%rip), %rdx      # 0x12aa0
leaq 0xab57(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xaac8(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
movl 0x4(%rbp), %edx
leaq 0x6533(%rip), %rdi      # 0xe4dd
jmp 0x874f
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movslq (%rax), %rax
cmpq $0x1, %rcx
jne 0x8824
leaq 0xaad5(%rip), %rcx      # 0x12aa0
movq (%rcx,%rax,8), %rsi
movq 0x18(%rbp), %rax
movslq (%rax), %rax
leaq 0xab03(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rdx
leaq 0x6e88(%rip), %rdi      # 0xee70
jmp 0x8952
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movq 0x8(%rax), %rdx
cmpq $0x4, %rdx
leaq 0xaa9c(%rip), %rsi      # 0x12aa0
leaq 0xaad5(%rip), %rdi      # 0x12ae0
cmoveq %rsi, %rdi
cmpq $0x1, %rdx
leaq 0xaa46(%rip), %rdx      # 0x12a60
cmovneq %rdi, %rdx
movslq (%rax), %rax
movq (%rdx,%rax,8), %rdi
movslq (%rcx), %rax
movq (%rdx,%rax,8), %rsi
jmp 0x8729
movq 0x10(%rbp), %rax
cmpq 0x18(%rbp), %rax
jne 0x8a3a
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xaa4f(%rip), %rdx      # 0x12aa0
leaq 0xaa88(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xa9f9(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x658e(%rip), %rdi      # 0xe60f
jmp 0x8952
movq 0x18(%rbp), %rax
testq %rax, %rax
je 0x80a9
movslq (%rax), %rax
leaq 0xaa47(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
leaq 0x6553(%rip), %rdi      # 0xe5f7
callq 0x8c7a
movq 0xb098(%rip), %rsi      # 0x13148
jmp 0x84b6
movq 0x18(%rbp), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa9d5(%rip), %rdx      # 0x12aa0
leaq 0xaa0e(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xa97f(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x64e2(%rip), %rdi      # 0xe5d2
xorl %eax, %eax
callq 0x8bcf
movq 0x40(%rbp), %rsi
leaq 0x6575(%rip), %rdi      # 0xe677
xorl %eax, %eax
callq 0x8bcf
movq 0x38(%rbp), %rsi
jmp 0x84b6
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa974(%rip), %rdx      # 0x12aa0
leaq 0xa9ad(%rip), %r14      # 0x12ae0
cmovneq %r14, %rdx
cmpq $0x1, %rax
leaq 0xa91e(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x63ba(%rip), %rdi      # 0xe516
xorl %eax, %eax
callq 0x8bcf
leaq 0x6414(%rip), %rdi      # 0xe57e
jmp 0x8702
movq 0x10(%rbp), %rax
cmpq 0x18(%rbp), %rax
jne 0x8a78
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa911(%rip), %rdx      # 0x12aa0
leaq 0xa94a(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xa8bb(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x62c4(%rip), %rdi      # 0xe483
jmp 0x8952
movq 0x18(%rbp), %rax
movslq (%rax), %rax
leaq 0xa90e(%rip), %rbx      # 0x12ae0
movq (%rbx,%rax,8), %rsi
leaq 0x641a(%rip), %r14      # 0xe5f7
movq %r14, %rdi
callq 0x8c7a
movq 0x20(%rbp), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa8a5(%rip), %rdx      # 0x12aa0
cmovneq %rbx, %rdx
cmpq $0x1, %rax
leaq 0xa856(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x62a8(%rip), %rdi      # 0xe4c1
jmp 0x852a
movq 0x48(%rbp), %rsi
leaq 0x64e8(%rip), %rdi      # 0xe711
callq 0xd952
movq 0x50(%rbp), %rcx
testl %eax, %eax
je 0x8855
movq (%rcx), %rax
movq (%rax), %rbx
leaq 0x6d09(%rip), %rdi      # 0xef50
xorl %eax, %eax
callq 0x8bcf
movslq (%rbx), %rax
leaq 0xa888(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
leaq 0x6cf6(%rip), %rdi      # 0xef59
xorl %eax, %eax
callq 0x8bcf
movl 0xaee4(%rip), %esi      # 0x13154
shll $0x3, %esi
leaq 0x6ceb(%rip), %rdi      # 0xef65
xorl %eax, %eax
callq 0x8bcf
leaq 0x6cf1(%rip), %rdi      # 0xef79
xorl %eax, %eax
callq 0x8bcf
leaq 0x6766(%rip), %rdi      # 0xe9fc
movl $0xb0, %esi
xorl %eax, %eax
callq 0x8bcf
leaq 0x6767(%rip), %rdi      # 0xea10
xorl %eax, %eax
callq 0x8bcf
leaq 0x6cda(%rip), %rdi      # 0xef91
xorl %eax, %eax
callq 0x8bcf
jmp 0x8909
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa7c3(%rip), %rdx      # 0x12aa0
leaq 0xa7fc(%rip), %r14      # 0x12ae0
cmovneq %r14, %rdx
cmpq $0x1, %rax
leaq 0xa76d(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x6209(%rip), %rdi      # 0xe516
xorl %eax, %eax
callq 0x8bcf
leaq 0x6298(%rip), %rdi      # 0xe5b3
jmp 0x8702
movq 0x8(%rbp), %rax
cmpq $0x8, %rax
ja 0x8ab6
movl $0x112, %ecx            # imm = 0x112
btq %rax, %rcx
jae 0x8ab6
movq 0x18(%rbp), %rcx
cmpq $0x8, 0x8(%rcx)
jne 0x8a97
cmpq $0x1, %rax
je 0x892b
cmpq $0x4, %rax
je 0x8910
cmpq $0x8, %rax
jne 0x8959
movslq (%rcx), %rax
leaq 0xa76c(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
movslq 0x4(%rbp), %rax
leaq 0xa6ad(%rip), %rcx      # 0x12a30
jmp 0x881b
leaq 0x5f05(%rip), %rdi      # 0xe294
leaq 0x6244(%rip), %rsi      # 0xe5da
callq 0x8c7a
movq 0x18(%rbp), %rax
movslq (%rax), %rax
leaq 0xa737(%rip), %rbx      # 0x12ae0
movq (%rbx,%rax,8), %rsi
leaq 0x6243(%rip), %r14      # 0xe5f7
movq %r14, %rdi
jmp 0x84f1
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa6ca(%rip), %rdx      # 0x12aa0
leaq 0xa703(%rip), %r14      # 0x12ae0
cmovneq %r14, %rdx
cmpq $0x1, %rax
leaq 0xa674(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x6110(%rip), %rdi      # 0xe516
xorl %eax, %eax
callq 0x8bcf
leaq 0x6185(%rip), %rdi      # 0xe599
jmp 0x8702
movq 0x10(%rbp), %rax
cmpq 0x18(%rbp), %rax
jne 0x8a59
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa667(%rip), %rdx      # 0x12aa0
leaq 0xa6a0(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xa611(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x6039(%rip), %rdi      # 0xe4a2
jmp 0x8952
movq 0x10(%rbp), %rax
movq 0x28(%rbp), %rdx
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa618(%rip), %rsi      # 0x12aa0
leaq 0xa651(%rip), %rdi      # 0x12ae0
cmoveq %rsi, %rdi
cmpq $0x1, %rax
leaq 0xa5c2(%rip), %rax      # 0x12a60
cmovneq %rdi, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x6971(%rip), %rdi      # 0xee1e
jmp 0x8952
movq 0x30(%rbp), %rsi
leaq 0x61cb(%rip), %rdi      # 0xe688
jmp 0x87d4
leaq 0x5dcb(%rip), %r14      # 0xe294
leaq 0x610a(%rip), %rsi      # 0xe5da
movq %r14, %rdi
callq 0x8c7a
movq 0x18(%rbp), %rax
movslq (%rax), %rax
leaq 0xa5fa(%rip), %rbx      # 0x12ae0
movq (%rbx,%rax,8), %rsi
leaq 0x6106(%rip), %rdi      # 0xe5f7
callq 0x8c7a
movq 0x20(%rbp), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa594(%rip), %rdx      # 0x12aa0
cmovneq %rbx, %rdx
cmpq $0x1, %rax
leaq 0xa545(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
leaq 0x5fbe(%rip), %rdi      # 0xe4e8
xorl %eax, %eax
callq 0x8bcf
movq 0x10(%rbp), %rax
movslq (%rax), %rax
movq (%rbx,%rax,8), %rdi
movq 0x8(%rsp), %rbx
movq %r14, %rsi
jmp 0x8729
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa53d(%rip), %rdx      # 0x12aa0
leaq 0xa576(%rip), %r14      # 0x12ae0
cmovneq %r14, %rdx
cmpq $0x1, %rax
leaq 0xa4e7(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5f83(%rip), %rdi      # 0xe516
xorl %eax, %eax
callq 0x8bcf
leaq 0x5f80(%rip), %rdi      # 0xe521
jmp 0x8702
movq 0x10(%rbp), %rax
cmpq 0x18(%rbp), %rax
jne 0x8a1b
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa4da(%rip), %rdx      # 0x12aa0
leaq 0xa513(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xa484(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x604b(%rip), %rdi      # 0xe641
jmp 0x8952
movq 0x10(%rbp), %rax
cmpq 0x18(%rbp), %rax
jne 0x89fc
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa485(%rip), %rdx      # 0x12aa0
leaq 0xa4be(%rip), %rsi      # 0x12ae0
cmoveq %rdx, %rsi
cmpq $0x1, %rax
leaq 0xa42f(%rip), %rax      # 0x12a60
cmovneq %rsi, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5ff5(%rip), %rdi      # 0xe640
jmp 0x8952
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa436(%rip), %rdx      # 0x12aa0
leaq 0xa46f(%rip), %r14      # 0x12ae0
cmovneq %r14, %rdx
cmpq $0x1, %rax
leaq 0xa3e0(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5e7c(%rip), %rdi      # 0xe516
xorl %eax, %eax
callq 0x8bcf
leaq 0x5ebc(%rip), %rdi      # 0xe564
jmp 0x8702
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movslq (%rcx), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa3dc(%rip), %rdx      # 0x12aa0
leaq 0xa415(%rip), %r14      # 0x12ae0
cmovneq %r14, %rdx
cmpq $0x1, %rax
leaq 0xa386(%rip), %rax      # 0x12a60
cmovneq %rdx, %rax
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x5e22(%rip), %rdi      # 0xe516
xorl %eax, %eax
callq 0x8bcf
leaq 0x5e47(%rip), %rdi      # 0xe549
xorl %eax, %eax
callq 0x8bcf
leaq 0x5e19(%rip), %rdi      # 0xe529
xorl %eax, %eax
callq 0x8bcf
movq 0x10(%rbp), %rax
movslq (%rax), %rax
movq (%r14,%rax,8), %rdi
leaq 0x5ece(%rip), %rsi      # 0xe5f7
callq 0x8c7a
jmp 0x8959
movq 0x10(%rbp), %rax
movslq (%rax), %rax
leaq 0xa39f(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
movl 0x4(%rbp), %edx
leaq 0x670e(%rip), %rdi      # 0xee5d
xorl %eax, %eax
callq 0x8bcf
jmp 0x8959
movq 0x10(%rbp), %rax
movq 0x18(%rbp), %rcx
movq 0x8(%rax), %rdx
cmpq $0x4, %rdx
leaq 0xa32e(%rip), %rdi      # 0x12aa0
leaq 0xa367(%rip), %r14      # 0x12ae0
movq %r14, %rsi
cmoveq %rdi, %rsi
cmpq $0x1, %rdx
leaq 0xa2d5(%rip), %rbx      # 0x12a60
cmoveq %rbx, %rsi
movslq (%rax), %rax
movq (%rsi,%rax,8), %rdi
movslq (%rcx), %rax
movq (%rsi,%rax,8), %rsi
callq 0x8c7a
movq 0x10(%rbp), %rax
movslq (%rax), %rcx
movq 0x8(%rax), %rax
cmpq $0x4, %rax
leaq 0xa2e8(%rip), %rdx      # 0x12aa0
cmoveq %rdx, %r14
cmpq $0x1, %rax
cmoveq %rbx, %r14
movq 0x8(%rsp), %rbx
movq (%r14,%rcx,8), %rsi
leaq 0x6917(%rip), %rdi      # 0xf0eb
xorl %eax, %eax
callq 0x8bcf
jmp 0x8959
movq 0x18(%rbp), %rax
movq 0x20(%rbp), %rcx
movslq (%rax), %rax
leaq 0xa2ee(%rip), %rdx      # 0x12ae0
movq (%rdx,%rax,8), %rsi
movslq (%rcx), %rax
movq 0x8(%rcx), %rcx
cmpq $0x4, %rcx
leaq 0xa298(%rip), %rdi      # 0x12aa0
cmovneq %rdx, %rdi
cmpq $0x1, %rcx
leaq 0xa249(%rip), %rcx      # 0x12a60
cmovneq %rdi, %rcx
movq (%rcx,%rax,8), %rdx
jmp 0x894b
cmpq $0x4, %rcx
leaq 0xa271(%rip), %rcx      # 0x12aa0
leaq 0xa2aa(%rip), %rdx      # 0x12ae0
cmovneq %rdx, %rcx
movq (%rcx,%rax,8), %rsi
movq 0x18(%rbp), %rax
movslq (%rax), %rax
movq (%rdx,%rax,8), %rdx
leaq 0x6634(%rip), %rdi      # 0xee84
jmp 0x8952
cmpq $0x0, 0x10(%rcx)
je 0x8893
leaq 0xa1cd(%rip), %r14      # 0x12a30
xorl %ebx, %ebx
movq (%r14), %rdi
movq (%rcx), %rax
movq (%rax,%rbx,8), %rax
movslq (%rax), %rax
leaq 0xa267(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
callq 0x8c7a
incq %rbx
movq 0x50(%rbp), %rcx
addq $0x8, %r14
cmpq 0x10(%rcx), %rbx
jb 0x8865
leaq 0x6646(%rip), %rdi      # 0xeee0
xorl %eax, %eax
callq 0x8bcf
leaq 0x6641(%rip), %rdi      # 0xeee9
xorl %eax, %eax
callq 0x8bcf
leaq 0x5dd9(%rip), %rdi      # 0xe68f
xorl %eax, %eax
callq 0x8bcf
movq 0x48(%rbp), %rsi
leaq 0x5e60(%rip), %rdi      # 0xe728
xorl %eax, %eax
callq 0x8bcf
leaq 0x661c(%rip), %rdi      # 0xeef2
xorl %eax, %eax
callq 0x8bcf
leaq 0x6616(%rip), %rdi      # 0xeefa
xorl %eax, %eax
callq 0x8bcf
movq 0x10(%rbp), %rax
movslq (%rax), %rax
leaq 0xa1e7(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rdi
leaq 0x5cf3(%rip), %rsi      # 0xe5f7
callq 0x8c7a
movq 0x8(%rsp), %rbx
jmp 0x8959
movslq (%rcx), %rax
leaq 0xa1c6(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
movslq 0x4(%rbp), %rax
leaq 0x644f(%rip), %rcx      # 0xed78
jmp 0x8944
movslq (%rcx), %rax
leaq 0xa1ab(%rip), %rcx      # 0x12ae0
movq (%rcx,%rax,8), %rsi
movslq 0x4(%rbp), %rax
leaq 0x644c(%rip), %rcx      # 0xed90
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
leaq 0x6581(%rip), %rdi      # 0xeed3
xorl %eax, %eax
callq 0x8bcf
incq %r15
movq 0x8(%rbx), %rax
cmpq 0x10(%rax), %r15
jb 0x7f4f
movq 0x20(%rsp), %rcx
incq %rcx
movq 0x18(%r13), %rax
cmpq 0x10(%rax), %rcx
jb 0x7f1b
movq 0xa7c1(%rip), %rsi      # 0x13148
leaq 0x57d1(%rip), %rdi      # 0xe15f
xorl %eax, %eax
callq 0x20a0
leaq 0x646d(%rip), %rdi      # 0xee09
xorl %eax, %eax
callq 0x8bcf
leaq 0x646c(%rip), %rdi      # 0xee16
xorl %eax, %eax
callq 0x8bcf
leaq 0x5890(%rip), %rdi      # 0xe248
xorl %eax, %eax
callq 0x8bcf
movq 0x18(%rsp), %rbx
jmp 0x89d8
movq (%r13), %rsi
leaq 0x63d7(%rip), %rdi      # 0xeda8
xorl %eax, %eax
callq 0x20a0
incq %rbx
movq 0x10(%rsp), %rax
movq (%rax), %rax
cmpq 0x10(%rax), %rbx
jb 0x7d6c
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6428(%rip), %rdi      # 0xee2b
leaq 0x6432(%rip), %rsi      # 0xee3c
leaq 0x6439(%rip), %rcx      # 0xee4a
movl $0xb9, %edx
callq 0x20c0
leaq 0x6409(%rip), %rdi      # 0xee2b
leaq 0x6413(%rip), %rsi      # 0xee3c
leaq 0x641a(%rip), %rcx      # 0xee4a
movl $0xb4, %edx
callq 0x20c0
leaq 0x63ea(%rip), %rdi      # 0xee2b
leaq 0x63f4(%rip), %rsi      # 0xee3c
leaq 0x63fb(%rip), %rcx      # 0xee4a
movl $0xaf, %edx
callq 0x20c0
leaq 0x63cb(%rip), %rdi      # 0xee2b
leaq 0x63d5(%rip), %rsi      # 0xee3c
leaq 0x63dc(%rip), %rcx      # 0xee4a
movl $0x6c, %edx
callq 0x20c0
leaq 0x63ac(%rip), %rdi      # 0xee2b
leaq 0x63b6(%rip), %rsi      # 0xee3c
leaq 0x63bd(%rip), %rcx      # 0xee4a
movl $0x67, %edx
callq 0x20c0
leaq 0x6423(%rip), %rdi      # 0xeec1
leaq 0x6397(%rip), %rsi      # 0xee3c
leaq 0x639e(%rip), %rcx      # 0xee4a
movl $0xd3, %edx
callq 0x20c0
leaq 0x63d4(%rip), %rdi      # 0xee91
leaq 0x6378(%rip), %rsi      # 0xee3c
leaq 0x637f(%rip), %rcx      # 0xee4a
movl $0xd2, %edx
callq 0x20c0