// File: CoinXu[P]reviser-compiler/src/compiler/javascript/javascript_struct.cpp
// Function: reviser::javascript::JavaScriptStructProperty::Generate[abi:cxx11]()
string JavaScriptStructProperty::Generate() {
    string code_decorater;
    for (Decorater* d: node->decoraters) {
      JavaScriptDecorater decorater(d, parent);
      code_decorater += decorater.Generate();
    }

    vector<string> revisers;
    vector<ReviserSyntaxDefinition> defs = JavaScriptCommon::FindReviserSyntaxDefinitionByDataType(node->declare->type);

    // 如果是数组类型数据，将translator放在TypeArray装饰器中
    if (node->declare->array_type) {
      switch (node->declare->type) {
        case TYPE_BOOL:
        case TYPE_FLOAT:
        case TYPE_DOUBLE:
        case TYPE_INT32:
        case TYPE_INT64:
        case TYPE_UINT32:
        case TYPE_UINT64:
        case TYPE_STRING: {
          vector<string> args;
          for (ReviserSyntaxDefinition d : defs) {
            args.push_back(JavaScriptCommon::DecoraterDefinition(d));
          }
          vector<DecoraterArg> v({{ ARG_ARRAY, args }});
          revisers.push_back(JavaScriptCommon::DecoraterDefinition(ReviserMethodMap[REVISER_TYPE_ARRAY], &v));
          break;
        }

        case TYPE_ENUM:
          break;

        case TYPE_STRUCT: {
          vector<DecoraterArg> v({{ ARG_STRING, vector<string>({ node->declare->type_id->text }) }});
          revisers.push_back(JavaScriptCommon::DecoraterDefinition(ReviserMethodMap[REVISER_TYPE_ARRAY_STRUCT], &v));
          break;
        }

        default:
          break;
      }
    } else {
      switch (node->declare->type) {
        case TYPE_BOOL:
        case TYPE_FLOAT:
        case TYPE_DOUBLE:
        case TYPE_INT32:
        case TYPE_INT64:
        case TYPE_UINT32:
        case TYPE_UINT64:
        case TYPE_STRING: {
          for (int i = defs.size() - 1; i >= 0; i--) {
            revisers.push_back(JavaScriptCommon::DecoraterDefinition(defs.at(i)));
          }
          break;
        }

        case TYPE_ENUM:
          break;

        case TYPE_STRUCT: {
          vector<DecoraterArg> v({{ ARG_STRING, vector<string>({ node->declare->type_id->text }) }});
          revisers.push_back(JavaScriptCommon::DecoraterDefinition(ReviserMethodMap[REVISER_TYPE_STRUCT], &v));
          break;
        }

        default:
          break;
      }
    }

    string indent = JavaScriptCommon::Indent(node->level + 1);
    return (
        revisers.size() > 0
        ? indent + ("@" + JavaScriptCommon::JoinVector(revisers, "\n" + indent + "@") + "\n")
        : ""
      )
      + code_decorater + indent + JavaScriptDeclare(node->declare).Generate() + ";";
 
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x820, %rsp            # imm = 0x820
movq %rdi, -0x668(%rbp)
movq %rdi, %rax
movq %rax, -0x660(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x658(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x99650
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
addq $0x30, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0xab090
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
callq 0xab0c0
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xab0f0
testb $0x1, %al
jne 0xf4cab
jmp 0xf4d6d
leaq -0x40(%rbp), %rdi
callq 0xab130
movq %rax, %rcx
movq -0x658(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x50(%rbp)
movq -0x50(%rbp), %rsi
movq 0x18(%rax), %rdx
leaq -0x78(%rbp), %rdi
callq 0xf63f0
jmp 0xf4cd8
leaq -0xa8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xf61a0
jmp 0xf4cea
leaq -0x30(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x995d0
jmp 0xf4cfc
leaq -0xa8(%rbp), %rdi
callq 0x992c0
leaq -0x78(%rbp), %rdi
callq 0xf6450
leaq -0x40(%rbp), %rdi
callq 0xab1c0
jmp 0xf4c95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6119
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf4d5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x992c0
leaq -0x78(%rbp), %rdi
callq 0xf6450
jmp 0xf6119
leaq -0xc0(%rbp), %rdi
callq 0xa0c50
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rax), %rax
movl (%rax), %esi
leaq -0xd8(%rbp), %rdi
callq 0xeeeb0
jmp 0xf4d98
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rax), %rax
testb $0x1, 0x4(%rax)
je 0xf5637
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rax), %rax
movl (%rax), %eax
movl %eax, -0x66c(%rbp)
subl $0x8, %eax
jb 0xf4e08
jmp 0xf4dcf
movl -0x66c(%rbp), %eax
subl $0x9, %eax
je 0xf5206
jmp 0xf4de0
movl -0x66c(%rbp), %eax
subl $0xa, %eax
je 0xf520b
jmp 0xf5630
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf610d
leaq -0xf0(%rbp), %rdi
callq 0xa0c50
leaq -0xd8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdi
callq 0xef060
movq %rax, -0x100(%rbp)
movq -0xf8(%rbp), %rdi
callq 0xef090
movq %rax, -0x108(%rbp)
leaq -0x100(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xef0c0
testb $0x1, %al
jne 0xf4e64
jmp 0xf4f67
leaq -0x100(%rbp), %rdi
callq 0xef100
movq %rax, %rsi
leaq -0x148(%rbp), %rdi
callq 0xb99d0
jmp 0xf4e81
leaq -0x1a8(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0xb99d0
jmp 0xf4e96
xorl %eax, %eax
movl %eax, %edx
leaq -0x168(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xf6610
jmp 0xf4eaf
leaq -0xf0(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0xa1220
jmp 0xf4ec4
leaq -0x168(%rbp), %rdi
callq 0x992c0
leaq -0x1a8(%rbp), %rdi
callq 0xb97b0
leaq -0x148(%rbp), %rdi
callq 0xb97b0
leaq -0x100(%rbp), %rdi
callq 0xef290
jmp 0xf4e48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf51f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf4f56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf4f4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x992c0
leaq -0x1a8(%rbp), %rdi
callq 0xb97b0
leaq -0x148(%rbp), %rdi
callq 0xb97b0
jmp 0xf51f5
leaq -0x1f0(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movl $0x3, -0x1f0(%rbp)
leaq -0x1e8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xbd9b0
jmp 0xf4f94
leaq -0x1f0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq $0x1, -0x1c8(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x678(%rbp)
callq 0xf6740
movq -0x678(%rbp), %rcx
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
leaq -0x1c0(%rbp), %rdi
callq 0xf6760
jmp 0xf4fe3
leaq -0x1f9(%rbp), %rdi
callq 0xf67e0
leaq -0x1f0(%rbp), %rax
movq %rax, -0x688(%rbp)
addq $0x20, %rax
movq %rax, -0x680(%rbp)
movq -0x680(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x690(%rbp)
callq 0xf6720
movq -0x688(%rbp), %rcx
movq -0x690(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x680(%rbp)
jne 0xf5008
movl $0x1, -0x264(%rbp)
leaq 0x3bbf6(%rip), %rdi     # 0x130c40
leaq -0x264(%rbp), %rsi
callq 0xeed70
movq %rax, -0x698(%rbp)
jmp 0xf505f
movq -0x698(%rbp), %rsi
leaq -0x260(%rbp), %rdi
callq 0xb99d0
jmp 0xf5074
leaq -0x220(%rbp), %rdi
leaq -0x260(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
callq 0xf6610
jmp 0xf5090
leaq -0xc0(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xa1220
jmp 0xf50a5
leaq -0x220(%rbp), %rdi
callq 0x992c0
leaq -0x260(%rbp), %rdi
callq 0xb97b0
leaq -0x1c0(%rbp), %rdi
callq 0xf6800
leaq -0xf0(%rbp), %rdi
callq 0xa0c70
jmp 0xf5632
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
movq -0x1f8(%rbp), %rax
leaq -0x1f0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x6a0(%rbp)
je 0xf5134
movq -0x6a0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x6a8(%rbp)
callq 0xf6720
movq -0x6a8(%rbp), %rax
leaq -0x1f0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x6a0(%rbp)
jne 0xf5103
jmp 0xf51f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x1f9(%rbp), %rdi
callq 0xf67e0
leaq -0x1f0(%rbp), %rax
movq %rax, -0x6b8(%rbp)
addq $0x20, %rax
movq %rax, -0x6b0(%rbp)
movq -0x6b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x6c0(%rbp)
callq 0xf6720
movq -0x6b8(%rbp), %rcx
movq -0x6c0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x6b0(%rbp)
jne 0xf516d
jmp 0xf51f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf51e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf51dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x992c0
leaq -0x260(%rbp), %rdi
callq 0xb97b0
leaq -0x1c0(%rbp), %rdi
callq 0xf6800
leaq -0xf0(%rbp), %rdi
callq 0xa0c70
jmp 0xf6101
jmp 0xf5632
movq -0x658(%rbp), %rax
movb $0x1, -0x2f2(%rbp)
leaq -0x2b0(%rbp), %rcx
movq %rcx, -0x2b8(%rbp)
movl $0x1, -0x2b0(%rbp)
leaq -0x2a8(%rbp), %rcx
movq %rcx, -0x6c8(%rbp)
leaq -0x2e8(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
movq 0x20(%rax), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rsi
addq $0x8, %rsi
callq 0x991c0
jmp 0xf5264
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq $0x1, -0x2c0(%rbp)
leaq -0x2f1(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
callq 0xa1680
movq -0x6c8(%rbp), %rdi
movq -0x6d0(%rbp), %rcx
movq -0x2c8(%rbp), %rsi
movq -0x2c0(%rbp), %rdx
callq 0xf6860
jmp 0xf52b3
movb $0x0, -0x2f2(%rbp)
leaq -0x2b0(%rbp), %rax
movq %rax, -0x290(%rbp)
movq $0x1, -0x288(%rbp)
leaq -0x2f3(%rbp), %rdi
movq %rdi, -0x6d8(%rbp)
callq 0xf6740
movq -0x6d8(%rbp), %rcx
movq -0x290(%rbp), %rsi
movq -0x288(%rbp), %rdx
leaq -0x280(%rbp), %rdi
callq 0xf6760
jmp 0xf5309
leaq -0x2f3(%rbp), %rdi
callq 0xf67e0
leaq -0x2b0(%rbp), %rax
movq %rax, -0x6e8(%rbp)
addq $0x20, %rax
movq %rax, -0x6e0(%rbp)
movq -0x6e0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x6f0(%rbp)
callq 0xf6720
movq -0x6e8(%rbp), %rcx
movq -0x6f0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x6e0(%rbp)
jne 0xf532e
leaq -0x2f1(%rbp), %rdi
callq 0xa1e40
leaq -0x2e8(%rbp), %rax
movq %rax, -0x700(%rbp)
addq $0x20, %rax
movq %rax, -0x6f8(%rbp)
movq -0x6f8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x708(%rbp)
callq 0x992c0
movq -0x700(%rbp), %rcx
movq -0x708(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x6f8(%rbp)
jne 0xf5384
movl $0x0, -0x35c(%rbp)
leaq 0x3b87a(%rip), %rdi     # 0x130c40
leaq -0x35c(%rbp), %rsi
callq 0xeed70
movq %rax, -0x710(%rbp)
jmp 0xf53db
movq -0x710(%rbp), %rsi
leaq -0x358(%rbp), %rdi
callq 0xb99d0
jmp 0xf53f0
leaq -0x318(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x280(%rbp), %rdx
callq 0xf6610
jmp 0xf540c
leaq -0xc0(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0xa1220
jmp 0xf5421
leaq -0x318(%rbp), %rdi
callq 0x992c0
leaq -0x358(%rbp), %rdi
callq 0xb97b0
leaq -0x280(%rbp), %rdi
callq 0xf6800
jmp 0xf5632
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
movq -0x2f0(%rbp), %rax
leaq -0x2e8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x718(%rbp)
je 0xf54a4
movq -0x718(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x720(%rbp)
callq 0x992c0
movq -0x720(%rbp), %rax
leaq -0x2e8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x718(%rbp)
jne 0xf5473
jmp 0xf5579
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf5521
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x2f3(%rbp), %rdi
callq 0xf67e0
leaq -0x2b0(%rbp), %rax
movq %rax, -0x730(%rbp)
addq $0x20, %rax
movq %rax, -0x728(%rbp)
movq -0x728(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x738(%rbp)
callq 0xf6720
movq -0x730(%rbp), %rcx
movq -0x738(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x728(%rbp)
jne 0xf54ee
jmp 0xf5521
leaq -0x2f1(%rbp), %rdi
callq 0xa1e40
leaq -0x2e8(%rbp), %rax
movq %rax, -0x748(%rbp)
addq $0x20, %rax
movq %rax, -0x740(%rbp)
movq -0x740(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x750(%rbp)
callq 0x992c0
movq -0x748(%rbp), %rcx
movq -0x750(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x740(%rbp)
jne 0xf5546
jmp 0xf5579
testb $0x1, -0x2f2(%rbp)
jne 0xf5584
jmp 0xf55d1
movq -0x2b8(%rbp), %rax
leaq -0x2b0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x758(%rbp)
je 0xf55cf
movq -0x758(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x760(%rbp)
callq 0xf6720
movq -0x760(%rbp), %rax
leaq -0x2b0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x758(%rbp)
jne 0xf559e
jmp 0xf55d1
jmp 0xf6101
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf561f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf5613
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x992c0
leaq -0x358(%rbp), %rdi
callq 0xb97b0
leaq -0x280(%rbp), %rdi
callq 0xf6800
jmp 0xf6101
jmp 0xf5632
jmp 0xf5bac
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rax), %rax
movl (%rax), %eax
movl %eax, -0x764(%rbp)
subl $0x8, %eax
jb 0xf567a
jmp 0xf5655
movl -0x764(%rbp), %eax
subl $0x9, %eax
je 0xf577e
jmp 0xf5666
movl -0x764(%rbp), %eax
subl $0xa, %eax
je 0xf5783
jmp 0xf5ba8
leaq -0xd8(%rbp), %rdi
callq 0xf0ef0
subq $0x1, %rax
movl %eax, -0x360(%rbp)
cmpl $0x0, -0x360(%rbp)
jl 0xf5779
movslq -0x360(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0xf68e0
movq %rax, -0x770(%rbp)
jmp 0xf56b9
movq -0x770(%rbp), %rsi
leaq -0x3c0(%rbp), %rdi
callq 0xb99d0
jmp 0xf56ce
xorl %eax, %eax
movl %eax, %edx
leaq -0x380(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xf6610
jmp 0xf56e7
leaq -0xc0(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0xa1220
jmp 0xf56fc
leaq -0x380(%rbp), %rdi
callq 0x992c0
leaq -0x3c0(%rbp), %rdi
callq 0xb97b0
movl -0x360(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x360(%rbp)
jmp 0xf5690
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6101
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf5768
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x992c0
leaq -0x3c0(%rbp), %rdi
callq 0xb97b0
jmp 0xf6101
jmp 0xf5baa
jmp 0xf5baa
movq -0x658(%rbp), %rax
movb $0x1, -0x44a(%rbp)
leaq -0x408(%rbp), %rcx
movq %rcx, -0x410(%rbp)
movl $0x1, -0x408(%rbp)
leaq -0x400(%rbp), %rcx
movq %rcx, -0x778(%rbp)
leaq -0x440(%rbp), %rdi
movq %rdi, -0x448(%rbp)
movq 0x20(%rax), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rsi
addq $0x8, %rsi
callq 0x991c0
jmp 0xf57dc
leaq -0x440(%rbp), %rax
movq %rax, -0x420(%rbp)
movq $0x1, -0x418(%rbp)
leaq -0x449(%rbp), %rdi
movq %rdi, -0x780(%rbp)
callq 0xa1680
movq -0x778(%rbp), %rdi
movq -0x780(%rbp), %rcx
movq -0x420(%rbp), %rsi
movq -0x418(%rbp), %rdx
callq 0xf6860
jmp 0xf582b
movb $0x0, -0x44a(%rbp)
leaq -0x408(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq $0x1, -0x3e0(%rbp)
leaq -0x44b(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0xf6740
movq -0x788(%rbp), %rcx
movq -0x3e8(%rbp), %rsi
movq -0x3e0(%rbp), %rdx
leaq -0x3d8(%rbp), %rdi
callq 0xf6760
jmp 0xf5881
leaq -0x44b(%rbp), %rdi
callq 0xf67e0
leaq -0x408(%rbp), %rax
movq %rax, -0x798(%rbp)
addq $0x20, %rax
movq %rax, -0x790(%rbp)
movq -0x790(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x7a0(%rbp)
callq 0xf6720
movq -0x798(%rbp), %rcx
movq -0x7a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x790(%rbp)
jne 0xf58a6
leaq -0x449(%rbp), %rdi
callq 0xa1e40
leaq -0x440(%rbp), %rax
movq %rax, -0x7b0(%rbp)
addq $0x20, %rax
movq %rax, -0x7a8(%rbp)
movq -0x7a8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x7b8(%rbp)
callq 0x992c0
movq -0x7b0(%rbp), %rcx
movq -0x7b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x7a8(%rbp)
jne 0xf58fc
movl $0x2, -0x4b4(%rbp)
leaq 0x3b302(%rip), %rdi     # 0x130c40
leaq -0x4b4(%rbp), %rsi
callq 0xeed70
movq %rax, -0x7c0(%rbp)
jmp 0xf5953
movq -0x7c0(%rbp), %rsi
leaq -0x4b0(%rbp), %rdi
callq 0xb99d0
jmp 0xf5968
leaq -0x470(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x3d8(%rbp), %rdx
callq 0xf6610
jmp 0xf5984
leaq -0xc0(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0xa1220
jmp 0xf5999
leaq -0x470(%rbp), %rdi
callq 0x992c0
leaq -0x4b0(%rbp), %rdi
callq 0xb97b0
leaq -0x3d8(%rbp), %rdi
callq 0xf6800
jmp 0xf5baa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
movq -0x448(%rbp), %rax
leaq -0x440(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x7c8(%rbp)
je 0xf5a1c
movq -0x7c8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x7d0(%rbp)
callq 0x992c0
movq -0x7d0(%rbp), %rax
leaq -0x440(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x7c8(%rbp)
jne 0xf59eb
jmp 0xf5af1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf5a99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x44b(%rbp), %rdi
callq 0xf67e0
leaq -0x408(%rbp), %rax
movq %rax, -0x7e0(%rbp)
addq $0x20, %rax
movq %rax, -0x7d8(%rbp)
movq -0x7d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x7e8(%rbp)
callq 0xf6720
movq -0x7e0(%rbp), %rcx
movq -0x7e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x7d8(%rbp)
jne 0xf5a66
jmp 0xf5a99
leaq -0x449(%rbp), %rdi
callq 0xa1e40
leaq -0x440(%rbp), %rax
movq %rax, -0x7f8(%rbp)
addq $0x20, %rax
movq %rax, -0x7f0(%rbp)
movq -0x7f0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x800(%rbp)
callq 0x992c0
movq -0x7f8(%rbp), %rcx
movq -0x800(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x7f0(%rbp)
jne 0xf5abe
jmp 0xf5af1
testb $0x1, -0x44a(%rbp)
jne 0xf5afc
jmp 0xf5b49
movq -0x410(%rbp), %rax
leaq -0x408(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x808(%rbp)
je 0xf5b47
movq -0x808(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x810(%rbp)
callq 0xf6720
movq -0x810(%rbp), %rax
leaq -0x408(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x808(%rbp)
jne 0xf5b16
jmp 0xf5b49
jmp 0xf6101
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf5b97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf5b8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x992c0
leaq -0x4b0(%rbp), %rdi
callq 0xb97b0
leaq -0x3d8(%rbp), %rdi
callq 0xf6800
jmp 0xf6101
jmp 0xf5baa
jmp 0xf5bac
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x8(%rax), %esi
incl %esi
leaq -0x4d8(%rbp), %rdi
callq 0xeb9c0
jmp 0xf5bca
leaq -0xc0(%rbp), %rdi
callq 0xa0ef0
movb $0x0, -0x5d1(%rbp)
movb $0x0, -0x619(%rbp)
movb $0x0, -0x61a(%rbp)
movb $0x0, -0x61b(%rbp)
movb $0x0, -0x61c(%rbp)
movb $0x0, -0x61d(%rbp)
movb $0x0, -0x61f(%rbp)
cmpq $0x0, %rax
jbe 0xf5cfa
leaq -0x5d0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0xbd9b0
jmp 0xf5c26
movb $0x1, -0x5d1(%rbp)
leaq 0xaf7a(%rip), %rsi      # 0x100bae
leaq -0x618(%rbp), %rdi
leaq -0x4d8(%rbp), %rdx
callq 0xa6e30
jmp 0xf5c49
movb $0x1, -0x619(%rbp)
leaq 0xafbd(%rip), %rdx      # 0x100c14
leaq -0x5f8(%rbp), %rdi
leaq -0x618(%rbp), %rsi
callq 0xa10c0
jmp 0xf5c6c
movb $0x1, -0x61a(%rbp)
leaq -0x5b8(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
leaq -0x5f8(%rbp), %rdx
callq 0xecb30
jmp 0xf5c8f
movb $0x1, -0x61b(%rbp)
leaq 0xaf77(%rip), %rsi      # 0x100c14
leaq -0x598(%rbp), %rdi
leaq -0x5b8(%rbp), %rdx
callq 0xa6e30
jmp 0xf5cb2
movb $0x1, -0x61c(%rbp)
leaq 0xaeee(%rip), %rdx      # 0x100bae
leaq -0x578(%rbp), %rdi
leaq -0x598(%rbp), %rsi
callq 0xa10c0
jmp 0xf5cd5
movb $0x1, -0x61d(%rbp)
leaq -0x558(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
leaq -0x578(%rbp), %rdx
callq 0xeba70
jmp 0xf5cf8
jmp 0xf5d32
leaq -0x61e(%rbp), %rdi
movq %rdi, -0x818(%rbp)
callq 0x99850
movq -0x818(%rbp), %rdx
movb $0x1, -0x61f(%rbp)
leaq 0xae8d(%rip), %rsi      # 0x100baf
leaq -0x558(%rbp), %rdi
callq 0x99640
jmp 0xf5d30
jmp 0xf5d32
leaq -0x538(%rbp), %rdi
leaq -0x558(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xa1070
jmp 0xf5d4b
leaq -0x518(%rbp), %rdi
leaq -0x538(%rbp), %rsi
leaq -0x4d8(%rbp), %rdx
callq 0xa1070
jmp 0xf5d67
movq -0x658(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x48(%rax), %rsi
leaq -0x650(%rbp), %rdi
callq 0xec8c0
jmp 0xf5d84
leaq -0x640(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0xec900
jmp 0xf5d99
leaq -0x4f8(%rbp), %rdi
leaq -0x518(%rbp), %rsi
leaq -0x640(%rbp), %rdx
callq 0xa6d60
jmp 0xf5db5
movq -0x668(%rbp), %rdi
leaq 0xad56(%rip), %rdx      # 0x100b19
leaq -0x4f8(%rbp), %rsi
callq 0xa10c0
jmp 0xf5dd1
leaq -0x4f8(%rbp), %rdi
callq 0x992c0
leaq -0x640(%rbp), %rdi
callq 0x992c0
leaq -0x650(%rbp), %rdi
callq 0xec8f0
leaq -0x518(%rbp), %rdi
callq 0x992c0
leaq -0x538(%rbp), %rdi
callq 0x992c0
leaq -0x558(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x61f(%rbp)
jne 0xf5e24
jmp 0xf5e30
leaq -0x61e(%rbp), %rdi
callq 0x994f0
testb $0x1, -0x61d(%rbp)
jne 0xf5e3b
jmp 0xf5e47
leaq -0x578(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x61c(%rbp)
jne 0xf5e52
jmp 0xf5e5e
leaq -0x598(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x61b(%rbp)
jne 0xf5e69
jmp 0xf5e75
leaq -0x5b8(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x61a(%rbp)
jne 0xf5e80
jmp 0xf5e8c
leaq -0x5f8(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x619(%rbp)
jne 0xf5e97
jmp 0xf5ea3
leaq -0x618(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x5d1(%rbp)
jne 0xf5eae
jmp 0xf5eba
leaq -0x5d0(%rbp), %rdi
callq 0xa0c70
leaq -0x4d8(%rbp), %rdi
callq 0x992c0
leaq -0xd8(%rbp), %rdi
callq 0xef2b0
leaq -0xc0(%rbp), %rdi
callq 0xa0c70
leaq -0x30(%rbp), %rdi
callq 0x992c0
movq -0x660(%rbp), %rax
addq $0x820, %rsp            # imm = 0x820
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf60f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf60dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf60c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf60aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6091
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6078
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf605f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6046
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf603a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf602e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6022
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf6016
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0xf600a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x992c0
leaq -0x640(%rbp), %rdi
callq 0x992c0
leaq -0x650(%rbp), %rdi
callq 0xec8f0
leaq -0x518(%rbp), %rdi
callq 0x992c0
leaq -0x538(%rbp), %rdi
callq 0x992c0
leaq -0x558(%rbp), %rdi
callq 0x992c0
testb $0x1, -0x61f(%rbp)
jne 0xf6051
jmp 0xf605d
leaq -0x61e(%rbp), %rdi
callq 0x994f0
jmp 0xf605f
testb $0x1, -0x61d(%rbp)
jne 0xf606a
jmp 0xf6076
leaq -0x578(%rbp), %rdi
callq 0x992c0
jmp 0xf6078
testb $0x1, -0x61c(%rbp)
jne 0xf6083
jmp 0xf608f
leaq -0x598(%rbp), %rdi
callq 0x992c0
jmp 0xf6091
testb $0x1, -0x61b(%rbp)
jne 0xf609c
jmp 0xf60a8
leaq -0x5b8(%rbp), %rdi
callq 0x992c0
jmp 0xf60aa
testb $0x1, -0x61a(%rbp)
jne 0xf60b5
jmp 0xf60c1
leaq -0x5f8(%rbp), %rdi
callq 0x992c0
jmp 0xf60c3
testb $0x1, -0x619(%rbp)
jne 0xf60ce
jmp 0xf60da
leaq -0x618(%rbp), %rdi
callq 0x992c0
jmp 0xf60dc
testb $0x1, -0x5d1(%rbp)
jne 0xf60e7
jmp 0xf60f3
leaq -0x5d0(%rbp), %rdi
callq 0xa0c70
jmp 0xf60f5
leaq -0x4d8(%rbp), %rdi
callq 0x992c0
leaq -0xd8(%rbp), %rdi
callq 0xef2b0
leaq -0xc0(%rbp), %rdi
callq 0xa0c70
leaq -0x30(%rbp), %rdi
callq 0x992c0
movq -0x80(%rbp), %rdi
callq 0x99840
nopl (%rax,%rax)