// File: CoinXu[P]reviser-compiler/src/compiler/javascript/javascript_common.h
// Function: reviser::javascript::JavaScriptCommon::DecoraterSyntaxCallable[abi:cxx11](reviser::compiler::ReviserSyntaxDefinition, std::vector<reviser::compiler::DecoraterArg, std::allocator<reviser::compiler::DecoraterArg>>*)
const static string DecoraterSyntaxCallable(ReviserSyntaxDefinition def, vector<DecoraterArg>* args) {
      vector<string> result;

      if (args) {
        for (DecoraterArg arg : *args)  {
          switch (arg.type) {
            case ARG_ARRAY:
              result.push_back("[" + JoinVector(arg.value, ", ") + "]");
              break;

            case ARG_NUMBER:
            case ARG_STRING:
            case ARG_STRUCT:
              result.push_back(JoinVector(arg.value, ", "));
              break;

            default:
              break;
          }
        }
      }

      return def.name + "(" + JoinVector(result, ", ") + ")";
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movq %rsi, -0x230(%rbp)
movq %rdi, -0x228(%rbp)
movq %rdi, %rax
movq %rax, -0x220(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xa0c50
cmpq $0x0, -0x18(%rbp)
je 0xf6ca1
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0xf6e60
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
callq 0xf6e90
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xf6ec0
testb $0x1, %al
jne 0xf699b
jmp 0xf6c9f
leaq -0x40(%rbp), %rdi
callq 0xf6f00
movq %rax, %rsi
leaq -0x68(%rbp), %rdi
callq 0xf6f20
jmp 0xf69b2
movl -0x68(%rbp), %eax
movl %eax, -0x234(%rbp)
subl $0x3, %eax
jb 0xf6b7d
jmp 0xf69c6
movl -0x234(%rbp), %eax
subl $0x3, %eax
je 0xf69e7
jmp 0xf6c78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6e3f
leaq -0x60(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
callq 0xbd9b0
jmp 0xf69f9
leaq -0x111(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x99850
movq -0x240(%rbp), %rdx
leaq 0xa062(%rip), %rsi      # 0x100a7c
leaq -0x110(%rbp), %rdi
callq 0x99640
jmp 0xf6a28
leaq -0xd8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0xecb30
jmp 0xf6a44
leaq 0x8ac0(%rip), %rsi      # 0xff50b
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
callq 0xa6e30
jmp 0xf6a60
leaq 0xa01b(%rip), %rdx      # 0x100a82
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xa10c0
jmp 0xf6a7c
leaq -0x30(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xecae0
jmp 0xf6a8e
leaq -0x98(%rbp), %rdi
callq 0x992c0
leaq -0xb8(%rbp), %rdi
callq 0x992c0
leaq -0xd8(%rbp), %rdi
callq 0x992c0
leaq -0x110(%rbp), %rdi
callq 0x992c0
leaq -0x111(%rbp), %rdi
callq 0x994f0
leaq -0xf0(%rbp), %rdi
callq 0xa0c70
jmp 0xf6c7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6c91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6b60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6b54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6b48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6b3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x992c0
leaq -0xb8(%rbp), %rdi
callq 0x992c0
leaq -0xd8(%rbp), %rdi
callq 0x992c0
leaq -0x110(%rbp), %rdi
callq 0x992c0
leaq -0x111(%rbp), %rdi
callq 0x994f0
leaq -0xf0(%rbp), %rdi
callq 0xa0c70
jmp 0xf6c91
leaq -0x60(%rbp), %rsi
leaq -0x150(%rbp), %rdi
callq 0xbd9b0
jmp 0xf6b8f
leaq -0x171(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x99850
movq -0x248(%rbp), %rdx
leaq 0x9ecc(%rip), %rsi      # 0x100a7c
leaq -0x170(%rbp), %rdi
callq 0x99640
jmp 0xf6bbe
leaq -0x138(%rbp), %rdi
leaq -0x150(%rbp), %rsi
leaq -0x170(%rbp), %rdx
callq 0xecb30
jmp 0xf6bda
leaq -0x30(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0xa1220
jmp 0xf6bec
leaq -0x138(%rbp), %rdi
callq 0x992c0
leaq -0x170(%rbp), %rdi
callq 0x992c0
leaq -0x171(%rbp), %rdi
callq 0x994f0
leaq -0x150(%rbp), %rdi
callq 0xa0c70
jmp 0xf6c7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6c5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6c52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x992c0
leaq -0x170(%rbp), %rdi
callq 0x992c0
leaq -0x171(%rbp), %rdi
callq 0x994f0
leaq -0x150(%rbp), %rdi
callq 0xa0c70
jmp 0xf6c91
jmp 0xf6c7a
leaq -0x68(%rbp), %rdi
callq 0xf6720
leaq -0x40(%rbp), %rdi
callq 0xf6f60
jmp 0xf6985
leaq -0x68(%rbp), %rdi
callq 0xf6720
jmp 0xf6e3f
jmp 0xf6ca1
movq -0x230(%rbp), %rsi
leaq 0x9f67(%rip), %rdx      # 0x100c16
leaq -0x1b8(%rbp), %rdi
callq 0xaaee0
jmp 0xf6cbd
leaq -0x1f0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xbd9b0
jmp 0xf6ccf
leaq -0x211(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x99850
movq -0x250(%rbp), %rdx
leaq 0x9d8c(%rip), %rsi      # 0x100a7c
leaq -0x210(%rbp), %rdi
callq 0x99640
jmp 0xf6cfe
leaq -0x1d8(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
leaq -0x210(%rbp), %rdx
callq 0xecb30
jmp 0xf6d1a
leaq -0x198(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
callq 0xa1070
jmp 0xf6d36
movq -0x228(%rbp), %rdi
leaq 0x9706(%rip), %rdx      # 0x10044a
leaq -0x198(%rbp), %rsi
callq 0xa10c0
jmp 0xf6d52
leaq -0x198(%rbp), %rdi
callq 0x992c0
leaq -0x1d8(%rbp), %rdi
callq 0x992c0
leaq -0x210(%rbp), %rdi
callq 0x992c0
leaq -0x211(%rbp), %rdi
callq 0x994f0
leaq -0x1f0(%rbp), %rdi
callq 0xa0c70
leaq -0x1b8(%rbp), %rdi
callq 0x992c0
leaq -0x30(%rbp), %rdi
callq 0xa0c70
movq -0x220(%rbp), %rax
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6e33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6e1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6e0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xf6e03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x992c0
leaq -0x1d8(%rbp), %rdi
callq 0x992c0
leaq -0x210(%rbp), %rdi
callq 0x992c0
leaq -0x211(%rbp), %rdi
callq 0x994f0
leaq -0x1f0(%rbp), %rdi
callq 0xa0c70
leaq -0x1b8(%rbp), %rdi
callq 0x992c0
leaq -0x30(%rbp), %rdi
callq 0xa0c70
movq -0x70(%rbp), %rdi
callq 0x99840
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)