// File: /workspace/github_c_makefile_star2_O0/aquaxis[P]synverll/src/parser_ir_top.c
// Function: create_top_module
int create_top_module()
{
	MODULE_TREE *now_module_tree = NULL;
	MEMORY_TREE *now_memory_tree = NULL;
	CALL_TREE *now_call_tree = NULL;
	CALL_SIGNAL_TREE *now_call_signal_tree = NULL;
	char *module_name;
	char *call_signal_name;
	int args_num;
	char *label;
	char *verilog_signal;
	char *verilog_wire;
	char *verilog_module;
	int inout;

	printf("[Create top Module]\n");

	call_signal_name	= calloc(STR_MAX, 1);
	label				= calloc(STR_MAX, 1);
	verilog_signal		= calloc(STR_MAX, 1);
	verilog_wire		= calloc(STR_MAX, 1);
	verilog_module		= calloc(STR_MAX, 1);

    now_module_tree = module_tree_top;
    while(now_module_tree != NULL){
		// 初期化
		args_num = 0;
		module_name = calloc(strlen(now_module_tree->module_name)+1,1);
		strcpy(module_name, convname(sep_p(now_module_tree->module_name)));

		// モジュール宣言
		sprintf(verilog_module, "%s u_%s(\n", module_name, module_name);
		register_top_module_decl(verilog_module);

		// 制御信号の生成
		sprintf(verilog_module, "\t// system signals\n");
		register_top_module_decl(verilog_module);
		{
			sprintf(verilog_module, "\t.__func_clock(system_clock),\n");
			register_top_module_decl(verilog_module);
			sprintf(verilog_module, "\t.__func_reset(system_reset),\n");
			register_top_module_decl(verilog_module);
			// __func_start(in)
			sprintf(label, "__func_start");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_CTRL, SIG_IN, 0, NULL, 0, verilog_signal, verilog_wire);
			// ToDo: 接続されるべき信号を検索してWired OR宣言を生成する。
			// __func_done(out)
			sprintf(label, "__func_done");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_CTRL, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
			// __func_ready(out)
			sprintf(label, "__func_ready");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_CTRL, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
		}

		sprintf(verilog_module, "\n");
		register_top_module_decl(verilog_module);

		// メモリバスの生成
		sprintf(verilog_module, "\t// memory bus\n");
		register_top_module_decl(verilog_module);
		if(now_module_tree->is_module_gm_if){
			use_gm_if = 1;

			// __gm_base(in)
			sprintf(label, "__gm_base");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire [31:0] %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_IN, 0, NULL, 0, verilog_signal, verilog_wire);
			// __gm_req(out)
			sprintf(label, "__gm_req");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
			// __gm_rnw(out)
			sprintf(label, "__gm_rnw");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
			// __gm_done(in)
			sprintf(label, "__gm_done");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_IN, 0, NULL, 0, verilog_signal, verilog_wire);
			// ToDo: 接続されるべき信号を検索してWired OR宣言を生成する。
			// __gm_adrs(out)
			sprintf(label, "__gm_adrs");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire [31:0] %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
			// __gm_leng(out)
			sprintf(label, "__gm_leng");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire [1:0] %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
			// __gm_di(in)
			sprintf(label, "__gm_di");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire [31:0] %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_IN, 0, NULL, 0, verilog_signal, verilog_wire);
			// ToDo: 接続されるべき信号を検索してWired OR宣言を生成する。
			// __gm_do(out)
			sprintf(label, "__gm_do");
			sprintf(verilog_signal, "%s%s", module_name, label);
			sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
			register_top_module_decl(verilog_module);
			sprintf(verilog_wire, "wire [31:0] %s;", verilog_signal);
			register_top_signal_tree(label, module_name, label, FLAG_GMEM, SIG_OUT, 0, NULL, 0, verilog_signal, verilog_wire);
		}

		sprintf(verilog_module, "\n");
		register_top_module_decl(verilog_module);

		// メモリアドレスの生成
		sprintf(verilog_module, "\t// base address\n");
		register_top_module_decl(verilog_module);
		{
			now_memory_tree = now_module_tree->memory_tree_ptr;
			while(now_memory_tree != NULL){
				if(now_memory_tree->flag == MEMORY_FLAG_GLOBAL){
					sprintf(label, "%s", convname(sep_p(now_memory_tree->label)));
//					sprintf(verilog_signal, "%s%s", module_name, label);
					sprintf(verilog_module, "\t.__base_%s(__base_%s),\n", label, label);
					register_top_module_decl(verilog_module);
//					sprintf(verilog_wire, "wire [31:0] %s", module_name);
//					register_top_signal_tree(label, verilog_signal, 0, 0, verilog_wire);
				}
				now_memory_tree = now_memory_tree->next_ptr;
			}
		}
		sprintf(verilog_module, "\n");
		register_top_module_decl(verilog_module);

		// 引数の生成
		sprintf(verilog_module, "\t// arguments\n");
		register_top_module_decl(verilog_module);
		args_num = 0;
		{
			now_memory_tree = now_module_tree->memory_tree_ptr;
			while(now_memory_tree != NULL){
				if(now_memory_tree->flag == MEMORY_FLAG_REGISTER){
					sprintf(label, "__args_%s", convname(sep_p(now_memory_tree->label)));
					sprintf(verilog_signal, "%s%s", module_name, label);
					sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
					register_top_module_decl(verilog_module);
//					sprintf(verilog_wire, "wire [31:0] %s", verilog_signal);
//					register_top_signal_tree(label, module_name, label, 0, 0, 0, verilog_signal, verilog_wire);

					if(now_memory_tree->size > 0){
						sprintf(verilog_wire, "wire [%d:0] %s;", now_memory_tree->size*8-1, verilog_signal);
					}else{
						sprintf(verilog_wire, "wire %s;", verilog_signal);
					}
					register_top_signal_tree(label, module_name, convname(sep_p(now_memory_tree->label)), FLAG_ARGS, SIG_IN, now_memory_tree->size, NULL, args_num, verilog_signal, verilog_wire);
					// ToDo: 接続されるべき信号を検索してWired OR宣言を生成する。
					args_num ++;
				}
				now_memory_tree = now_memory_tree->next_ptr;
			}
		}
		sprintf(verilog_module, "\n");
		register_top_module_decl(verilog_module);

		// CALL命令の生成
		sprintf(verilog_module, "\t// call instruction\n");
		register_top_module_decl(verilog_module);
		{
			now_call_tree = now_module_tree->call_tree_ptr;
			while(now_call_tree != NULL){
				now_call_signal_tree = now_call_tree->signal_top_ptr;
				while(now_call_signal_tree != NULL){
					if(
						!strcmp(now_call_signal_tree->signal_name, "req") ||
						!strcmp(now_call_signal_tree->signal_name, "ready") ||
						!strcmp(now_call_signal_tree->signal_name, "done") ||
						!strcmp(now_call_signal_tree->signal_name, "result")
					){
						sprintf(label, "__call_%s_%s", convname(sep_p(now_call_tree->call_name)), now_call_signal_tree->signal_name);
					}else{
						sprintf(label, "__call_%s_%s_%d", convname(sep_p(now_call_tree->call_name)), now_call_signal_tree->signal_name, now_call_signal_tree->num);
					}
					sprintf(verilog_signal, "%s%s", module_name, label);
					sprintf(verilog_module, "\t.%s(%s),\n", label, verilog_signal);
					register_top_module_decl(verilog_module);
					if(now_call_signal_tree->size > 0){
						sprintf(verilog_wire, "wire [%d:0] %s;", now_call_signal_tree->size-1, verilog_signal);
					}else{
						sprintf(verilog_wire, "wire %s;", verilog_signal);
					}
					if(
						!strcmp(now_call_signal_tree->signal_name, "done") ||
						!strcmp(now_call_signal_tree->signal_name, "ready") ||
						!strcmp(now_call_signal_tree->signal_name, "result")
					){
						inout = SIG_IN;
					}else{
						inout = SIG_OUT;
					}
					register_top_signal_tree(label, module_name, now_call_signal_tree->signal_name, FLAG_CALL, inout, 0, convname(sep_p(now_call_tree->call_name)), now_call_signal_tree->num, verilog_signal, verilog_wire);
					now_call_signal_tree = now_call_signal_tree->next_ptr;
				}
				sprintf(verilog_module, "\n");
				now_call_tree = now_call_tree->next_ptr;
			}
		}

		sprintf(verilog_module, "\n");
		register_top_module_decl(verilog_module);

		// 戻り値の生成
		sprintf(verilog_module, "\t// return value\n");
		register_top_module_decl(verilog_module);

		{
			now_memory_tree = now_module_tree->memory_tree_ptr;
			while(now_memory_tree != NULL){
				if(now_memory_tree->flag == MEMORY_FLAG_RETURN){
					if(strcmp(now_memory_tree->type, "void")){
						sprintf(verilog_signal, "%s__func_result", module_name);
						sprintf(verilog_module, "\t.%s(%s)\n", "__func_result", verilog_signal);
						register_top_module_decl(verilog_module);

						if(now_memory_tree->size > 0){
							sprintf(verilog_wire, "wire [%d:0] %s;", now_memory_tree->size*8-1,verilog_signal);
						}else{
							sprintf(verilog_wire, "wire %s;", verilog_signal);
						}

						register_top_signal_tree("__func_result", module_name, verilog_signal, FLAG_RETURN, SIG_OUT, now_memory_tree->size, verilog_signal, 0, verilog_signal, verilog_wire);
					}
				}
				now_memory_tree = now_memory_tree->next_ptr;
			}
		}

//		sprintf(verilog_module, "\n");
//		register_top_module_decl(verilog_module);
//		sprintf(verilog_module, "\t.__dummy()\n");
//		register_top_module_decl(verilog_module);
		sprintf(verilog_module, ");\n");
		register_top_module_decl(verilog_module);

        now_module_tree = now_module_tree->next_ptr;

        free(module_name);
    }

    free(call_signal_name);
    free(verilog_signal);

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
leaq 0x5e3d(%rip), %rdi      # 0x14c50
movb $0x0, %al
callq 0x1090
movl $0x400, %edi            # imm = 0x400
movl $0x1, %esi
callq 0x10c0
movq %rax, -0x38(%rbp)
movl $0x400, %edi            # imm = 0x400
movl $0x1, %esi
callq 0x10c0
movq %rax, -0x48(%rbp)
movl $0x400, %edi            # imm = 0x400
movl $0x1, %esi
callq 0x10c0
movq %rax, -0x50(%rbp)
movl $0x400, %edi            # imm = 0x400
movl $0x1, %esi
callq 0x10c0
movq %rax, -0x58(%rbp)
movl $0x400, %edi            # imm = 0x400
movl $0x1, %esi
callq 0x10c0
movq %rax, -0x60(%rbp)
leaq 0x96d0(%rip), %rax      # 0x18550
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0xff5d
movl $0x0, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x1070
movq %rax, %rdi
addq $0x1, %rdi
movl $0x1, %esi
callq 0x10c0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xeee3
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xeef5
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0xef01
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0x1400
movq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0x1050
movq -0x60(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x30(%rbp), %rcx
leaq 0x5d3c(%rip), %rsi      # 0x14c65
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x5d2b(%rip), %rsi      # 0x14c6f
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x5d24(%rip), %rsi      # 0x14c83
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x5d28(%rip), %rsi      # 0x14ca2
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x48(%rbp), %rdi
leaq 0x5b75(%rip), %rsi      # 0x14b0a
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x4322(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5cf8(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5ce4(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x1, %ecx
xorl %r9d, %r9d
xorl %r8d, %r8d
movl %r9d, %r8d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x5c9a(%rip), %rsi      # 0x14cd5
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x427c(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5c52(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5c3e(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %ecx, %ecx
movl %r8d, %ecx
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x5c00(%rip), %rsi      # 0x14ce1
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x41d6(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5bac(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5b98(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %ecx, %ecx
movl %r8d, %ecx
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x60(%rbp), %rdi
leaq 0x5e39(%rip), %rsi      # 0x14fc0
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x5b4c(%rip), %rsi      # 0x14cee
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x10(%rbp), %rax
cmpl $0x0, 0x28(%rax)
je 0xf709
movl $0x1, 0x93d2(%rip)      # 0x1859c
movq -0x48(%rbp), %rdi
leaq 0x596d(%rip), %rsi      # 0x14b42
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x40e2(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5ab8(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5ad6(%rip), %rsi      # 0x14cfe
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
xorl %r9d, %r9d
xorl %r8d, %r8d
movl %r9d, %r8d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x5a93(%rip), %rsi      # 0x14d0e
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x403c(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5a12(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x59fe(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %r11d, %r11d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x59f3(%rip), %rsi      # 0x14d17
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x3f93(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5969(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5955(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %r11d, %r11d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x574f(%rip), %rsi      # 0x14b1c
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x3eea(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x58c0(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x58ac(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
xorl %r9d, %r9d
xorl %r8d, %r8d
movl %r9d, %r8d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x58ad(%rip), %rsi      # 0x14d20
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x3e44(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x581a(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5838(%rip), %rsi      # 0x14cfe
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %r11d, %r11d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x580e(%rip), %rsi      # 0x14d2a
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x3d9b(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5771(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x57c5(%rip), %rsi      # 0x14d34
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %r11d, %r11d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x556c(%rip), %rsi      # 0x14b31
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x3cf2(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x56c8(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x56e6(%rip), %rsi      # 0x14cfe
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
xorl %r9d, %r9d
xorl %r8d, %r8d
movl %r9d, %r8d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x48(%rbp), %rdi
leaq 0x56d8(%rip), %rsi      # 0x14d43
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x3c4c(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x5622(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5640(%rip), %rsi      # 0x14cfe
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x2, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
xorl %r11d, %r11d
movq $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x60(%rbp), %rdi
leaq 0x58ac(%rip), %rsi      # 0x14fc0
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x561c(%rip), %rsi      # 0x14d4b
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xf805
movq -0x18(%rbp), %rax
cmpl $0x1, 0x10(%rax)
jne 0xf7f4
movq -0x48(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xf78c
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xf7a1
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0xf7b0
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
callq 0x1400
movq -0x80(%rbp), %rdi
movq %rax, %rdx
leaq 0x41fe(%rip), %rsi      # 0x139c8
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x5579(%rip), %rsi      # 0x14d5d
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0xf74b
movq -0x60(%rbp), %rdi
leaq 0x57b0(%rip), %rsi      # 0x14fc0
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x554b(%rip), %rsi      # 0x14d76
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movl $0x0, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xfa27
movq -0x18(%rbp), %rax
cmpl $0x4, 0x10(%rax)
jne 0xfa16
movq -0x48(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xf892
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xf8a7
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
jmp 0xf8b6
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
callq 0x1400
movq -0x90(%rbp), %rdi
movq %rax, %rdx
leaq 0x54b2(%rip), %rsi      # 0x14d85
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x39e4(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x53ba(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x18(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jle 0xf946
movq -0x58(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x44(%rax), %edx
shll $0x3, %edx
subl $0x1, %edx
movq -0x50(%rbp), %rcx
leaq 0x5452(%rip), %rsi      # 0x14d8f
movb $0x0, %al
callq 0x1160
jmp 0xf95c
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x5377(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x48(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xf992
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xf9a7
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
addq $0x1, %rax
movq %rax, -0xb0(%rbp)
jmp 0xf9b6
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x1400
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
movq %rax, %rdx
movq -0x18(%rbp), %rax
movl 0x44(%rax), %r9d
movl -0x3c(%rbp), %r11d
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x3, %ecx
xorl %r8d, %r8d
xorl %ebx, %ebx
movq $0x0, (%rsp)
movl %r11d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0xf84e
movq -0x60(%rbp), %rdi
leaq 0x558e(%rip), %rsi      # 0x14fc0
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x5352(%rip), %rsi      # 0x14d9f
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xfdd1
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0xfdae
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x5279(%rip), %rsi      # 0x14d13
callq 0x10d0
cmpl $0x0, %eax
je 0xfaf3
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x5235(%rip), %rsi      # 0x14ce8
callq 0x10d0
cmpl $0x0, %eax
je 0xfaf3
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x5210(%rip), %rsi      # 0x14cdc
callq 0x10d0
cmpl $0x0, %eax
je 0xfaf3
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x52eb(%rip), %rsi      # 0x14dd0
callq 0x10d0
cmpl $0x0, %eax
jne 0xfb73
movq -0x48(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xfb1e
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xfb33
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x1, %rax
movq %rax, -0xc0(%rbp)
jmp 0xfb42
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rdi
callq 0x1400
movq -0xb8(%rbp), %rdi
movq %rax, %rdx
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rcx
leaq 0x3b51(%rip), %rsi      # 0x136b8
movb $0x0, %al
callq 0x1160
jmp 0xfbf6
movq -0x48(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xfb9e
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xfbb3
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x1, %rax
movq %rax, -0xd0(%rbp)
jmp 0xfbc2
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
callq 0x1400
movq -0xc8(%rbp), %rdi
movq %rax, %rdx
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x28(%rbp), %rax
movl 0x28(%rax), %r8d
leaq 0x4edd(%rip), %rsi      # 0x14acc
movb $0x0, %al
callq 0x1160
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
movq -0x48(%rbp), %rcx
leaq 0x36c8(%rip), %rsi      # 0x132d1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
leaq 0x509e(%rip), %rsi      # 0x14cc1
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x28(%rbp), %rax
cmpl $0x0, 0x24(%rax)
jle 0xfc5f
movq -0x58(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x24(%rax), %edx
subl $0x1, %edx
movq -0x50(%rbp), %rcx
leaq 0x5139(%rip), %rsi      # 0x14d8f
movb $0x0, %al
callq 0x1160
jmp 0xfc75
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x505e(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x5058(%rip), %rsi      # 0x14cdc
callq 0x10d0
cmpl $0x0, %eax
je 0xfcc0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x504b(%rip), %rsi      # 0x14ce8
callq 0x10d0
cmpl $0x0, %eax
je 0xfcc0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x511a(%rip), %rsi      # 0x14dd0
callq 0x10d0
cmpl $0x0, %eax
jne 0xfcc9
movl $0x0, -0x64(%rbp)
jmp 0xfcd0
movl $0x1, -0x64(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xe0(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0xd4(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x25, %eax
je 0xfd1e
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0xfd33
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x1, %rax
movq %rax, -0xf8(%rbp)
jmp 0xfd42
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdi
callq 0x1400
movq -0xf0(%rbp), %rdi
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
movl -0xd4(%rbp), %r8d
movq %rax, %rbx
movq -0x28(%rbp), %rax
movl 0x28(%rax), %r11d
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
movl $0x5, %ecx
xorl %r9d, %r9d
movq %rbx, (%rsp)
movl %r11d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0xfa80
movq -0x60(%rbp), %rdi
leaq 0x5207(%rip), %rsi      # 0x14fc0
movb $0x0, %al
callq 0x1160
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0xfa69
movq -0x60(%rbp), %rdi
leaq 0x51e4(%rip), %rsi      # 0x14fc0
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x60(%rbp), %rdi
leaq 0x4fbe(%rip), %rsi      # 0x14db5
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xff28
movq -0x18(%rbp), %rax
cmpl $0x5, 0x10(%rax)
jne 0xff17
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdi
leaq 0x31c9(%rip), %rsi      # 0x13004
callq 0x10d0
cmpl $0x0, %eax
je 0xff15
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x4f6f(%rip), %rsi      # 0x14dc7
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
movq -0x50(%rbp), %rcx
leaq 0x4f69(%rip), %rsi      # 0x14dd7
leaq 0x4f54(%rip), %rdx      # 0x14dc9
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x18(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jle 0xfeb4
movq -0x58(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x44(%rax), %edx
shll $0x3, %edx
subl $0x1, %edx
movq -0x50(%rbp), %rcx
leaq 0x4ee4(%rip), %rsi      # 0x14d8f
movb $0x0, %al
callq 0x1160
jmp 0xfeca
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0x4e09(%rip), %rsi      # 0x14ccc
movb $0x0, %al
callq 0x1160
movq -0x30(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x18(%rbp), %rax
movl 0x44(%rax), %r9d
movq -0x50(%rbp), %r11
movq -0x50(%rbp), %r10
movq -0x58(%rbp), %rax
leaq 0x4edc(%rip), %rdi      # 0x14dc9
movl $0x6, %ecx
movl $0x1, %r8d
xorl %ebx, %ebx
movq %r11, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xdd60
jmp 0xff17
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0xfe13
movq -0x60(%rbp), %rdi
leaq 0x459a(%rip), %rsi      # 0x144cd
movb $0x0, %al
callq 0x1160
movq -0x60(%rbp), %rdi
callq 0xdb20
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x30(%rbp), %rdi
callq 0x1030
jmp 0xee87
movq -0x38(%rbp), %rdi
callq 0x1030
movq -0x50(%rbp), %rdi
callq 0x1030
xorl %eax, %eax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %rbp
retq
nopl (%rax,%rax)