// File: /workspace/github_c_makefile_star2_O0/MartinNovotny25[P]VUT-FIT-IFJ2020/semantics.c
// Function: assign_func_params_control
void assign_func_params_control(TDLList *L,tBSTNodePtrLocal *node, char *func_name){
    int type;
    if(!(strcmp(func_name, "inputs"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type != t_RIGHT_BRACKET){
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        } 
    }else if(!(strcmp(func_name, "inputi"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type != t_RIGHT_BRACKET){
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        } 
    }else if(!(strcmp(func_name, "inputf"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type != t_RIGHT_BRACKET){
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        } 
    }else if(!(strcmp(func_name, "int2float"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type == t_INT_NON_ZERO || L->Act->tdata.type == t_INT_ZERO || L->Act->tdata.type == t_INT_ID){

        }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF,L);
            }else{
                if(type == t_INT_ID){}
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }
        }else{
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        }
    }else if(!(strcmp(func_name, "float2int"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type == t_FLOAT64 || L->Act->tdata.type == t_FLOAT){

        }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF, L);
            }else{
                if(type == t_FLOAT64){}
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }
        }else{
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        }
    }else if(!(strcmp(func_name, "len"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type == t_STRING_ID || L->Act->tdata.type == t_STRING){

        }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF, L);
            }else{
                if(type == t_STRING_ID){}
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }
        }else{
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        }
    }else if(!(strcmp(func_name, "substr"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type == t_STRING || L->Act->tdata.type == t_STRING_ID){
            TDLLSucc(L);
            if(L->Act->tdata.type != t_COMMA){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_DATATYPE, L);
            }
            TDLLSucc(L);
            if(L->Act->tdata.type == t_INT_ID || L->Act->tdata.type == t_INT_NON_ZERO || L->Act->tdata.type == t_INT_ZERO){
                TDLLSucc(L);
                if(L->Act->tdata.type != t_COMMA){
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
                TDLLSucc(L);
                if(L->Act->tdata.type == t_INT_ID || L->Act->tdata.type == t_INT_NON_ZERO || L->Act->tdata.type == t_INT_ZERO){
                
                }else if(L->Act->tdata.type == t_IDENTIFIER){
                    if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                        BSTDisposeLocal(node);
                        error_call(ERR_SEM_UNDEF, L);
                    }else{
                        if(type == t_INT_ID){}
                        else{
                            BSTDisposeLocal(node);
                            error_call(ERR_SEM_DATATYPE, L);
                        }
                    }
                }else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }else if(L->Act->tdata.type == t_IDENTIFIER){
                if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_UNDEF, L);
                }else{
                    if(type == t_INT_ID){}
                    else{
                        BSTDisposeLocal(node);
                        error_call(ERR_SEM_DATATYPE, L);
                    }
                }
            }else{
                BSTDisposeLocal(node);
                error_call(ERR_SEM_DATATYPE, L);
            }
        }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF, L);
            }else{
                if(type == t_STRING_ID){
                    TDLLSucc(L);
                    if(L->Act->tdata.type != t_COMMA){
                        BSTDisposeLocal(node);
                        error_call(ERR_SEM_DATATYPE, L);
                    }
                    TDLLSucc(L);
                    if(L->Act->tdata.type == t_INT_ID || L->Act->tdata.type == t_INT_NON_ZERO || L->Act->tdata.type == t_INT_ZERO){
                        TDLLSucc(L);
                        if(L->Act->tdata.type != t_COMMA){
                            BSTDisposeLocal(node);
                            error_call(ERR_SEM_DATATYPE, L);
                        }
                        TDLLSucc(L);
                        if(L->Act->tdata.type == t_INT_ID || L->Act->tdata.type == t_INT_NON_ZERO || L->Act->tdata.type == t_INT_ZERO){
                
                        }else if(L->Act->tdata.type == t_IDENTIFIER){
                            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                                BSTDisposeLocal(node);
                                error_call(ERR_SEM_UNDEF, L);
                            }else{
                                if(type == t_INT_ID){}
                                else{
                                    BSTDisposeLocal(node);
                                    error_call(ERR_SEM_DATATYPE, L);
                                }
                            }
                        }else{
                            BSTDisposeLocal(node);
                            error_call(ERR_SEM_DATATYPE, L);
                        }
                    }else if(L->Act->tdata.type == t_IDENTIFIER){
                        if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                            BSTDisposeLocal(node);
                            error_call(ERR_SEM_UNDEF, L);
                        }else{
                            if(type == t_INT_ID){}
                            else{
                                BSTDisposeLocal(node);
                                error_call(ERR_SEM_DATATYPE, L);
                            }
                        }
                    }else{
                        BSTDisposeLocal(node);
                        error_call(ERR_SEM_DATATYPE, L);
                    }
                }
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE,L);
                }
            }
        }else{
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        }
    }else if(!(strcmp(func_name, "ord"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type == t_STRING_ID || L->Act->tdata.type == t_STRING){
            TDLLSucc(L);
            if(L->Act->tdata.type != t_COMMA){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_DATATYPE, L);
            }
            TDLLSucc(L);
            if(L->Act->tdata.type == t_INT_ZERO || L->Act->tdata.type == t_INT_NON_ZERO || L->Act->tdata.type == t_INT_ID){

            }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF, L);
            }else{
                if(type == t_INT_ID){}
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }
        }else{
                BSTDisposeLocal(node);
                error_call(ERR_SEM_DATATYPE, L);
            }
        }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF, L);
            }else{
                if(type == t_STRING_ID){}
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }
        }else{
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        }
    }else if(!(strcmp(func_name, "chr"))){
        TDLLSucc(L);
        TDLLSucc(L);
        if(L->Act->tdata.type == t_INT_ID || L->Act->tdata.type == t_INT_ZERO || L->Act->tdata.type == t_INT_NON_ZERO){

        }else if(L->Act->tdata.type == t_IDENTIFIER){
            if(!(MainStackSearch(mainstack, L->Act->tdata.lex, &type))){
                BSTDisposeLocal(node);
                error_call(ERR_SEM_UNDEF, L);
            }else{
                if(type == t_INT_ID){}
                else{
                    BSTDisposeLocal(node);
                    error_call(ERR_SEM_DATATYPE, L);
                }
            }
        }else{
            BSTDisposeLocal(node);
            error_call(ERR_SEM_DATATYPE, L);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1fc0, %rsp           # imm = 0x1FC0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x2c94(%rip), %rsi      # 0xd5e6
callq 0x1070
cmpl $0x0, %eax
jne 0xa998
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x7, 0x8(%rax)
je 0xa993
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb4c9
movq -0x18(%rbp), %rdi
leaq 0x2c4a(%rip), %rsi      # 0xd5ed
callq 0x1070
cmpl $0x0, %eax
jne 0xa9e9
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x7, 0x8(%rax)
je 0xa9e4
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb4c7
movq -0x18(%rbp), %rdi
leaq 0x2c00(%rip), %rsi      # 0xd5f4
callq 0x1070
cmpl $0x0, %eax
jne 0xaa3a
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x7, 0x8(%rax)
je 0xaa35
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb4c5
movq -0x18(%rbp), %rdi
leaq 0x2bb6(%rip), %rsi      # 0xd5fb
callq 0x1070
cmpl $0x0, %eax
jne 0xab2e
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
je 0xaa8f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
je 0xaa8f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
jne 0xaa94
jmp 0xab29
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xab10
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
leaq 0x59d0(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x28(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xaaed
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xab0e
cmpl $0x18, -0x1c(%rbp)
jne 0xaaf5
jmp 0xab0c
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xab0e
jmp 0xab27
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xab29
jmp 0xb4c3
movq -0x18(%rbp), %rdi
leaq 0x2acc(%rip), %rsi      # 0xd605
callq 0x1070
cmpl $0x0, %eax
jne 0xac14
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x17, 0x8(%rax)
je 0xab75
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x29, 0x8(%rax)
jne 0xab7a
jmp 0xac0f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xabf6
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
leaq 0x58ea(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x30(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xabd3
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xabf4
cmpl $0x17, -0x1c(%rbp)
jne 0xabdb
jmp 0xabf2
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xabf4
jmp 0xac0d
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xac0f
jmp 0xb4c1
movq -0x18(%rbp), %rdi
leaq 0x29f0(%rip), %rsi      # 0xd60f
callq 0x1070
cmpl $0x0, %eax
jne 0xacfa
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x14, 0x8(%rax)
je 0xac5b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xac60
jmp 0xacf5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xacdc
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
leaq 0x5804(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x38(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xacb9
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xacda
cmpl $0x14, -0x1c(%rbp)
jne 0xacc1
jmp 0xacd8
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xacda
jmp 0xacf3
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xacf5
jmp 0xb4bf
movq -0x18(%rbp), %rdi
leaq 0x290e(%rip), %rsi      # 0xd613
callq 0x1070
cmpl $0x0, %eax
jne 0xb1e3
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x2b, 0x8(%rax)
je 0xad45
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x14, 0x8(%rax)
jne 0xaf44
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x5, 0x8(%rax)
je 0xad73
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
je 0xadaa
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
je 0xadaa
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
jne 0xaeaa
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x5, 0x8(%rax)
je 0xadd8
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
je 0xae0b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
je 0xae0b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
jne 0xae10
jmp 0xaea5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xae8c
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
leaq 0x5654(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x40(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xae69
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xae8a
cmpl $0x18, -0x1c(%rbp)
jne 0xae71
jmp 0xae88
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xae8a
jmp 0xaea3
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xaea5
jmp 0xaf3f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xaf26
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
leaq 0x55ba(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x48(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xaf03
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xaf24
cmpl $0x18, -0x1c(%rbp)
jne 0xaf0b
jmp 0xaf22
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xaf24
jmp 0xaf3d
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xaf3f
jmp 0xb1de
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xb1c5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
leaq 0x551c(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x50(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xafa4
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xb1c3
cmpl $0x14, -0x1c(%rbp)
jne 0xb1aa
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x5, 0x8(%rax)
je 0xafdc
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
je 0xb013
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
je 0xb013
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
jne 0xb113
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x5, 0x8(%rax)
je 0xb041
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
je 0xb074
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
je 0xb074
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
jne 0xb079
jmp 0xb10e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xb0f5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
leaq 0x53eb(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x58(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xb0d2
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xb0f3
cmpl $0x18, -0x1c(%rbp)
jne 0xb0da
jmp 0xb0f1
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb0f3
jmp 0xb10c
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb10e
jmp 0xb1a8
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xb18f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
leaq 0x5351(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x60(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xb16c
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xb18d
cmpl $0x18, -0x1c(%rbp)
jne 0xb174
jmp 0xb18b
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb18d
jmp 0xb1a6
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb1a8
jmp 0xb1c1
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb1c3
jmp 0xb1dc
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb1de
jmp 0xb4bd
movq -0x18(%rbp), %rdi
leaq 0x242c(%rip), %rsi      # 0xd61a
callq 0x1070
cmpl $0x0, %eax
jne 0xb3c8
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x14, 0x8(%rax)
je 0xb22e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x2b, 0x8(%rax)
jne 0xb32e
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x5, 0x8(%rax)
je 0xb25c
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
je 0xb28f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
je 0xb28f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
jne 0xb294
jmp 0xb329
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xb310
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
leaq 0x51d0(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x68(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xb2ed
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xb30e
cmpl $0x18, -0x1c(%rbp)
jne 0xb2f5
jmp 0xb30c
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb30e
jmp 0xb327
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb329
jmp 0xb3c3
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xb3aa
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x70(%rbp)
leaq 0x5136(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x70(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xb387
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xb3a8
cmpl $0x14, -0x1c(%rbp)
jne 0xb38f
jmp 0xb3a6
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb3a8
jmp 0xb3c1
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb3c3
jmp 0xb4bb
movq -0x18(%rbp), %rdi
leaq 0x224b(%rip), %rsi      # 0xd61e
callq 0x1070
cmpl $0x0, %eax
jne 0xb4b9
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rdi
callq 0x12e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x18, 0x8(%rax)
je 0xb41d
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, 0x8(%rax)
je 0xb41d
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x11, 0x8(%rax)
jne 0xb422
jmp 0xb4b7
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x13, 0x8(%rax)
jne 0xb49e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
leaq 0x5042(%rip), %rsi      # 0x10488
movq %rsp, %rdi
movl $0x3e9, %ecx            # imm = 0x3E9
rep  movsq (%rsi), %es:(%rdi)
movq -0x78(%rbp), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x6ec0
testb $0x1, %al
jne 0xb47b
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x3, %edi
callq 0x64e0
jmp 0xb49c
cmpl $0x18, -0x1c(%rbp)
jne 0xb483
jmp 0xb49a
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb49c
jmp 0xb4b5
movq -0x10(%rbp), %rdi
callq 0x6d90
movq -0x8(%rbp), %rsi
movl $0x4, %edi
callq 0x64e0
jmp 0xb4b7
jmp 0xb4b9
jmp 0xb4bb
jmp 0xb4bd
jmp 0xb4bf
jmp 0xb4c1
jmp 0xb4c3
jmp 0xb4c5
jmp 0xb4c7
jmp 0xb4c9
addq $0x1fc0, %rsp           # imm = 0x1FC0
popq %rbp
retq
nopw %cs:(%rax,%rax)