BITS 64 extern malloc, realloc, free, printf, putchar, open, close, read, write, lseek, perror global _alloc global _realloc global _delete global _putchar global _printf global _print_num global _create_file global _open_file global _close_file global _read_byte global _fseek global _write_byte global _perror global print_alert global main section .data _alert#ptr: dq 8 db 65, 108, 101, 114, 116, 33, 10, 0 _alert: dq _alert#ptr + 8 _dec#ptr: dq 4 db 37, 100, 10, 0 _dec: dq _dec#ptr + 8 _ptr#ptr: dq 4 db 37, 112, 10, 0 _ptr: dq _ptr#ptr + 8 NULL: dq 0 DEFAULT_FOUT#ptr: dq 8 db 111, 117, 116, 46, 97, 115, 109, 0 DEFAULT_FOUT: dq DEFAULT_FOUT#ptr + 8 USAGE#ptr: dq 285 db 10, 84, 78, 83, 76, 67, 32, 118, 48, 46, 55, 46, 53, 32, 40, 67, 41, 32, 50, 48, 50, 54, 32, 67, 105, 114, 99, 108, 101, 83, 104, 105, 102, 116, 32, 40, 77, 80, 76, 32, 50, 46, 48, 41, 10, 10, 117, 115, 97, 103, 101, 58, 10, 9, 116, 110, 115, 108, 99, 32, 91, 111, 112, 116, 105, 111, 110, 115, 93, 32, 40, 102, 105, 108, 101, 32, 105, 110, 41, 10, 10, 111, 112, 116, 105, 111, 110, 115, 58, 10, 9, 45, 111, 32, 91, 111, 117, 116, 112, 117, 116, 32, 102, 105, 108, 101, 93, 10, 9, 9, 83, 101, 116, 115, 32, 116, 104, 101, 32, 102, 105, 108, 101, 32, 116, 111, 32, 111, 117, 116, 112, 117, 116, 32, 97, 115, 109, 32, 99, 111, 100, 101, 32, 116, 111, 32, 40, 100, 101, 102, 97, 117, 108, 116, 32, 105, 115, 32, 34, 111, 117, 116, 46, 97, 115, 109, 34, 41, 10, 9, 10, 9, 45, 112, 10, 9, 9, 80, 114, 105, 110, 116, 32, 116, 104, 101, 32, 112, 97, 114, 115, 101, 32, 116, 114, 101, 101, 32, 97, 110, 100, 32, 101, 120, 105, 116, 32, 119, 105, 116, 104, 111, 117, 116, 32, 99, 111, 109, 112, 105, 108, 105, 110, 103, 10, 9, 10, 9, 45, 109, 10, 9, 9, 80, 114, 105, 110, 116, 32, 116, 104, 101, 32, 109, 111, 100, 117, 108, 101, 32, 116, 114, 101, 101, 32, 97, 110, 100, 32, 101, 120, 105, 116, 32, 119, 105, 116, 104, 111, 117, 116, 32, 99, 111, 109, 112, 105, 108, 105, 110, 103, 10, 9, 10, 0 USAGE: dq USAGE#ptr + 8 FOPEN_ERR#ptr: dq 20 db 69, 114, 114, 111, 114, 32, 111, 112, 101, 110, 105, 110, 103, 32, 102, 105, 108, 101, 10, 0 FOPEN_ERR: dq FOPEN_ERR#ptr + 8 char_str#ptr: dq 3 db 37, 99, 0 char_str: dq char_str#ptr + 8 newline#ptr: dq 2 db 10, 0 newline: dq newline#ptr + 8 main#1#wrap#0#if#0#wrap#0#if#0#const: dq 3 db 45, 112, 0 main#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq main#1#wrap#0#if#0#wrap#0#if#0#const + 8 main#1#wrap#0#if#0#wrap#1#if#0#const: dq 3 db 45, 109, 0 main#1#wrap#0#if#0#wrap#1#if#0#const#ptr: dq main#1#wrap#0#if#0#wrap#1#if#0#const + 8 main#1#wrap#0#if#0#wrap#2#if#0#const: dq 3 db 45, 111, 0 main#1#wrap#0#if#0#wrap#2#if#0#const#ptr: dq main#1#wrap#0#if#0#wrap#2#if#0#const + 8 utils.VECTOR_MIN_ELEMENTS: dq 4 utils.VECTOR_MAX_GROW: dq 256 utils.NUM_STR#ptr: dq 8 db 78, 117, 109, 32, 37, 100, 10, 0 utils.NUM_STR: dq utils.NUM_STR#ptr + 8 utils.PT_HANDLE#ptr: dq 12 db 72, 97, 110, 100, 108, 101, 58, 32, 37, 112, 10, 0 utils.PT_HANDLE: dq utils.PT_HANDLE#ptr + 8 utils.PARENT_DIR#ptr: dq 2 db 46, 46 utils.PARENT_DIR: dq utils.PARENT_DIR#ptr + 8 utils.CURRENT_DIR#ptr: dq 1 db 46 utils.CURRENT_DIR: dq utils.CURRENT_DIR#ptr + 8 utils._#File.read#1#wrap#1#if#0#const: dq 24 db 69, 114, 114, 111, 114, 32, 114, 101, 97, 100, 105, 110, 103, 32, 102, 114, 111, 109, 32, 102, 105, 108, 101, 0 utils._#File.read#1#wrap#1#if#0#const#ptr: dq utils._#File.read#1#wrap#1#if#0#const + 8 utils._#File.read#1#wrap#1#if#1#const: dq 9 db 70, 68, 58, 32, 37, 108, 100, 10, 0 utils._#File.read#1#wrap#1#if#1#const#ptr: dq utils._#File.read#1#wrap#1#if#1#const + 8 parse.TTYPE_DELIM: dq 0 parse.TTYPE_SEP: dq 1 parse.TTYPE_KEYWD: dq 2 parse.TTYPE_KEYTP: dq 3 parse.TTYPE_LITRL: dq 4 parse.TTYPE_AUG: dq 5 parse.TTYPE_USRWD: dq 6 parse.TTYPE_COMNT: dq 7 parse.TTYPE_UNKNOWN: dq 998 parse.TTYPE_ERR: dq 999 parse.KEYWORDS#ptr: dq 126 db 105, 109, 112, 111, 114, 116, 44, 117, 115, 105, 110, 103, 44, 109, 111, 100, 117, 108, 101, 44, 101, 120, 112, 111, 114, 116, 44, 115, 116, 114, 117, 99, 116, 44, 109, 101, 116, 104, 111, 100, 44, 105, 109, 112, 108, 101, 109, 101, 110, 116, 115, 44, 105, 110, 116, 101, 114, 102, 97, 99, 101, 44, 111, 112, 101, 114, 97, 116, 111, 114, 44, 101, 110, 117, 109, 44, 105, 102, 44, 101, 108, 115, 101, 44, 108, 111, 111, 112, 44, 99, 111, 110, 116, 105, 110, 117, 101, 44, 98, 114, 101, 97, 107, 44, 114, 101, 116, 117, 114, 110, 44, 108, 97, 98, 101, 108, 44, 103, 111, 116, 111, 44, 97, 115, 109, 0 parse.KEYWORDS: dq parse.KEYWORDS#ptr + 8 parse.KEYTYPES#ptr: dq 101 db 117, 105, 110, 116, 56, 44, 117, 105, 110, 116, 49, 54, 44, 117, 105, 110, 116, 51, 50, 44, 117, 105, 110, 116, 54, 52, 44, 117, 105, 110, 116, 44, 105, 110, 116, 56, 44, 105, 110, 116, 49, 54, 44, 105, 110, 116, 51, 50, 44, 105, 110, 116, 54, 52, 44, 105, 110, 116, 44, 102, 108, 111, 97, 116, 51, 50, 44, 102, 108, 111, 97, 116, 54, 52, 44, 102, 108, 111, 97, 116, 44, 98, 111, 111, 108, 44, 118, 111, 105, 100, 44, 118, 101, 99, 116, 44, 116, 121, 112, 101, 0 parse.KEYTYPES: dq parse.KEYTYPES#ptr + 8 parse.LITERALS#ptr: dq 21 db 102, 97, 108, 115, 101, 44, 116, 114, 117, 101, 44, 110, 117, 108, 108, 44, 105, 111, 116, 97, 0 parse.LITERALS: dq parse.LITERALS#ptr + 8 parse.RESERVED#ptr: dq 32 db 126, 96, 33, 64, 35, 36, 37, 94, 38, 42, 40, 41, 91, 93, 123, 125, 45, 43, 61, 34, 39, 92, 124, 59, 58, 47, 63, 46, 62, 44, 60, 0 parse.RESERVED: dq parse.RESERVED#ptr + 8 parse.OP#ptr: dq 16 db 96, 126, 33, 37, 94, 38, 124, 42, 45, 61, 43, 46, 47, 62, 60, 0 parse.OP: dq parse.OP#ptr + 8 parse.MULTI_OP#ptr: dq 63 db 61, 61, 44, 38, 38, 44, 124, 124, 44, 94, 94, 44, 33, 61, 61, 44, 33, 38, 38, 44, 33, 124, 124, 44, 33, 94, 94, 44, 33, 60, 44, 33, 62, 44, 60, 60, 44, 62, 62, 44, 33, 38, 44, 33, 124, 44, 33, 94, 44, 43, 43, 44, 45, 45, 44, 62, 61, 61, 44, 60, 61, 61, 0 parse.MULTI_OP: dq parse.MULTI_OP#ptr + 8 parse.MAX_MULTI: dq 3 parse.MULTI_OP_W#ptr: dq 7 db 105, 115, 44, 108, 101, 110, 0 parse.MULTI_OP_W: dq parse.MULTI_OP_W#ptr + 8 parse.DELIMS#ptr: dq 7 db 40, 41, 91, 93, 123, 125, 0 parse.DELIMS: dq parse.DELIMS#ptr + 8 parse.NTYPE_MODULE: dw 0 parse.NTYPE_EXPORT: dw 1 parse.NTYPE_STRUCT: dw 2 parse.NTYPE_TYPE: dw 3 parse.NTYPE_ID: dw 4 parse.NTYPE_BIN_OP: dw 5 parse.NTYPE_PRE_OP: dw 6 parse.NTYPE_POST_OP: dw 7 parse.NTYPE_FUNCTION: dw 8 parse.NTYPE_METHOD: dw 9 parse.NTYPE_TLIST: dw 10 parse.NTYPE_DLIST: dw 11 parse.NTYPE_ELIST: dw 12 parse.NTYPE_SLIST: dw 13 parse.NTYPE_LITERAL: dw 14 parse.NTYPE_ENUM: dw 15 parse.NTYPE_DECL: dw 16 parse.NTYPE_VLIST: dw 17 parse.NTYPE_VALUE: dw 18 parse.NTYPE_CAST: dw 19 parse.NTYPE_FLOW_CONTROL: dw 20 parse.NTYPE_IF_BLOCK: dw 21 parse.NTYPE_ELIF_BLOCK: dw 22 parse.NTYPE_ELSE_BLOCK: dw 23 parse.NTYPE_LOOP_BLOCK: dw 24 parse.NTYPE_ASM: dw 998 parse.NTYPE_EMPTY: dw 999 parse.MAX_ERR_SHOW: dq 15 parse.errors_shown: dq 0 parse.is_comment_block#0#const: dq 3 db 47, 35, 0 parse.is_comment_block#0#const#ptr: dq parse.is_comment_block#0#const + 8 parse.is_multi_delim#0#wrap#0#if#0#const: dq 3 db 47, 59, 0 parse.is_multi_delim#0#wrap#0#if#0#const#ptr: dq parse.is_multi_delim#0#wrap#0#if#0#const + 8 parse.is_multi_delim#0#wrap#1#if#0#const: dq 3 db 59, 59, 0 parse.is_multi_delim#0#wrap#1#if#0#const#ptr: dq parse.is_multi_delim#0#wrap#1#if#0#const + 8 parse.is_multi_delim#0#wrap#2#if#0#const: dq 3 db 59, 47, 0 parse.is_multi_delim#0#wrap#2#if#0#const#ptr: dq parse.is_multi_delim#0#wrap#2#if#0#const + 8 parse.produce_next_token#3#const: dq 1 db 0 parse.produce_next_token#3#const#ptr: dq parse.produce_next_token#3#const + 8 parse.print_token_type#0#wrap#0#if#0#const: dq 6 db 68, 69, 76, 73, 77, 0 parse.print_token_type#0#wrap#0#if#0#const#ptr: dq parse.print_token_type#0#wrap#0#if#0#const + 8 parse.print_token_type#0#wrap#1#if#0#const: dq 4 db 83, 69, 80, 0 parse.print_token_type#0#wrap#1#if#0#const#ptr: dq parse.print_token_type#0#wrap#1#if#0#const + 8 parse.print_token_type#0#wrap#2#if#0#const: dq 6 db 75, 69, 89, 87, 68, 0 parse.print_token_type#0#wrap#2#if#0#const#ptr: dq parse.print_token_type#0#wrap#2#if#0#const + 8 parse.print_token_type#0#wrap#3#if#0#const: dq 6 db 75, 69, 89, 84, 80, 0 parse.print_token_type#0#wrap#3#if#0#const#ptr: dq parse.print_token_type#0#wrap#3#if#0#const + 8 parse.print_token_type#0#wrap#4#if#0#const: dq 6 db 76, 73, 84, 82, 76, 0 parse.print_token_type#0#wrap#4#if#0#const#ptr: dq parse.print_token_type#0#wrap#4#if#0#const + 8 parse.print_token_type#0#wrap#5#if#0#const: dq 4 db 65, 85, 71, 0 parse.print_token_type#0#wrap#5#if#0#const#ptr: dq parse.print_token_type#0#wrap#5#if#0#const + 8 parse.print_token_type#0#wrap#6#if#0#const: dq 6 db 85, 83, 82, 87, 68, 0 parse.print_token_type#0#wrap#6#if#0#const#ptr: dq parse.print_token_type#0#wrap#6#if#0#const + 8 parse.print_token_type#0#wrap#7#if#0#const: dq 6 db 67, 79, 77, 78, 84, 0 parse.print_token_type#0#wrap#7#if#0#const#ptr: dq parse.print_token_type#0#wrap#7#if#0#const + 8 parse.print_token_type#0#wrap#8#if#0#const: dq 8 db 85, 78, 75, 78, 79, 87, 78, 0 parse.print_token_type#0#wrap#8#if#0#const#ptr: dq parse.print_token_type#0#wrap#8#if#0#const + 8 parse.print_token_type#0#wrap#9#if#0#const: dq 4 db 69, 82, 82, 0 parse.print_token_type#0#wrap#9#if#0#const#ptr: dq parse.print_token_type#0#wrap#9#if#0#const + 8 parse.print_token#0#const: dq 10 db 84, 111, 107, 101, 110, 32, 123, 32, 34, 0 parse.print_token#0#const#ptr: dq parse.print_token#0#const + 8 parse.print_token#1#const: dq 12 db 34, 44, 32, 108, 105, 110, 101, 58, 32, 37, 117, 0 parse.print_token#1#const#ptr: dq parse.print_token#1#const + 8 parse.print_token#2#const: dq 18 db 44, 32, 99, 111, 108, 58, 32, 37, 117, 44, 32, 116, 121, 112, 101, 58, 32, 0 parse.print_token#2#const#ptr: dq parse.print_token#2#const + 8 parse.print_token#3#const: dq 4 db 32, 125, 10, 0 parse.print_token#3#const#ptr: dq parse.print_token#3#const + 8 parse._ast_print_err#0#const: dq 3 db 58, 10, 0 parse._ast_print_err#0#const#ptr: dq parse._ast_print_err#0#const + 8 parse._ast_print_err#1#const: dq 9 db 32, 32, 70, 105, 108, 101, 58, 32, 0 parse._ast_print_err#1#const#ptr: dq parse._ast_print_err#1#const + 8 parse._ast_print_err#2#const: dq 8 db 10, 32, 32, 65, 116, 58, 32, 0 parse._ast_print_err#2#const#ptr: dq parse._ast_print_err#2#const + 8 parse._ast_print_err#3#const: dq 2 db 10, 0 parse._ast_print_err#3#const#ptr: dq parse._ast_print_err#3#const + 8 parse._ast_print_err#4#wrap#0#if#0#const: dq 60 db 10, 84, 111, 111, 32, 109, 97, 110, 121, 32, 101, 114, 114, 111, 114, 115, 32, 116, 111, 32, 112, 114, 105, 110, 116, 44, 32, 111, 116, 104, 101, 114, 32, 101, 114, 114, 111, 114, 115, 32, 119, 105, 108, 108, 32, 98, 101, 32, 115, 117, 112, 112, 114, 101, 115, 115, 101, 100, 10, 0 parse._ast_print_err#4#wrap#0#if#0#const#ptr: dq parse._ast_print_err#4#wrap#0#if#0#const + 8 parse._ast_block_pass#0#loop#1#wrap#0#if#0#const: dq 3 db 59, 47, 0 parse._ast_block_pass#0#loop#1#wrap#0#if#0#const#ptr: dq parse._ast_block_pass#0#loop#1#wrap#0#if#0#const + 8 parse._ast_block_pass#0#loop#1#wrap#1#if#0#const: dq 3 db 47, 59, 0 parse._ast_block_pass#0#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_block_pass#0#loop#1#wrap#1#if#0#const + 8 parse._ast_block_pass#0#loop#1#wrap#2#if#1#const: dq 3 db 59, 59, 0 parse._ast_block_pass#0#loop#1#wrap#2#if#1#const#ptr: dq parse._ast_block_pass#0#loop#1#wrap#2#if#1#const + 8 parse._op_prefix#1#wrap#0#if#2#const: dq 4 db 108, 101, 110, 0 parse._op_prefix#1#wrap#0#if#2#const#ptr: dq parse._op_prefix#1#wrap#0#if#2#const + 8 parse._op_prefix#1#wrap#0#if#3#const: dq 3 db 45, 45, 0 parse._op_prefix#1#wrap#0#if#3#const#ptr: dq parse._op_prefix#1#wrap#0#if#3#const + 8 parse._op_prefix#1#wrap#0#if#4#const: dq 3 db 43, 43, 0 parse._op_prefix#1#wrap#0#if#4#const#ptr: dq parse._op_prefix#1#wrap#0#if#4#const + 8 parse._op_postfix#0#wrap#0#if#2#const: dq 2 db 96, 0 parse._op_postfix#0#wrap#0#if#2#const#ptr: dq parse._op_postfix#0#wrap#0#if#2#const + 8 parse._op_postfix#0#wrap#0#if#3#const: dq 3 db 43, 43, 0 parse._op_postfix#0#wrap#0#if#3#const#ptr: dq parse._op_postfix#0#wrap#0#if#3#const + 8 parse._op_postfix#0#wrap#0#if#4#const: dq 3 db 45, 45, 0 parse._op_postfix#0#wrap#0#if#4#const#ptr: dq parse._op_postfix#0#wrap#0#if#4#const + 8 parse._op_bin#0#wrap#0#if#0#const: dq 2 db 45, 0 parse._op_bin#0#wrap#0#if#0#const#ptr: dq parse._op_bin#0#wrap#0#if#0#const + 8 parse._op_order#0#wrap#1#if#0#wrap#0#if#0#const: dq 3 db 105, 115, 0 parse._op_order#0#wrap#1#if#0#wrap#0#if#0#const#ptr: dq parse._op_order#0#wrap#1#if#0#wrap#0#if#0#const + 8 parse._op_order#0#wrap#2#if#0#wrap#0#if#0#const: dq 4 db 108, 101, 110, 0 parse._op_order#0#wrap#2#if#0#wrap#0#if#0#const#ptr: dq parse._op_order#0#wrap#2#if#0#wrap#0#if#0#const + 8 parse._op_order#1#const: dq 65 db 91, 70, 65, 84, 65, 76, 93, 32, 91, 67, 77, 80, 69, 82, 82, 93, 32, 95, 111, 112, 95, 111, 114, 100, 101, 114, 58, 32, 65, 117, 103, 109, 101, 110, 116, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 32, 105, 110, 32, 111, 114, 100, 101, 114, 105, 110, 103, 32, 0 parse._op_order#1#const#ptr: dq parse._op_order#1#const + 8 parse._op_order#2#const: dq 6 db 39, 37, 115, 39, 10, 0 parse._op_order#2#const#ptr: dq parse._op_order#2#const + 8 parse._astv_pre_id#0#loop#0#wrap#0#if#0#const: dq 85 db 79, 110, 108, 121, 32, 99, 101, 114, 116, 97, 105, 110, 32, 97, 117, 103, 109, 101, 110, 116, 115, 32, 40, 45, 44, 32, 33, 44, 32, 126, 44, 32, 45, 45, 44, 32, 43, 43, 44, 32, 108, 101, 110, 41, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 97, 115, 32, 112, 114, 101, 102, 105, 120, 101, 115, 32, 102, 111, 114, 32, 98, 97, 114, 101, 32, 118, 97, 108, 117, 101, 115, 0 parse._astv_pre_id#0#loop#0#wrap#0#if#0#const#ptr: dq parse._astv_pre_id#0#loop#0#wrap#0#if#0#const + 8 parse._astv_cast#0#wrap#0#if#0#const: dq 2 db 91, 0 parse._astv_cast#0#wrap#0#if#0#const#ptr: dq parse._astv_cast#0#wrap#0#if#0#const + 8 parse._astv_cast#0#wrap#0#if#1#const: dq 1 db 0 parse._astv_cast#0#wrap#0#if#1#const#ptr: dq parse._astv_cast#0#wrap#0#if#1#const + 8 parse._astv_post_id#0#loop#1#wrap#2#if#0#const: dq 2 db 40, 0 parse._astv_post_id#0#loop#1#wrap#2#if#0#const#ptr: dq parse._astv_post_id#0#loop#1#wrap#2#if#0#const + 8 parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#1#const: dq 2 db 91, 0 parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#1#const#ptr: dq parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#1#const + 8 parse._astv_post_id#0#loop#1#wrap#3#if#0#const: dq 2 db 123, 0 parse._astv_post_id#0#loop#1#wrap#3#if#0#const#ptr: dq parse._astv_post_id#0#loop#1#wrap#3#if#0#const + 8 parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#0#if#0#const: dq 45 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 105, 110, 100, 101, 120, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 102, 116, 101, 114, 32, 39, 123, 39, 0 parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#0#if#0#const#ptr: dq parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#0#if#0#const + 8 parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#0#const: dq 2 db 125, 0 parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#0#const#ptr: dq parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#0#const + 8 parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#1#const: dq 67 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 125, 39, 32, 116, 111, 32, 115, 104, 111, 119, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 97, 110, 32, 105, 110, 100, 101, 120, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 0 parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#1#const#ptr: dq parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#1#const + 8 parse._ast_value_bare#0#wrap#0#if#0#const: dq 2 db 123, 0 parse._ast_value_bare#0#wrap#0#if#0#const#ptr: dq parse._ast_value_bare#0#wrap#0#if#0#const + 8 parse._ast_value_bare#0#wrap#1#if#0#const: dq 2 db 40, 0 parse._ast_value_bare#0#wrap#1#if#0#const#ptr: dq parse._ast_value_bare#0#wrap#1#if#0#const + 8 parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#0#const: dq 2 db 41, 0 parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#0#const#ptr: dq parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#0#const + 8 parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#1#const: dq 33 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 39, 41, 39, 32, 102, 111, 114, 32, 115, 105, 110, 103, 108, 101, 116, 0 parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#1#const#ptr: dq parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#1#const + 8 parse._ast_value_bare#0#wrap#4#if#0#const: dq 72 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 99, 111, 109, 112, 111, 117, 110, 100, 44, 32, 112, 97, 114, 101, 110, 116, 104, 101, 116, 105, 99, 97, 108, 44, 32, 108, 105, 116, 101, 114, 97, 108, 44, 32, 111, 114, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 102, 111, 114, 32, 98, 97, 114, 101, 32, 118, 97, 108, 117, 101, 0 parse._ast_value_bare#0#wrap#4#if#0#const#ptr: dq parse._ast_value_bare#0#wrap#4#if#0#const + 8 parse._ast_value_bare#2#loop#1#const: dq 2 db 46, 0 parse._ast_value_bare#2#loop#1#const#ptr: dq parse._ast_value_bare#2#loop#1#const + 8 parse._ast_value_bare#2#loop#2#wrap#0#if#0#const: dq 38 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 109, 101, 116, 104, 111, 100, 47, 109, 101, 109, 98, 101, 114, 32, 110, 97, 109, 101, 32, 97, 102, 116, 101, 114, 32, 39, 46, 39, 0 parse._ast_value_bare#2#loop#2#wrap#0#if#0#const#ptr: dq parse._ast_value_bare#2#loop#2#wrap#0#if#0#const + 8 parse._ast_value_bare#2#loop#3#const: dq 2 db 46, 0 parse._ast_value_bare#2#loop#3#const#ptr: dq parse._ast_value_bare#2#loop#3#const + 8 parse._ast_value_bare#2#loop#6#const: dq 2 db 46, 0 parse._ast_value_bare#2#loop#6#const#ptr: dq parse._ast_value_bare#2#loop#6#const + 8 parse._ast_value#0#const: dq 1 db 0 parse._ast_value#0#const#ptr: dq parse._ast_value#0#const + 8 parse._ast_value#1#loop#1#wrap#1#if#0#const: dq 2 db 46, 0 parse._ast_value#1#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_value#1#loop#1#wrap#1#if#0#const + 8 parse._ast_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const: dq 3 db 105, 115, 0 parse._ast_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const#ptr: dq parse._ast_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const + 8 parse._ast_keyword_expr#0#wrap#0#if#2#const: dq 7 db 114, 101, 116, 117, 114, 110, 0 parse._ast_keyword_expr#0#wrap#0#if#2#const#ptr: dq parse._ast_keyword_expr#0#wrap#0#if#2#const + 8 parse._ast_keyword_expr#0#wrap#0#if#3#const: dq 9 db 99, 111, 110, 116, 105, 110, 117, 101, 0 parse._ast_keyword_expr#0#wrap#0#if#3#const#ptr: dq parse._ast_keyword_expr#0#wrap#0#if#3#const + 8 parse._ast_keyword_expr#0#wrap#0#if#4#const: dq 6 db 98, 114, 101, 97, 107, 0 parse._ast_keyword_expr#0#wrap#0#if#4#const#ptr: dq parse._ast_keyword_expr#0#wrap#0#if#4#const + 8 parse._ast_keyword_expr#0#wrap#1#if#0#const: dq 30 db 85, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 107, 101, 121, 119, 111, 114, 100, 32, 115, 116, 97, 116, 101, 109, 101, 110, 116, 0 parse._ast_keyword_expr#0#wrap#1#if#0#const#ptr: dq parse._ast_keyword_expr#0#wrap#1#if#0#const + 8 parse._type_helper_pre#0#loop#1#wrap#0#if#1#const: dq 2 db 126, 0 parse._type_helper_pre#0#loop#1#wrap#0#if#1#const#ptr: dq parse._type_helper_pre#0#loop#1#wrap#0#if#1#const + 8 parse._type_helper_pre#0#loop#1#wrap#1#if#1#const: dq 2 db 123, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#1#const#ptr: dq parse._type_helper_pre#0#loop#1#wrap#1#if#1#const + 8 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#0#if#0#const: dq 2 db 125, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#0#if#0#const + 8 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#1#if#0#const: dq 55 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 39, 125, 39, 32, 97, 102, 116, 101, 114, 32, 105, 110, 116, 101, 103, 101, 114, 32, 105, 110, 32, 116, 121, 112, 101, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#1#if#0#const#ptr: dq parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#1#if#0#const + 8 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#1#if#0#const: dq 2 db 125, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#1#if#0#const#ptr: dq parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#1#if#0#const + 8 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#2#if#0#const: dq 95 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 110, 116, 101, 103, 101, 114, 32, 111, 114, 32, 39, 125, 39, 32, 116, 111, 32, 100, 101, 102, 105, 110, 101, 32, 101, 105, 116, 104, 101, 114, 32, 97, 32, 102, 105, 120, 101, 100, 32, 115, 105, 122, 101, 100, 32, 97, 114, 114, 97, 121, 32, 111, 114, 32, 112, 111, 105, 110, 116, 101, 114, 32, 116, 111, 32, 117, 110, 107, 110, 111, 119, 110, 32, 115, 105, 122, 101, 100, 32, 97, 114, 114, 97, 121, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#2#if#0#const#ptr: dq parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#2#if#0#const + 8 parse._type_helper_func#0#wrap#0#if#0#const: dq 2 db 40, 0 parse._type_helper_func#0#wrap#0#if#0#const#ptr: dq parse._type_helper_func#0#wrap#0#if#0#const + 8 parse._type_helper_func#1#wrap#0#if#0#const: dq 2 db 91, 0 parse._type_helper_func#1#wrap#0#if#0#const#ptr: dq parse._type_helper_func#1#wrap#0#if#0#const + 8 parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#1#const: dq 2 db 46, 0 parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#1#const#ptr: dq parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#1#const + 8 parse._type_helper_usertype#0#loop#1#wrap#1#if#0#const: dq 50 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 105, 110, 32, 102, 117, 108, 108, 121, 32, 113, 117, 97, 108, 105, 102, 105, 101, 100, 32, 116, 121, 112, 101, 32, 99, 104, 97, 105, 110, 0 parse._type_helper_usertype#0#loop#1#wrap#1#if#0#const#ptr: dq parse._type_helper_usertype#0#loop#1#wrap#1#if#0#const + 8 parse._type_helper_usertype#1#wrap#0#if#1#const: dq 2 db 40, 0 parse._type_helper_usertype#1#wrap#0#if#1#const#ptr: dq parse._type_helper_usertype#1#wrap#0#if#1#const + 8 parse._ast_type#0#const: dq 1 db 0 parse._ast_type#0#const#ptr: dq parse._ast_type#0#const + 8 parse._ast_type#1#wrap#0#if#0#const: dq 5 db 118, 111, 105, 100, 0 parse._ast_type#1#wrap#0#if#0#const#ptr: dq parse._ast_type#1#wrap#0#if#0#const + 8 parse._ast_type#2#wrap#2#if#0#const: dq 47 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 107, 101, 121, 116, 121, 112, 101, 32, 111, 114, 32, 117, 115, 101, 114, 116, 121, 112, 101, 32, 119, 104, 101, 110, 32, 112, 97, 114, 115, 105, 110, 103, 32, 116, 121, 112, 101, 0 parse._ast_type#2#wrap#2#if#0#const#ptr: dq parse._ast_type#2#wrap#2#if#0#const + 8 parse._ast_type#3#wrap#0#if#0#const: dq 2 db 96, 0 parse._ast_type#3#wrap#0#if#0#const#ptr: dq parse._ast_type#3#wrap#0#if#0#const + 8 parse._ast_list_value#0#loop#1#wrap#0#if#1#const: dq 2 db 44, 0 parse._ast_list_value#0#loop#1#wrap#0#if#1#const#ptr: dq parse._ast_list_value#0#loop#1#wrap#0#if#1#const + 8 parse._ast_list_value#0#loop#1#wrap#0#if#3#const: dq 63 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 44, 39, 32, 116, 111, 32, 99, 111, 110, 116, 105, 110, 117, 101, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 108, 105, 115, 116, 32, 111, 114, 32, 97, 32, 99, 108, 111, 115, 105, 110, 103, 32, 100, 101, 108, 105, 109, 105, 116, 101, 114, 0 parse._ast_list_value#0#loop#1#wrap#0#if#3#const#ptr: dq parse._ast_list_value#0#loop#1#wrap#0#if#3#const + 8 parse._maybe_helper_decl#0#wrap#0#if#2#const: dq 2 db 44, 0 parse._maybe_helper_decl#0#wrap#0#if#2#const#ptr: dq parse._maybe_helper_decl#0#wrap#0#if#2#const + 8 parse._maybe_helper_decl#1#const: dq 1 db 0 parse._maybe_helper_decl#1#const#ptr: dq parse._maybe_helper_decl#1#const + 8 parse._maybe_helper_decl#2#wrap#0#if#1#const: dq 2 db 46, 0 parse._maybe_helper_decl#2#wrap#0#if#1#const#ptr: dq parse._maybe_helper_decl#2#wrap#0#if#1#const + 8 parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#1#const: dq 2 db 46, 0 parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#1#const#ptr: dq parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#1#const + 8 parse._maybe_helper_decl#3#loop#1#wrap#1#if#0#const: dq 50 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 105, 110, 32, 102, 117, 108, 108, 121, 32, 113, 117, 97, 108, 105, 102, 105, 101, 100, 32, 116, 121, 112, 101, 32, 99, 104, 97, 105, 110, 0 parse._maybe_helper_decl#3#loop#1#wrap#1#if#0#const#ptr: dq parse._maybe_helper_decl#3#loop#1#wrap#1#if#0#const + 8 parse._maybe_helper_decl#4#wrap#0#if#1#const: dq 2 db 40, 0 parse._maybe_helper_decl#4#wrap#0#if#1#const#ptr: dq parse._maybe_helper_decl#4#wrap#0#if#1#const + 8 parse._maybe_helper_decl#5#wrap#0#if#0#const: dq 49 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 97, 102, 116, 101, 114, 32, 117, 115, 101, 114, 32, 116, 121, 112, 101, 32, 105, 110, 32, 116, 121, 112, 101, 32, 108, 105, 115, 116, 0 parse._maybe_helper_decl#5#wrap#0#if#0#const#ptr: dq parse._maybe_helper_decl#5#wrap#0#if#0#const + 8 parse._ast_list_decl#0#loop#1#wrap#0#if#3#const: dq 2 db 126, 0 parse._ast_list_decl#0#loop#1#wrap#0#if#3#const#ptr: dq parse._ast_list_decl#0#loop#1#wrap#0#if#3#const + 8 parse._ast_list_decl#0#loop#1#wrap#0#if#4#const: dq 2 db 123, 0 parse._ast_list_decl#0#loop#1#wrap#0#if#4#const#ptr: dq parse._ast_list_decl#0#loop#1#wrap#0#if#4#const + 8 parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#0#if#0#const: dq 65 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 116, 121, 112, 101, 32, 116, 104, 101, 110, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 97, 115, 32, 102, 105, 114, 115, 116, 32, 105, 116, 101, 109, 115, 32, 105, 110, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 32, 108, 105, 115, 116, 0 parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#0#if#0#const#ptr: dq parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#0#if#0#const + 8 parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#1#if#0#const: dq 52 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 97, 102, 116, 101, 114, 32, 116, 121, 112, 101, 32, 105, 110, 32, 112, 97, 114, 97, 109, 115, 47, 115, 116, 114, 117, 99, 116, 32, 100, 101, 102, 0 parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#1#if#0#const#ptr: dq parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#1#if#0#const + 8 parse._ast_list_decl#0#loop#1#wrap#2#if#0#const: dq 52 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 116, 121, 112, 101, 32, 111, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 110, 97, 109, 101, 32, 105, 110, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 32, 108, 105, 115, 116, 0 parse._ast_list_decl#0#loop#1#wrap#2#if#0#const#ptr: dq parse._ast_list_decl#0#loop#1#wrap#2#if#0#const + 8 parse._ast_list_decl#0#loop#2#wrap#0#if#1#const: dq 2 db 44, 0 parse._ast_list_decl#0#loop#2#wrap#0#if#1#const#ptr: dq parse._ast_list_decl#0#loop#2#wrap#0#if#1#const + 8 parse._ast_list_decl#0#loop#2#wrap#0#if#2#const: dq 69 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 44, 39, 32, 116, 111, 32, 99, 111, 110, 116, 105, 110, 117, 101, 32, 116, 104, 101, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 32, 108, 105, 115, 116, 32, 111, 114, 32, 97, 32, 99, 108, 111, 115, 105, 110, 103, 32, 100, 101, 108, 105, 109, 105, 116, 101, 114, 0 parse._ast_list_decl#0#loop#2#wrap#0#if#2#const#ptr: dq parse._ast_list_decl#0#loop#2#wrap#0#if#2#const + 8 parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 61, 0 parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#0#if#0#const + 8 parse._ast_list_enum#0#loop#1#wrap#1#if#0#const: dq 48 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 105, 110, 32, 98, 111, 100, 121, 32, 111, 102, 32, 101, 110, 117, 109, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 0 parse._ast_list_enum#0#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_list_enum#0#loop#1#wrap#1#if#0#const + 8 parse._ast_list_enum#0#loop#2#wrap#0#if#0#const: dq 2 db 44, 0 parse._ast_list_enum#0#loop#2#wrap#0#if#0#const#ptr: dq parse._ast_list_enum#0#loop#2#wrap#0#if#0#const + 8 parse._ast_list_enum#0#loop#3#wrap#0#if#1#const: dq 2 db 44, 0 parse._ast_list_enum#0#loop#3#wrap#0#if#1#const#ptr: dq parse._ast_list_enum#0#loop#3#wrap#0#if#1#const + 8 parse._ast_list_enum#0#loop#3#wrap#0#if#2#const: dq 62 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 44, 39, 32, 116, 111, 32, 99, 111, 110, 116, 105, 110, 117, 101, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 108, 105, 115, 116, 32, 111, 114, 32, 97, 32, 99, 108, 111, 115, 105, 110, 103, 32, 100, 101, 108, 105, 109, 105, 116, 101, 114, 0 parse._ast_list_enum#0#loop#3#wrap#0#if#2#const#ptr: dq parse._ast_list_enum#0#loop#3#wrap#0#if#2#const + 8 parse._ast_list_type#0#loop#1#wrap#0#if#3#const: dq 2 db 126, 0 parse._ast_list_type#0#loop#1#wrap#0#if#3#const#ptr: dq parse._ast_list_type#0#loop#1#wrap#0#if#3#const + 8 parse._ast_list_type#0#loop#1#wrap#0#if#4#const: dq 2 db 123, 0 parse._ast_list_type#0#loop#1#wrap#0#if#4#const#ptr: dq parse._ast_list_type#0#loop#1#wrap#0#if#4#const + 8 parse._ast_list_type#0#loop#1#wrap#1#if#0#const: dq 27 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 116, 121, 112, 101, 32, 105, 110, 32, 116, 121, 112, 101, 32, 108, 105, 115, 116, 0 parse._ast_list_type#0#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_list_type#0#loop#1#wrap#1#if#0#const + 8 parse._ast_list_type#0#loop#2#wrap#0#if#1#const: dq 2 db 44, 0 parse._ast_list_type#0#loop#2#wrap#0#if#1#const#ptr: dq parse._ast_list_type#0#loop#2#wrap#0#if#1#const + 8 parse._ast_list_type#0#loop#2#wrap#0#if#2#const: dq 62 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 44, 39, 32, 116, 111, 32, 99, 111, 110, 116, 105, 110, 117, 101, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 108, 105, 115, 116, 32, 111, 114, 32, 97, 32, 99, 108, 111, 115, 105, 110, 103, 32, 100, 101, 108, 105, 109, 105, 116, 101, 114, 0 parse._ast_list_type#0#loop#2#wrap#0#if#2#const#ptr: dq parse._ast_list_type#0#loop#2#wrap#0#if#2#const + 8 parse._ast_list_stmt#0#loop#2#wrap#0#if#0#const: dq 4 db 97, 115, 109, 0 parse._ast_list_stmt#0#loop#2#wrap#0#if#0#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#0#if#0#const + 8 parse._ast_list_stmt#0#loop#2#wrap#1#if#1#const: dq 2 db 123, 0 parse._ast_list_stmt#0#loop#2#wrap#1#if#1#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#1#if#1#const + 8 parse._ast_list_stmt#0#loop#2#wrap#2#if#1#const: dq 2 db 126, 0 parse._ast_list_stmt#0#loop#2#wrap#2#if#1#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#2#if#1#const + 8 parse._ast_list_stmt#0#loop#2#wrap#3#if#2#const: dq 2 db 40, 0 parse._ast_list_stmt#0#loop#2#wrap#3#if#2#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#3#if#2#const + 8 parse._ast_list_stmt#0#loop#2#wrap#5#if#0#const: dq 2 db 59, 0 parse._ast_list_stmt#0#loop#2#wrap#5#if#0#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#5#if#0#const + 8 parse._ast_list_stmt#0#loop#2#wrap#5#if#1#const: dq 1 db 0 parse._ast_list_stmt#0#loop#2#wrap#5#if#1#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#5#if#1#const + 8 parse._ast_list_stmt#0#loop#2#wrap#6#if#0#const: dq 58 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 44, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 39, 59, 39, 32, 105, 110, 32, 115, 116, 97, 116, 101, 109, 101, 110, 116, 32, 108, 105, 115, 116, 0 parse._ast_list_stmt#0#loop#2#wrap#6#if#0#const#ptr: dq parse._ast_list_stmt#0#loop#2#wrap#6#if#0#const + 8 parse._ast_list_stmt#0#loop#3#wrap#0#if#0#const: dq 2 db 59, 0 parse._ast_list_stmt#0#loop#3#wrap#0#if#0#const#ptr: dq parse._ast_list_stmt#0#loop#3#wrap#0#if#0#const + 8 parse._ast_list_stmt#1#wrap#0#if#1#const: dq 42 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 97, 116, 32, 101, 110, 100, 32, 111, 102, 32, 115, 116, 97, 116, 101, 109, 101, 110, 116, 32, 108, 105, 115, 116, 0 parse._ast_list_stmt#1#wrap#0#if#1#const#ptr: dq parse._ast_list_stmt#1#wrap#0#if#1#const + 8 parse._block_helper_method#0#loop#0#wrap#1#if#0#const: dq 55 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 114, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 111, 118, 101, 114, 108, 111, 97, 100, 32, 105, 110, 32, 109, 101, 116, 104, 111, 100, 32, 98, 108, 111, 99, 107, 0 parse._block_helper_method#0#loop#0#wrap#1#if#0#const#ptr: dq parse._block_helper_method#0#loop#0#wrap#1#if#0#const + 8 parse._block_helper_method#0#loop#1#wrap#0#if#0#const: dq 3 db 59, 47, 0 parse._block_helper_method#0#loop#1#wrap#0#if#0#const#ptr: dq parse._block_helper_method#0#loop#1#wrap#0#if#0#const + 8 parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#0#const: dq 3 db 47, 59, 0 parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#0#const#ptr: dq parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#0#const + 8 parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#1#const: dq 39 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 111, 112, 101, 110, 105, 110, 103, 32, 98, 108, 111, 99, 107, 32, 105, 110, 32, 109, 101, 116, 104, 111, 100, 32, 98, 108, 111, 99, 107, 0 parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#1#const#ptr: dq parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#1#const + 8 parse._block_helper_method#0#loop#1#wrap#1#if#0#const: dq 3 db 59, 59, 0 parse._block_helper_method#0#loop#1#wrap#1#if#0#const#ptr: dq parse._block_helper_method#0#loop#1#wrap#1#if#0#const + 8 parse._block_helper_method#0#loop#1#wrap#1#if#1#const: dq 55 db 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 102, 105, 110, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 59, 47, 32, 102, 111, 114, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 110, 32, 109, 101, 116, 104, 111, 100, 32, 98, 108, 111, 99, 107, 0 parse._block_helper_method#0#loop#1#wrap#1#if#1#const#ptr: dq parse._block_helper_method#0#loop#1#wrap#1#if#1#const + 8 parse._ast_method#0#wrap#0#if#0#const: dq 45 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 111, 102, 32, 115, 116, 114, 117, 99, 116, 32, 97, 102, 116, 101, 114, 32, 39, 109, 101, 116, 104, 111, 100, 39, 0 parse._ast_method#0#wrap#0#if#0#const#ptr: dq parse._ast_method#0#wrap#0#if#0#const + 8 parse._ast_method#1#loop#1#wrap#0#if#0#const: dq 3 db 47, 59, 0 parse._ast_method#1#loop#1#wrap#0#if#0#const#ptr: dq parse._ast_method#1#loop#1#wrap#0#if#0#const + 8 parse._ast_method#1#loop#1#wrap#1#if#0#wrap#0#if#0#const: dq 62 db 77, 101, 116, 104, 111, 100, 32, 98, 108, 111, 99, 107, 32, 98, 101, 105, 110, 103, 32, 115, 107, 105, 112, 112, 101, 100, 46, 32, 80, 97, 114, 115, 105, 110, 103, 32, 119, 105, 108, 108, 32, 114, 101, 115, 117, 109, 101, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 101, 110, 100, 0 parse._ast_method#1#loop#1#wrap#1#if#0#wrap#0#if#0#const#ptr: dq parse._ast_method#1#loop#1#wrap#1#if#0#wrap#0#if#0#const + 8 parse._ast_method#2#wrap#0#if#0#const: dq 3 db 59, 47, 0 parse._ast_method#2#wrap#0#if#0#const#ptr: dq parse._ast_method#2#wrap#0#if#0#const + 8 parse._ast_method#2#wrap#0#if#1#const: dq 43 db 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 102, 105, 110, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 59, 47, 32, 102, 111, 114, 32, 109, 101, 116, 104, 111, 100, 32, 98, 108, 111, 99, 107, 0 parse._ast_method#2#wrap#0#if#1#const#ptr: dq parse._ast_method#2#wrap#0#if#1#const + 8 parse._ast_flow#0#wrap#0#if#0#const: dq 5 db 101, 108, 115, 101, 0 parse._ast_flow#0#wrap#0#if#0#const#ptr: dq parse._ast_flow#0#wrap#0#if#0#const + 8 parse._ast_flow#0#wrap#0#if#1#wrap#0#if#0#const: dq 3 db 105, 102, 0 parse._ast_flow#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._ast_flow#0#wrap#0#if#1#wrap#0#if#0#const + 8 parse._ast_flow#0#wrap#1#if#0#const: dq 5 db 108, 111, 111, 112, 0 parse._ast_flow#0#wrap#1#if#0#const#ptr: dq parse._ast_flow#0#wrap#1#if#0#const + 8 parse._ast_flow#1#const: dq 1 db 0 parse._ast_flow#1#const#ptr: dq parse._ast_flow#1#const + 8 parse._ast_flow#2#wrap#0#if#1#const: dq 2 db 40, 0 parse._ast_flow#2#wrap#0#if#1#const#ptr: dq parse._ast_flow#2#wrap#0#if#1#const + 8 parse._ast_flow#3#wrap#0#if#1#const: dq 2 db 91, 0 parse._ast_flow#3#wrap#0#if#1#const#ptr: dq parse._ast_flow#3#wrap#0#if#1#const + 8 parse._ast_flow#4#loop#1#wrap#1#if#0#const: dq 4 db 97, 115, 109, 0 parse._ast_flow#4#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_flow#4#loop#1#wrap#1#if#0#const + 8 parse._ast_flow#4#loop#1#wrap#2#if#0#const: dq 3 db 47, 59, 0 parse._ast_flow#4#loop#1#wrap#2#if#0#const#ptr: dq parse._ast_flow#4#loop#1#wrap#2#if#0#const + 8 parse._ast_flow#4#loop#1#wrap#3#if#1#const: dq 2 db 123, 0 parse._ast_flow#4#loop#1#wrap#3#if#1#const#ptr: dq parse._ast_flow#4#loop#1#wrap#3#if#1#const + 8 parse._ast_flow#4#loop#1#wrap#4#if#1#const: dq 2 db 126, 0 parse._ast_flow#4#loop#1#wrap#4#if#1#const#ptr: dq parse._ast_flow#4#loop#1#wrap#4#if#1#const + 8 parse._ast_flow#4#loop#1#wrap#5#if#2#const: dq 2 db 40, 0 parse._ast_flow#4#loop#1#wrap#5#if#2#const#ptr: dq parse._ast_flow#4#loop#1#wrap#5#if#2#const + 8 parse._ast_flow#4#loop#1#wrap#7#if#0#const: dq 60 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 44, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 115, 117, 98, 32, 98, 108, 111, 99, 107, 32, 105, 110, 32, 102, 108, 111, 119, 32, 98, 108, 111, 99, 107, 0 parse._ast_flow#4#loop#1#wrap#7#if#0#const#ptr: dq parse._ast_flow#4#loop#1#wrap#7#if#0#const + 8 parse._ast_fun_block#0#loop#1#wrap#0#if#2#const: dq 3 db 105, 102, 0 parse._ast_fun_block#0#loop#1#wrap#0#if#2#const#ptr: dq parse._ast_fun_block#0#loop#1#wrap#0#if#2#const + 8 parse._ast_fun_block#0#loop#1#wrap#0#if#3#const: dq 5 db 101, 108, 115, 101, 0 parse._ast_fun_block#0#loop#1#wrap#0#if#3#const#ptr: dq parse._ast_fun_block#0#loop#1#wrap#0#if#3#const + 8 parse._ast_fun_block#0#loop#1#wrap#0#if#4#const: dq 5 db 108, 111, 111, 112, 0 parse._ast_fun_block#0#loop#1#wrap#0#if#4#const#ptr: dq parse._ast_fun_block#0#loop#1#wrap#0#if#4#const + 8 parse._ast_fun_block#0#loop#1#wrap#1#if#0#const: dq 58 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 105, 102, 39, 44, 32, 39, 101, 108, 115, 101, 39, 44, 32, 111, 114, 32, 39, 108, 111, 111, 112, 39, 32, 102, 111, 114, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 108, 101, 118, 101, 108, 32, 98, 108, 111, 99, 107, 0 parse._ast_fun_block#0#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_fun_block#0#loop#1#wrap#1#if#0#const + 8 parse._ast_fun_block#0#loop#2#const: dq 3 db 59, 59, 0 parse._ast_fun_block#0#loop#2#const#ptr: dq parse._ast_fun_block#0#loop#2#const + 8 parse._ast_fun_block#0#loop#3#wrap#0#if#1#const: dq 3 db 59, 47, 0 parse._ast_fun_block#0#loop#3#wrap#0#if#1#const#ptr: dq parse._ast_fun_block#0#loop#3#wrap#0#if#1#const + 8 parse._ast_fun_block#0#loop#3#wrap#0#if#2#const: dq 56 db 66, 108, 111, 99, 107, 32, 98, 101, 105, 110, 103, 32, 115, 107, 105, 112, 112, 101, 100, 46, 32, 80, 97, 114, 115, 105, 110, 103, 32, 119, 105, 108, 108, 32, 112, 105, 99, 107, 32, 117, 112, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 101, 110, 100, 0 parse._ast_fun_block#0#loop#3#wrap#0#if#2#const#ptr: dq parse._ast_fun_block#0#loop#3#wrap#0#if#2#const + 8 parse._ast_fun_block#1#wrap#0#if#0#const: dq 3 db 59, 47, 0 parse._ast_fun_block#1#wrap#0#if#0#const#ptr: dq parse._ast_fun_block#1#wrap#0#if#0#const + 8 parse._ast_fun_block#1#wrap#0#if#1#const: dq 40 db 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 102, 105, 110, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 59, 47, 32, 102, 111, 114, 32, 116, 111, 112, 32, 98, 108, 111, 99, 107, 0 parse._ast_fun_block#1#wrap#0#if#1#const#ptr: dq parse._ast_fun_block#1#wrap#0#if#1#const + 8 parse._mhf_post_list#0#loop#1#const: dq 1 db 0 parse._mhf_post_list#0#loop#1#const#ptr: dq parse._mhf_post_list#0#loop#1#const + 8 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#1#const: dq 2 db 44, 0 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#1#const#ptr: dq parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#1#const + 8 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#1#const: dq 2 db 41, 0 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#1#const#ptr: dq parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#1#const + 8 parse._mhf_post#0#wrap#0#if#0#wrap#0#if#0#const: dq 5 db 118, 111, 105, 100, 0 parse._mhf_post#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq parse._mhf_post#0#wrap#0#if#0#wrap#0#if#0#const + 8 parse._mhf_post#0#wrap#0#if#0#wrap#1#if#0#const: dq 2 db 96, 0 parse._mhf_post#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq parse._mhf_post#0#wrap#0#if#0#wrap#1#if#0#const + 8 parse._mhf_post#1#loop#1#wrap#1#if#0#const: dq 18 db 82, 101, 116, 117, 114, 110, 105, 110, 103, 32, 109, 111, 100, 32, 97, 116, 32, 0 parse._mhf_post#1#loop#1#wrap#1#if#0#const#ptr: dq parse._mhf_post#1#loop#1#wrap#1#if#0#const + 8 parse._mhf_post#1#loop#1#wrap#1#if#1#const: dq 2 db 10, 0 parse._mhf_post#1#loop#1#wrap#1#if#1#const#ptr: dq parse._mhf_post#1#loop#1#wrap#1#if#1#const + 8 parse._mhf_post#1#loop#2#wrap#1#if#0#const: dq 2 db 46, 0 parse._mhf_post#1#loop#2#wrap#1#if#0#const#ptr: dq parse._mhf_post#1#loop#2#wrap#1#if#0#const + 8 parse._mhf_post#1#loop#2#wrap#2#if#1#const: dq 2 db 40, 0 parse._mhf_post#1#loop#2#wrap#2#if#1#const#ptr: dq parse._mhf_post#1#loop#2#wrap#2#if#1#const + 8 parse._mhf_post#2#wrap#0#if#0#const: dq 2 db 40, 0 parse._mhf_post#2#wrap#0#if#0#const#ptr: dq parse._mhf_post#2#wrap#0#if#0#const + 8 parse._mhf_post#2#wrap#0#if#1#wrap#0#if#1#const: dq 2 db 41, 0 parse._mhf_post#2#wrap#0#if#1#wrap#0#if#1#const#ptr: dq parse._mhf_post#2#wrap#0#if#1#wrap#0#if#1#const + 8 parse._mhf_transform#0#const: dq 1 db 0 parse._mhf_transform#0#const#ptr: dq parse._mhf_transform#0#const + 8 parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 46, 0 parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#0#if#0#const + 8 parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#0#if#0#const: dq 2 db 46, 0 parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#0#if#0#const + 8 parse._mhf_transform#2#loop#0#wrap#1#if#1#const: dq 2 db 40, 0 parse._mhf_transform#2#loop#0#wrap#1#if#1#const#ptr: dq parse._mhf_transform#2#loop#0#wrap#1#if#1#const + 8 parse._mhf_transform#2#loop#0#wrap#1#if#2#const: dq 2 db 40, 0 parse._mhf_transform#2#loop#0#wrap#1#if#2#const#ptr: dq parse._mhf_transform#2#loop#0#wrap#1#if#2#const + 8 parse._mhf_escape#0#loop#2#wrap#0#if#0#const: dq 2 db 41, 0 parse._mhf_escape#0#loop#2#wrap#0#if#0#const#ptr: dq parse._mhf_escape#0#loop#2#wrap#0#if#0#const + 8 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#1#if#0#const: dq 2 db 40, 0 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#1#if#0#const#ptr: dq parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#1#if#0#const + 8 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#1#const: dq 2 db 40, 0 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#1#const#ptr: dq parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#1#const + 8 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#3#const: dq 2 db 40, 0 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#3#const#ptr: dq parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#3#const + 8 parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#0#if#0#const: dq 2 db 40, 0 parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#0#if#0#const#ptr: dq parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#0#if#0#const + 8 parse._mhf_escape#0#loop#2#wrap#1#if#0#const: dq 2 db 40, 0 parse._mhf_escape#0#loop#2#wrap#1#if#0#const#ptr: dq parse._mhf_escape#0#loop#2#wrap#1#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#1#if#0#const: dq 2 db 46, 0 parse._mhf_post_value#0#loop#1#wrap#1#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#1#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#0#if#0#const: dq 2 db 46, 0 parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#0#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#0#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#1#if#0#const: dq 30 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 97, 102, 116, 101, 114, 32, 39, 46, 39, 0 parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#1#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#1#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#2#if#0#const: dq 51 db 85, 110, 115, 117, 114, 101, 32, 119, 104, 101, 114, 101, 32, 119, 101, 32, 97, 114, 101, 32, 97, 116, 32, 105, 110, 32, 116, 104, 101, 32, 116, 114, 101, 101, 32, 40, 39, 96, 39, 41, 46, 32, 91, 67, 77, 80, 69, 82, 82, 93, 0 parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#2#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#2#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#3#if#0#const: dq 2 db 40, 0 parse._mhf_post_value#0#loop#1#wrap#3#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#3#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#2#if#0#const: dq 51 db 85, 110, 115, 117, 114, 101, 32, 119, 104, 101, 114, 101, 32, 119, 101, 32, 97, 114, 101, 32, 97, 116, 32, 105, 110, 32, 116, 104, 101, 32, 116, 114, 101, 101, 32, 40, 39, 40, 39, 41, 46, 32, 91, 67, 77, 80, 69, 82, 82, 93, 0 parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#2#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#2#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#4#if#0#const: dq 2 db 123, 0 parse._mhf_post_value#0#loop#1#wrap#4#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#4#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#0#if#0#const: dq 45 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 105, 110, 100, 101, 120, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 102, 116, 101, 114, 32, 39, 123, 39, 0 parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#0#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#0#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#2#if#0#const: dq 51 db 85, 110, 115, 117, 114, 101, 32, 119, 104, 101, 114, 101, 32, 119, 101, 32, 97, 114, 101, 32, 97, 116, 32, 105, 110, 32, 116, 104, 101, 32, 116, 114, 101, 101, 32, 40, 39, 123, 39, 41, 46, 32, 91, 67, 77, 80, 69, 82, 82, 93, 0 parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#2#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#2#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#0#const: dq 2 db 125, 0 parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#0#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#0#const + 8 parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#1#const: dq 67 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 125, 39, 32, 116, 111, 32, 115, 104, 111, 119, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 97, 110, 32, 105, 110, 100, 101, 120, 32, 111, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 0 parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#1#const#ptr: dq parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#1#const + 8 parse._mhf_inner_value#1#loop#1#wrap#0#if#1#const: dq 2 db 41, 0 parse._mhf_inner_value#1#loop#1#wrap#0#if#1#const#ptr: dq parse._mhf_inner_value#1#loop#1#wrap#0#if#1#const + 8 parse._mhf_inner_value#1#loop#1#wrap#0#if#2#const: dq 2 db 44, 0 parse._mhf_inner_value#1#loop#1#wrap#0#if#2#const#ptr: dq parse._mhf_inner_value#1#loop#1#wrap#0#if#2#const + 8 parse._mhf_inner_value#1#loop#1#wrap#1#if#0#const: dq 2 db 46, 0 parse._mhf_inner_value#1#loop#1#wrap#1#if#0#const#ptr: dq parse._mhf_inner_value#1#loop#1#wrap#1#if#0#const + 8 parse._mhf_inner_value#1#loop#1#wrap#1#if#1#const: dq 94 db 85, 110, 101, 120, 112, 101, 99, 116, 101, 100, 32, 116, 111, 107, 101, 110, 32, 119, 105, 116, 104, 105, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 97, 108, 108, 32, 40, 49, 41, 46, 32, 32, 69, 120, 112, 101, 99, 116, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 116, 104, 101, 110, 32, 118, 97, 108, 117, 101, 44, 32, 39, 44, 39, 44, 32, 111, 114, 32, 39, 41, 39, 46, 0 parse._mhf_inner_value#1#loop#1#wrap#1#if#1#const#ptr: dq parse._mhf_inner_value#1#loop#1#wrap#1#if#1#const + 8 parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const: dq 3 db 105, 115, 0 parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const#ptr: dq parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const + 8 parse._mhf_inner_value#1#loop#1#wrap#3#if#0#const: dq 94 db 85, 110, 101, 120, 112, 101, 99, 116, 101, 100, 32, 116, 111, 107, 101, 110, 32, 119, 105, 116, 104, 105, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 97, 108, 108, 32, 40, 50, 41, 46, 32, 32, 69, 120, 112, 101, 99, 116, 101, 100, 32, 98, 105, 110, 97, 114, 121, 32, 111, 112, 101, 114, 97, 116, 111, 114, 32, 116, 104, 101, 110, 32, 118, 97, 108, 117, 101, 44, 32, 39, 44, 39, 44, 32, 111, 114, 32, 39, 41, 39, 46, 0 parse._mhf_inner_value#1#loop#1#wrap#3#if#0#const#ptr: dq parse._mhf_inner_value#1#loop#1#wrap#3#if#0#const + 8 parse._mhf_inner_value#3#wrap#0#if#0#const: dq 2 db 41, 0 parse._mhf_inner_value#3#wrap#0#if#0#const#ptr: dq parse._mhf_inner_value#3#wrap#0#if#0#const + 8 parse._mhf_inner_value#3#wrap#0#if#1#wrap#0#if#0#const: dq 2 db 40, 0 parse._mhf_inner_value#3#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._mhf_inner_value#3#wrap#0#if#1#wrap#0#if#0#const + 8 parse._mhf_inner_value#3#wrap#1#if#0#const: dq 2 db 44, 0 parse._mhf_inner_value#3#wrap#1#if#0#const#ptr: dq parse._mhf_inner_value#3#wrap#1#if#0#const + 8 parse._mhf_inner_value#3#wrap#1#if#1#const: dq 47 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 41, 39, 32, 111, 114, 32, 39, 44, 39, 32, 116, 111, 32, 99, 111, 109, 112, 108, 101, 116, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 97, 108, 108, 46, 0 parse._mhf_inner_value#3#wrap#1#if#1#const#ptr: dq parse._mhf_inner_value#3#wrap#1#if#1#const + 8 parse._mhf_outer_list#1#loop#1#const: dq 2 db 41, 0 parse._mhf_outer_list#1#loop#1#const#ptr: dq parse._mhf_outer_list#1#loop#1#const + 8 parse._mhf_outer_list#1#loop#2#wrap#0#if#1#const: dq 2 db 44, 0 parse._mhf_outer_list#1#loop#2#wrap#0#if#1#const#ptr: dq parse._mhf_outer_list#1#loop#2#wrap#0#if#1#const + 8 parse._mhf_outer_list#1#loop#2#wrap#0#if#2#const: dq 2 db 41, 0 parse._mhf_outer_list#1#loop#2#wrap#0#if#2#const#ptr: dq parse._mhf_outer_list#1#loop#2#wrap#0#if#2#const + 8 parse._mhf_outer_list#1#loop#2#wrap#0#if#3#const: dq 63 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 44, 39, 32, 116, 111, 32, 99, 111, 110, 116, 105, 110, 117, 101, 32, 116, 104, 101, 32, 118, 97, 108, 117, 101, 32, 108, 105, 115, 116, 32, 111, 114, 32, 97, 32, 99, 108, 111, 115, 105, 110, 103, 32, 100, 101, 108, 105, 109, 105, 116, 101, 114, 0 parse._mhf_outer_list#1#loop#2#wrap#0#if#3#const#ptr: dq parse._mhf_outer_list#1#loop#2#wrap#0#if#3#const + 8 parse._mhf_outer_list#1#loop#4#const: dq 2 db 41, 0 parse._mhf_outer_list#1#loop#4#const#ptr: dq parse._mhf_outer_list#1#loop#4#const + 8 parse._mhf_finish_value#0#loop#4#wrap#0#if#2#const: dq 42 db 91, 67, 77, 80, 69, 82, 82, 93, 32, 85, 110, 115, 117, 114, 101, 32, 119, 104, 101, 114, 101, 32, 119, 101, 32, 97, 114, 101, 32, 105, 110, 32, 116, 104, 101, 32, 116, 114, 101, 101, 10, 0 parse._mhf_finish_value#0#loop#4#wrap#0#if#2#const#ptr: dq parse._mhf_finish_value#0#loop#4#wrap#0#if#2#const + 8 parse._mhf_finish_value#1#wrap#0#if#1#wrap#0#if#0#const: dq 9 db 69, 115, 99, 97, 112, 105, 110, 103, 0 parse._mhf_finish_value#1#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._mhf_finish_value#1#wrap#0#if#1#wrap#0#if#0#const + 8 parse._mhf_finish_value#2#loop#1#wrap#2#if#0#const: dq 2 db 46, 0 parse._mhf_finish_value#2#loop#1#wrap#2#if#0#const#ptr: dq parse._mhf_finish_value#2#loop#1#wrap#2#if#0#const + 8 parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#0#if#0#const: dq 3 db 105, 115, 0 parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#0#if#0#const#ptr: dq parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#0#if#0#const + 8 parse._mhf_finish_decl#0#const: dq 1 db 0 parse._mhf_finish_decl#0#const#ptr: dq parse._mhf_finish_decl#0#const + 8 parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#1#const: dq 2 db 61, 0 parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#1#const#ptr: dq parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#1#const + 8 parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const: dq 2 db 44, 0 parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const + 8 parse._mhf_finish_decl#1#loop#0#wrap#1#if#0#const: dq 38 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 32, 105, 110, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 0 parse._mhf_finish_decl#1#loop#0#wrap#1#if#0#const#ptr: dq parse._mhf_finish_decl#1#loop#0#wrap#1#if#0#const + 8 parse._maybe_helper_fun#0#const: dq 1 db 0 parse._maybe_helper_fun#0#const#ptr: dq parse._maybe_helper_fun#0#const + 8 parse._maybe_helper_fun#1#wrap#0#if#0#const: dq 2 db 40, 0 parse._maybe_helper_fun#1#wrap#0#if#0#const#ptr: dq parse._maybe_helper_fun#1#wrap#0#if#0#const + 8 parse._maybe_helper_fun#1#wrap#1#if#1#const: dq 88 db 85, 110, 101, 120, 112, 101, 99, 116, 101, 100, 32, 116, 111, 107, 101, 110, 46, 32, 69, 120, 112, 101, 99, 116, 101, 100, 32, 116, 104, 101, 32, 99, 111, 109, 112, 108, 101, 116, 105, 111, 110, 32, 111, 102, 32, 97, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 32, 111, 114, 32, 118, 97, 108, 117, 101, 32, 40, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 111, 114, 32, 39, 40, 39, 41, 0 parse._maybe_helper_fun#1#wrap#1#if#1#const#ptr: dq parse._maybe_helper_fun#1#wrap#1#if#1#const + 8 parse._ast_function#0#wrap#0#if#0#const: dq 40 db 91, 70, 65, 84, 65, 76, 93, 32, 91, 67, 77, 80, 69, 82, 82, 93, 32, 69, 120, 112, 101, 99, 116, 101, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 110, 97, 109, 101, 0 parse._ast_function#0#wrap#0#if#0#const#ptr: dq parse._ast_function#0#wrap#0#if#0#const + 8 parse._ast_function#1#wrap#0#if#0#const: dq 2 db 40, 0 parse._ast_function#1#wrap#0#if#0#const#ptr: dq parse._ast_function#1#wrap#0#if#0#const + 8 parse._ast_function#2#wrap#0#if#0#const: dq 2 db 91, 0 parse._ast_function#2#wrap#0#if#0#const#ptr: dq parse._ast_function#2#wrap#0#if#0#const + 8 parse._ast_function#3#loop#1#wrap#0#if#0#const: dq 4 db 97, 115, 109, 0 parse._ast_function#3#loop#1#wrap#0#if#0#const#ptr: dq parse._ast_function#3#loop#1#wrap#0#if#0#const + 8 parse._ast_function#3#loop#1#wrap#1#if#0#const: dq 3 db 47, 59, 0 parse._ast_function#3#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_function#3#loop#1#wrap#1#if#0#const + 8 parse._ast_function#3#loop#1#wrap#2#if#1#const: dq 2 db 123, 0 parse._ast_function#3#loop#1#wrap#2#if#1#const#ptr: dq parse._ast_function#3#loop#1#wrap#2#if#1#const + 8 parse._ast_function#3#loop#1#wrap#3#if#1#const: dq 2 db 126, 0 parse._ast_function#3#loop#1#wrap#3#if#1#const#ptr: dq parse._ast_function#3#loop#1#wrap#3#if#1#const + 8 parse._ast_function#3#loop#1#wrap#4#if#2#const: dq 2 db 40, 0 parse._ast_function#3#loop#1#wrap#4#if#2#const#ptr: dq parse._ast_function#3#loop#1#wrap#4#if#2#const + 8 parse._ast_function#3#loop#1#wrap#7#if#0#const: dq 58 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 44, 32, 101, 120, 112, 114, 101, 115, 115, 105, 111, 110, 44, 32, 111, 114, 32, 115, 117, 98, 32, 98, 108, 111, 99, 107, 32, 105, 110, 32, 102, 117, 110, 99, 116, 105, 111, 110, 0 parse._ast_function#3#loop#1#wrap#7#if#0#const#ptr: dq parse._ast_function#3#loop#1#wrap#7#if#0#const + 8 parse._ast_import#0#wrap#0#if#1#const: dq 49 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 111, 114, 32, 105, 109, 112, 111, 114, 116, 32, 108, 105, 116, 101, 114, 97, 108, 32, 97, 102, 116, 101, 114, 32, 39, 105, 109, 112, 111, 114, 116, 39, 0 parse._ast_import#0#wrap#0#if#1#const#ptr: dq parse._ast_import#0#wrap#0#if#1#const + 8 parse._ast_import#1#const: dq 11 db 73, 109, 112, 111, 114, 116, 105, 110, 103, 32, 0 parse._ast_import#1#const#ptr: dq parse._ast_import#1#const + 8 parse._ast_import#2#const: dq 2 db 10, 0 parse._ast_import#2#const#ptr: dq parse._ast_import#2#const + 8 parse._ast_asm#0#wrap#0#if#1#const: dq 36 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 115, 116, 114, 105, 110, 103, 32, 108, 105, 116, 101, 114, 97, 108, 32, 97, 102, 116, 101, 114, 32, 39, 97, 115, 116, 39, 0 parse._ast_asm#0#wrap#0#if#1#const#ptr: dq parse._ast_asm#0#wrap#0#if#1#const + 8 parse._ast_struct#0#wrap#0#if#0#const: dq 51 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 110, 101, 119, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 102, 111, 114, 32, 116, 121, 112, 101, 100, 101, 102, 32, 97, 102, 116, 101, 114, 32, 39, 115, 116, 114, 117, 99, 116, 39, 0 parse._ast_struct#0#wrap#0#if#0#const#ptr: dq parse._ast_struct#0#wrap#0#if#0#const + 8 parse._ast_struct#1#wrap#0#if#1#const: dq 51 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 110, 101, 119, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 102, 111, 114, 32, 116, 121, 112, 101, 100, 101, 102, 32, 97, 102, 116, 101, 114, 32, 39, 115, 116, 114, 117, 99, 116, 39, 0 parse._ast_struct#1#wrap#0#if#1#const#ptr: dq parse._ast_struct#1#wrap#0#if#1#const + 8 parse._ast_enum#0#wrap#0#if#0#const: dq 45 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 110, 101, 119, 32, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 102, 111, 114, 32, 100, 101, 102, 32, 97, 102, 116, 101, 114, 32, 39, 101, 110, 117, 109, 39, 0 parse._ast_enum#0#wrap#0#if#0#const#ptr: dq parse._ast_enum#0#wrap#0#if#0#const + 8 parse._ast_enum#2#wrap#0#if#1#const: dq 35 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 123, 39, 32, 97, 102, 116, 101, 114, 32, 101, 110, 117, 109, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 0 parse._ast_enum#2#wrap#0#if#1#const#ptr: dq parse._ast_enum#2#wrap#0#if#1#const + 8 parse._ast_decl#0#const: dq 1 db 0 parse._ast_decl#0#const#ptr: dq parse._ast_decl#0#const + 8 parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 61, 0 parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#0#if#0#const + 8 parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const: dq 2 db 44, 0 parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const + 8 parse._ast_decl#1#loop#0#wrap#1#if#0#const: dq 38 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 110, 97, 109, 101, 32, 105, 110, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 0 parse._ast_decl#1#loop#0#wrap#1#if#0#const#ptr: dq parse._ast_decl#1#loop#0#wrap#1#if#0#const + 8 parse._ast_top_block#0#loop#1#wrap#0#if#1#const: dq 7 db 109, 111, 100, 117, 108, 101, 0 parse._ast_top_block#0#loop#1#wrap#0#if#1#const#ptr: dq parse._ast_top_block#0#loop#1#wrap#0#if#1#const + 8 parse._ast_top_block#0#loop#1#wrap#0#if#2#const: dq 7 db 101, 120, 112, 111, 114, 116, 0 parse._ast_top_block#0#loop#1#wrap#0#if#2#const#ptr: dq parse._ast_top_block#0#loop#1#wrap#0#if#2#const + 8 parse._ast_top_block#0#loop#1#wrap#1#if#0#const: dq 7 db 109, 101, 116, 104, 111, 100, 0 parse._ast_top_block#0#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_top_block#0#loop#1#wrap#1#if#0#const + 8 parse._ast_top_block#0#loop#1#wrap#3#if#0#const: dq 57 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 109, 111, 100, 117, 108, 101, 44, 32, 109, 101, 116, 104, 111, 100, 44, 32, 111, 114, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 102, 111, 114, 32, 116, 111, 112, 32, 108, 101, 118, 101, 108, 32, 98, 108, 111, 99, 107, 0 parse._ast_top_block#0#loop#1#wrap#3#if#0#const#ptr: dq parse._ast_top_block#0#loop#1#wrap#3#if#0#const + 8 parse._ast_top_block#0#loop#2#const: dq 3 db 59, 59, 0 parse._ast_top_block#0#loop#2#const#ptr: dq parse._ast_top_block#0#loop#2#const + 8 parse._ast_top_block#0#loop#3#wrap#0#if#2#const: dq 3 db 59, 47, 0 parse._ast_top_block#0#loop#3#wrap#0#if#2#const#ptr: dq parse._ast_top_block#0#loop#3#wrap#0#if#2#const + 8 parse._ast_top_block#0#loop#3#wrap#0#if#3#const: dq 3 db 59, 59, 0 parse._ast_top_block#0#loop#3#wrap#0#if#3#const#ptr: dq parse._ast_top_block#0#loop#3#wrap#0#if#3#const + 8 parse._ast_top_block#0#loop#3#wrap#0#if#4#const: dq 56 db 66, 108, 111, 99, 107, 32, 98, 101, 105, 110, 103, 32, 115, 107, 105, 112, 112, 101, 100, 46, 32, 80, 97, 114, 115, 105, 110, 103, 32, 119, 105, 108, 108, 32, 112, 105, 99, 107, 32, 117, 112, 32, 97, 102, 116, 101, 114, 32, 116, 104, 101, 32, 101, 110, 100, 0 parse._ast_top_block#0#loop#3#wrap#0#if#4#const#ptr: dq parse._ast_top_block#0#loop#3#wrap#0#if#4#const + 8 parse._ast_top_block#1#wrap#0#if#1#const: dq 3 db 59, 47, 0 parse._ast_top_block#1#wrap#0#if#1#const#ptr: dq parse._ast_top_block#1#wrap#0#if#1#const + 8 parse._ast_top_block#1#wrap#0#if#2#const: dq 3 db 59, 59, 0 parse._ast_top_block#1#wrap#0#if#2#const#ptr: dq parse._ast_top_block#1#wrap#0#if#2#const + 8 parse._ast_top_block#1#wrap#0#if#3#const: dq 40 db 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 102, 105, 110, 100, 32, 99, 108, 111, 115, 105, 110, 103, 32, 59, 47, 32, 102, 111, 114, 32, 116, 111, 112, 32, 98, 108, 111, 99, 107, 0 parse._ast_top_block#1#wrap#0#if#3#const#ptr: dq parse._ast_top_block#1#wrap#0#if#3#const + 8 parse._ast_module#0#wrap#0#if#0#const: dq 7 db 101, 120, 112, 111, 114, 116, 0 parse._ast_module#0#wrap#0#if#0#const#ptr: dq parse._ast_module#0#wrap#0#if#0#const + 8 parse._ast_module#0#wrap#0#if#1#wrap#0#if#0#const: dq 7 db 109, 111, 100, 117, 108, 101, 0 parse._ast_module#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq parse._ast_module#0#wrap#0#if#1#wrap#0#if#0#const + 8 parse._ast_module#0#wrap#0#if#1#wrap#0#if#1#const: dq 41 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 109, 111, 100, 117, 108, 101, 39, 32, 107, 101, 121, 119, 111, 114, 100, 32, 97, 102, 116, 101, 114, 32, 39, 101, 120, 112, 111, 114, 116, 39, 0 parse._ast_module#0#wrap#0#if#1#wrap#0#if#1#const#ptr: dq parse._ast_module#0#wrap#0#if#1#wrap#0#if#1#const + 8 parse._ast_module#0#wrap#1#if#0#const: dq 7 db 109, 111, 100, 117, 108, 101, 0 parse._ast_module#0#wrap#1#if#0#const#ptr: dq parse._ast_module#0#wrap#1#if#0#const + 8 parse._ast_module#0#wrap#1#if#1#const: dq 69 db 91, 70, 65, 84, 65, 76, 93, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 105, 115, 115, 117, 101, 32, 105, 115, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 99, 111, 109, 112, 105, 108, 101, 114, 44, 32, 110, 111, 116, 32, 121, 111, 117, 114, 32, 112, 114, 111, 103, 114, 97, 109, 46, 10, 0 parse._ast_module#0#wrap#1#if#1#const#ptr: dq parse._ast_module#0#wrap#1#if#1#const + 8 parse._ast_module#0#wrap#1#if#2#const: dq 62 db 91, 70, 65, 84, 65, 76, 93, 32, 80, 108, 101, 97, 115, 101, 32, 114, 101, 112, 111, 114, 116, 32, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 105, 115, 115, 117, 101, 32, 116, 111, 32, 116, 110, 115, 108, 99, 32, 117, 112, 115, 116, 114, 101, 97, 109, 46, 10, 0 parse._ast_module#0#wrap#1#if#2#const#ptr: dq parse._ast_module#0#wrap#1#if#2#const + 8 parse._ast_module#0#wrap#1#if#3#const: dq 81 db 91, 70, 65, 84, 65, 76, 93, 32, 91, 67, 77, 80, 69, 82, 82, 93, 32, 83, 104, 111, 117, 108, 100, 32, 111, 110, 108, 121, 32, 99, 97, 108, 108, 32, 95, 97, 115, 116, 95, 109, 111, 100, 117, 108, 101, 32, 119, 104, 101, 110, 32, 39, 109, 111, 100, 117, 108, 101, 39, 32, 111, 114, 32, 39, 101, 120, 112, 111, 114, 116, 39, 32, 97, 114, 101, 32, 115, 101, 101, 110, 0 parse._ast_module#0#wrap#1#if#3#const#ptr: dq parse._ast_module#0#wrap#1#if#3#const + 8 parse._ast_module#1#wrap#0#if#0#const: dq 49 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 109, 111, 100, 117, 108, 101, 32, 110, 97, 109, 101, 32, 40, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 41, 32, 97, 102, 116, 101, 114, 32, 39, 109, 111, 100, 117, 108, 101, 39, 0 parse._ast_module#1#wrap#0#if#0#const#ptr: dq parse._ast_module#1#wrap#0#if#0#const + 8 parse._ast_module#2#loop#1#wrap#0#if#0#const: dq 7 db 105, 109, 112, 111, 114, 116, 0 parse._ast_module#2#loop#1#wrap#0#if#0#const#ptr: dq parse._ast_module#2#loop#1#wrap#0#if#0#const + 8 parse._ast_module#2#loop#1#wrap#1#if#0#const: dq 7 db 115, 116, 114, 117, 99, 116, 0 parse._ast_module#2#loop#1#wrap#1#if#0#const#ptr: dq parse._ast_module#2#loop#1#wrap#1#if#0#const + 8 parse._ast_module#2#loop#1#wrap#2#if#0#const: dq 5 db 101, 110, 117, 109, 0 parse._ast_module#2#loop#1#wrap#2#if#0#const#ptr: dq parse._ast_module#2#loop#1#wrap#2#if#0#const + 8 parse._ast_module#2#loop#1#wrap#3#if#0#const: dq 4 db 97, 115, 109, 0 parse._ast_module#2#loop#1#wrap#3#if#0#const#ptr: dq parse._ast_module#2#loop#1#wrap#3#if#0#const + 8 parse._ast_module#2#loop#1#wrap#4#if#0#const: dq 3 db 47, 59, 0 parse._ast_module#2#loop#1#wrap#4#if#0#const#ptr: dq parse._ast_module#2#loop#1#wrap#4#if#0#const + 8 parse._ast_module#2#loop#1#wrap#5#if#3#const: dq 2 db 126, 0 parse._ast_module#2#loop#1#wrap#5#if#3#const#ptr: dq parse._ast_module#2#loop#1#wrap#5#if#3#const + 8 parse._ast_module#2#loop#1#wrap#5#if#4#const: dq 2 db 123, 0 parse._ast_module#2#loop#1#wrap#5#if#4#const#ptr: dq parse._ast_module#2#loop#1#wrap#5#if#4#const + 8 parse._ast_module#2#loop#1#wrap#7#if#0#const: dq 71 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 105, 109, 112, 111, 114, 116, 39, 44, 32, 39, 115, 116, 114, 117, 99, 116, 39, 44, 32, 39, 97, 115, 109, 39, 44, 32, 98, 108, 111, 99, 107, 44, 32, 111, 114, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 32, 105, 110, 32, 116, 111, 112, 32, 108, 101, 118, 101, 108, 0 parse._ast_module#2#loop#1#wrap#7#if#0#const#ptr: dq parse._ast_module#2#loop#1#wrap#7#if#0#const + 8 parse._ast_file#0#loop#0#wrap#0#if#0#const: dq 7 db 105, 109, 112, 111, 114, 116, 0 parse._ast_file#0#loop#0#wrap#0#if#0#const#ptr: dq parse._ast_file#0#loop#0#wrap#0#if#0#const + 8 parse._ast_file#0#loop#0#wrap#1#if#0#const: dq 7 db 115, 116, 114, 117, 99, 116, 0 parse._ast_file#0#loop#0#wrap#1#if#0#const#ptr: dq parse._ast_file#0#loop#0#wrap#1#if#0#const + 8 parse._ast_file#0#loop#0#wrap#2#if#0#const: dq 5 db 101, 110, 117, 109, 0 parse._ast_file#0#loop#0#wrap#2#if#0#const#ptr: dq parse._ast_file#0#loop#0#wrap#2#if#0#const + 8 parse._ast_file#0#loop#0#wrap#3#if#0#const: dq 4 db 97, 115, 109, 0 parse._ast_file#0#loop#0#wrap#3#if#0#const#ptr: dq parse._ast_file#0#loop#0#wrap#3#if#0#const + 8 parse._ast_file#0#loop#0#wrap#4#if#0#const: dq 3 db 47, 59, 0 parse._ast_file#0#loop#0#wrap#4#if#0#const#ptr: dq parse._ast_file#0#loop#0#wrap#4#if#0#const + 8 parse._ast_file#0#loop#0#wrap#5#if#3#const: dq 2 db 126, 0 parse._ast_file#0#loop#0#wrap#5#if#3#const#ptr: dq parse._ast_file#0#loop#0#wrap#5#if#3#const + 8 parse._ast_file#0#loop#0#wrap#5#if#4#const: dq 2 db 123, 0 parse._ast_file#0#loop#0#wrap#5#if#4#const#ptr: dq parse._ast_file#0#loop#0#wrap#5#if#4#const + 8 parse._ast_file#0#loop#0#wrap#6#if#0#const: dq 110 db 69, 120, 112, 101, 99, 116, 101, 100, 32, 39, 105, 109, 112, 111, 114, 116, 39, 44, 32, 39, 115, 116, 114, 117, 99, 116, 39, 44, 32, 39, 97, 115, 109, 39, 44, 32, 98, 108, 111, 99, 107, 32, 40, 115, 116, 97, 114, 116, 115, 32, 119, 105, 116, 104, 32, 39, 47, 59, 39, 41, 44, 32, 111, 114, 32, 116, 121, 112, 101, 32, 40, 102, 111, 114, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 100, 101, 99, 108, 97, 114, 97, 116, 105, 111, 110, 41, 32, 105, 110, 32, 116, 111, 112, 32, 108, 101, 118, 101, 108, 0 parse._ast_file#0#loop#0#wrap#6#if#0#const#ptr: dq parse._ast_file#0#loop#0#wrap#6#if#0#const + 8 parse.print_node_type#0#wrap#0#if#0#const: dq 7 db 77, 79, 68, 85, 76, 69, 0 parse.print_node_type#0#wrap#0#if#0#const#ptr: dq parse.print_node_type#0#wrap#0#if#0#const + 8 parse.print_node_type#0#wrap#1#if#0#const: dq 7 db 69, 88, 80, 79, 82, 84, 0 parse.print_node_type#0#wrap#1#if#0#const#ptr: dq parse.print_node_type#0#wrap#1#if#0#const + 8 parse.print_node_type#0#wrap#2#if#0#const: dq 7 db 83, 84, 82, 85, 67, 84, 0 parse.print_node_type#0#wrap#2#if#0#const#ptr: dq parse.print_node_type#0#wrap#2#if#0#const + 8 parse.print_node_type#0#wrap#3#if#0#const: dq 5 db 84, 89, 80, 69, 0 parse.print_node_type#0#wrap#3#if#0#const#ptr: dq parse.print_node_type#0#wrap#3#if#0#const + 8 parse.print_node_type#0#wrap#4#if#0#const: dq 3 db 73, 68, 0 parse.print_node_type#0#wrap#4#if#0#const#ptr: dq parse.print_node_type#0#wrap#4#if#0#const + 8 parse.print_node_type#0#wrap#5#if#0#const: dq 7 db 66, 73, 78, 95, 79, 80, 0 parse.print_node_type#0#wrap#5#if#0#const#ptr: dq parse.print_node_type#0#wrap#5#if#0#const + 8 parse.print_node_type#0#wrap#6#if#0#const: dq 7 db 80, 82, 69, 95, 79, 80, 0 parse.print_node_type#0#wrap#6#if#0#const#ptr: dq parse.print_node_type#0#wrap#6#if#0#const + 8 parse.print_node_type#0#wrap#7#if#0#const: dq 8 db 80, 79, 83, 84, 95, 79, 80, 0 parse.print_node_type#0#wrap#7#if#0#const#ptr: dq parse.print_node_type#0#wrap#7#if#0#const + 8 parse.print_node_type#0#wrap#8#if#0#const: dq 9 db 70, 85, 78, 67, 84, 73, 79, 78, 0 parse.print_node_type#0#wrap#8#if#0#const#ptr: dq parse.print_node_type#0#wrap#8#if#0#const + 8 parse.print_node_type#0#wrap#9#if#0#const: dq 7 db 77, 69, 84, 72, 79, 68, 0 parse.print_node_type#0#wrap#9#if#0#const#ptr: dq parse.print_node_type#0#wrap#9#if#0#const + 8 parse.print_node_type#0#wrap#10#if#0#const: dq 6 db 84, 76, 73, 83, 84, 0 parse.print_node_type#0#wrap#10#if#0#const#ptr: dq parse.print_node_type#0#wrap#10#if#0#const + 8 parse.print_node_type#0#wrap#11#if#0#const: dq 6 db 68, 76, 73, 83, 84, 0 parse.print_node_type#0#wrap#11#if#0#const#ptr: dq parse.print_node_type#0#wrap#11#if#0#const + 8 parse.print_node_type#0#wrap#12#if#0#const: dq 6 db 69, 76, 73, 83, 84, 0 parse.print_node_type#0#wrap#12#if#0#const#ptr: dq parse.print_node_type#0#wrap#12#if#0#const + 8 parse.print_node_type#0#wrap#13#if#0#const: dq 6 db 83, 76, 73, 83, 84, 0 parse.print_node_type#0#wrap#13#if#0#const#ptr: dq parse.print_node_type#0#wrap#13#if#0#const + 8 parse.print_node_type#0#wrap#14#if#0#const: dq 8 db 76, 73, 84, 69, 82, 65, 76, 0 parse.print_node_type#0#wrap#14#if#0#const#ptr: dq parse.print_node_type#0#wrap#14#if#0#const + 8 parse.print_node_type#0#wrap#15#if#0#const: dq 5 db 69, 78, 85, 77, 0 parse.print_node_type#0#wrap#15#if#0#const#ptr: dq parse.print_node_type#0#wrap#15#if#0#const + 8 parse.print_node_type#0#wrap#16#if#0#const: dq 5 db 68, 69, 67, 76, 0 parse.print_node_type#0#wrap#16#if#0#const#ptr: dq parse.print_node_type#0#wrap#16#if#0#const + 8 parse.print_node_type#0#wrap#17#if#0#const: dq 6 db 86, 76, 73, 83, 84, 0 parse.print_node_type#0#wrap#17#if#0#const#ptr: dq parse.print_node_type#0#wrap#17#if#0#const + 8 parse.print_node_type#0#wrap#18#if#0#const: dq 6 db 86, 65, 76, 85, 69, 0 parse.print_node_type#0#wrap#18#if#0#const#ptr: dq parse.print_node_type#0#wrap#18#if#0#const + 8 parse.print_node_type#0#wrap#19#if#0#const: dq 5 db 67, 65, 83, 84, 0 parse.print_node_type#0#wrap#19#if#0#const#ptr: dq parse.print_node_type#0#wrap#19#if#0#const + 8 parse.print_node_type#0#wrap#20#if#0#const: dq 13 db 70, 76, 79, 87, 95, 67, 79, 78, 84, 82, 79, 76, 0 parse.print_node_type#0#wrap#20#if#0#const#ptr: dq parse.print_node_type#0#wrap#20#if#0#const + 8 parse.print_node_type#0#wrap#21#if#0#const: dq 9 db 73, 70, 95, 66, 76, 79, 67, 75, 0 parse.print_node_type#0#wrap#21#if#0#const#ptr: dq parse.print_node_type#0#wrap#21#if#0#const + 8 parse.print_node_type#0#wrap#22#if#0#const: dq 11 db 69, 76, 73, 70, 95, 66, 76, 79, 67, 75, 0 parse.print_node_type#0#wrap#22#if#0#const#ptr: dq parse.print_node_type#0#wrap#22#if#0#const + 8 parse.print_node_type#0#wrap#23#if#0#const: dq 11 db 69, 76, 83, 69, 95, 66, 76, 79, 67, 75, 0 parse.print_node_type#0#wrap#23#if#0#const#ptr: dq parse.print_node_type#0#wrap#23#if#0#const + 8 parse.print_node_type#0#wrap#24#if#0#const: dq 11 db 76, 79, 79, 80, 95, 66, 76, 79, 67, 75, 0 parse.print_node_type#0#wrap#24#if#0#const#ptr: dq parse.print_node_type#0#wrap#24#if#0#const + 8 parse.print_node_type#0#wrap#25#if#0#const: dq 4 db 65, 83, 77, 0 parse.print_node_type#0#wrap#25#if#0#const#ptr: dq parse.print_node_type#0#wrap#25#if#0#const + 8 parse.print_node_type#0#wrap#26#if#0#const: dq 6 db 69, 77, 80, 84, 89, 0 parse.print_node_type#0#wrap#26#if#0#const#ptr: dq parse.print_node_type#0#wrap#26#if#0#const + 8 parse.print_node_head#0#const: dq 3 db 123, 32, 0 parse.print_node_head#0#const#ptr: dq parse.print_node_head#0#const + 8 parse.print_node_head#1#const: dq 9 db 44, 32, 68, 65, 84, 65, 58, 32, 0 parse.print_node_head#1#const#ptr: dq parse.print_node_head#1#const + 8 parse.print_node_head#2#const: dq 2 db 10, 0 parse.print_node_head#2#const#ptr: dq parse.print_node_head#2#const + 8 parse.print_ast_rec#0#loop#0#const: dq 3 db 32, 32, 0 parse.print_ast_rec#0#loop#0#const#ptr: dq parse.print_ast_rec#0#loop#0#const + 8 parse.print_ast_rec#2#loop#0#const: dq 3 db 32, 32, 0 parse.print_ast_rec#2#loop#0#const#ptr: dq parse.print_ast_rec#2#loop#0#const + 8 parse.print_ast_rec#3#const: dq 3 db 125, 10, 0 parse.print_ast_rec#3#const#ptr: dq parse.print_ast_rec#3#const + 8 parse.print_ast#0#wrap#0#if#0#const: dq 23 db 73, 110, 116, 101, 103, 114, 105, 116, 121, 32, 116, 101, 115, 116, 32, 102, 97, 105, 108, 101, 100, 10, 0 parse.print_ast#0#wrap#0#if#0#const#ptr: dq parse.print_ast#0#wrap#0#if#0#const + 8 parse.print_ast#0#wrap#1#if#0#const: dq 23 db 73, 110, 116, 101, 103, 114, 105, 116, 121, 32, 116, 101, 115, 116, 32, 112, 97, 115, 115, 101, 100, 10, 0 parse.print_ast#0#wrap#1#if#0#const#ptr: dq parse.print_ast#0#wrap#1#if#0#const + 8 parse.verify_ast_integrity#0#loop#0#wrap#0#if#0#const: dq 18 db 84, 101, 115, 116, 32, 102, 97, 105, 108, 101, 100, 32, 97, 116, 58, 32, 10, 0 parse.verify_ast_integrity#0#loop#0#wrap#0#if#0#const#ptr: dq parse.verify_ast_integrity#0#loop#0#wrap#0#if#0#const + 8 parse.verify_ast_integrity#0#loop#0#wrap#0#if#1#const: dq 3 db 125, 10, 0 parse.verify_ast_integrity#0#loop#0#wrap#0#if#1#const#ptr: dq parse.verify_ast_integrity#0#loop#0#wrap#0#if#1#const + 8 parse.verify_ast_integrity#0#loop#0#wrap#0#if#2#const: dq 10 db 80, 97, 114, 101, 110, 116, 58, 32, 10, 0 parse.verify_ast_integrity#0#loop#0#wrap#0#if#2#const#ptr: dq parse.verify_ast_integrity#0#loop#0#wrap#0#if#2#const + 8 parse.verify_ast_integrity#0#loop#0#wrap#0#if#3#const: dq 3 db 125, 10, 0 parse.verify_ast_integrity#0#loop#0#wrap#0#if#3#const#ptr: dq parse.verify_ast_integrity#0#loop#0#wrap#0#if#3#const + 8 parse.verify_ast_integrity#0#loop#0#wrap#0#if#4#const: dq 14 db 69, 120, 112, 101, 99, 116, 101, 100, 58, 32, 37, 112, 10, 0 parse.verify_ast_integrity#0#loop#0#wrap#0#if#4#const#ptr: dq parse.verify_ast_integrity#0#loop#0#wrap#0#if#4#const + 8 parse.verify_ast_integrity#0#loop#0#wrap#0#if#5#const: dq 9 db 71, 111, 116, 58, 32, 37, 112, 10, 0 parse.verify_ast_integrity#0#loop#0#wrap#0#if#5#const#ptr: dq parse.verify_ast_integrity#0#loop#0#wrap#0#if#5#const + 8 compile.PRIMITIVE_1#ptr: dq 16 db 98, 111, 111, 108, 44, 117, 105, 110, 116, 56, 44, 105, 110, 116, 56, 0 compile.PRIMITIVE_1: dq compile.PRIMITIVE_1#ptr + 8 compile.PRIMITIVE_2#ptr: dq 13 db 117, 105, 110, 116, 49, 54, 44, 105, 110, 116, 49, 54, 0 compile.PRIMITIVE_2: dq compile.PRIMITIVE_2#ptr + 8 compile.PRIMITIVE_4#ptr: dq 21 db 117, 105, 110, 116, 51, 50, 44, 105, 110, 116, 51, 50, 44, 102, 108, 111, 97, 116, 51, 50, 0 compile.PRIMITIVE_4: dq compile.PRIMITIVE_4#ptr + 8 compile.PRIMITIVE_8#ptr: dq 41 db 117, 105, 110, 116, 54, 52, 44, 105, 110, 116, 54, 52, 44, 102, 108, 111, 97, 116, 54, 52, 44, 105, 110, 116, 44, 117, 105, 110, 116, 44, 102, 108, 111, 97, 116, 44, 118, 111, 105, 100, 0 compile.PRIMITIVE_8: dq compile.PRIMITIVE_8#ptr + 8 compile.VLOC_DATA: dq 2 compile.VLOC_STCK: dq 1 compile.VLOC_LITL: dq 0 compile.PTYPE_NONE: dd 2 compile.PTYPE_PTR: dd 1 compile.PTYPE_REF: dd 0 compile.PTYPE_ARR: dd 1 compile.PRIM_CSV_BOO#ptr: dq 5 db 98, 111, 111, 108, 0 compile.PRIM_CSV_BOO: dq compile.PRIM_CSV_BOO#ptr + 8 compile.PRIM_CSV_INT#ptr: dq 59 db 105, 110, 116, 44, 105, 110, 116, 56, 44, 105, 110, 116, 49, 54, 44, 105, 110, 116, 51, 50, 44, 105, 110, 116, 54, 52, 44, 117, 105, 110, 116, 44, 117, 105, 110, 116, 56, 44, 117, 105, 110, 116, 49, 54, 44, 117, 105, 110, 116, 51, 50, 44, 117, 105, 110, 116, 54, 52, 0 compile.PRIM_CSV_INT: dq compile.PRIM_CSV_INT#ptr + 8 compile.PRIM_CSV_FLT#ptr: dq 22 db 102, 108, 111, 97, 116, 44, 102, 108, 111, 97, 116, 51, 50, 44, 102, 108, 111, 97, 116, 54, 52, 0 compile.PRIM_CSV_FLT: dq compile.PRIM_CSV_FLT#ptr + 8 compile.BOOL_OPS#ptr: dq 21 db 38, 38, 44, 124, 124, 44, 94, 94, 44, 33, 38, 38, 44, 33, 124, 124, 44, 33, 94, 94, 0 compile.BOOL_OPS: dq compile.BOOL_OPS#ptr + 8 compile.CMP_OPS#ptr: dq 25 db 61, 61, 44, 60, 44, 62, 44, 33, 61, 61, 44, 33, 60, 44, 33, 62, 44, 60, 61, 61, 44, 62, 61, 61, 0 compile.CMP_OPS: dq compile.CMP_OPS#ptr + 8 compile.SEARCH_VAR: dq 0 compile.SEARCH_STRUCT: dq 1 compile.SEARCH_FUNC: dq 2 compile.SEARCH_SUB: dq 3 compile._print_type#0#loop#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 46, 0 compile._print_type#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._print_type#0#loop#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile.reg_string#0#wrap#2#if#0#const: dq 4 db 120, 109, 109, 0 compile.reg_string#0#wrap#2#if#0#const#ptr: dq compile.reg_string#0#wrap#2#if#0#const + 8 compile.var_test_mov#0#const: dq 4 db 105, 110, 116, 0 compile.var_test_mov#0#const#ptr: dq compile.var_test_mov#0#const + 8 compile.var_test_mov#1#const: dq 45 db 59, 32, 116, 101, 115, 116, 58, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 116, 111, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 109, 111, 118, 101, 44, 32, 98, 111, 116, 104, 32, 105, 110, 116, 10, 0 compile.var_test_mov#1#const#ptr: dq compile.var_test_mov#1#const + 8 compile.var_test_mov#2#const: dq 32 db 59, 32, 116, 101, 115, 116, 58, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 116, 111, 32, 115, 116, 97, 99, 107, 32, 109, 111, 118, 101, 10, 0 compile.var_test_mov#2#const#ptr: dq compile.var_test_mov#2#const + 8 compile.var_test_mov#3#const: dq 32 db 59, 32, 116, 101, 115, 116, 58, 32, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 105, 115, 116, 101, 114, 32, 109, 111, 118, 101, 10, 0 compile.var_test_mov#3#const#ptr: dq compile.var_test_mov#3#const + 8 compile.var_test_mov#4#const: dq 29 db 59, 32, 116, 101, 115, 116, 58, 32, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 32, 109, 111, 118, 101, 10, 0 compile.var_test_mov#4#const#ptr: dq compile.var_test_mov#4#const + 8 compile.var_test_mov#5#const: dq 2 db 10, 0 compile.var_test_mov#5#const#ptr: dq compile.var_test_mov#5#const + 8 compile.var_test_movsx#0#const: dq 4 db 105, 110, 116, 0 compile.var_test_movsx#0#const#ptr: dq compile.var_test_movsx#0#const + 8 compile.var_test_movsx#1#const: dq 6 db 105, 110, 116, 51, 50, 0 compile.var_test_movsx#1#const#ptr: dq compile.var_test_movsx#1#const + 8 compile.var_test_movsx#2#const: dq 5 db 105, 110, 116, 56, 0 compile.var_test_movsx#2#const#ptr: dq compile.var_test_movsx#2#const + 8 compile.var_test_movsx#3#const: dq 44 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 51, 50, 10, 0 compile.var_test_movsx#3#const#ptr: dq compile.var_test_movsx#3#const + 8 compile.var_test_movsx#4#const: dq 42 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 10, 0 compile.var_test_movsx#4#const#ptr: dq compile.var_test_movsx#4#const + 8 compile.var_test_movsx#5#const: dq 43 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 51, 50, 32, 116, 111, 32, 105, 110, 116, 10, 0 compile.var_test_movsx#5#const#ptr: dq compile.var_test_movsx#5#const + 8 compile.var_test_movsx#6#const: dq 59 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 51, 50, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 41, 10, 0 compile.var_test_movsx#6#const#ptr: dq compile.var_test_movsx#6#const + 8 compile.var_test_movsx#7#const: dq 59 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 51, 50, 32, 40, 114, 101, 103, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movsx#7#const#ptr: dq compile.var_test_movsx#7#const + 8 compile.var_test_movsx#8#const: dq 61 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 51, 50, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movsx#8#const#ptr: dq compile.var_test_movsx#8#const + 8 compile.var_test_movsx#9#const: dq 57 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 41, 10, 0 compile.var_test_movsx#9#const#ptr: dq compile.var_test_movsx#9#const + 8 compile.var_test_movsx#10#const: dq 57 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 32, 40, 114, 101, 103, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movsx#10#const#ptr: dq compile.var_test_movsx#10#const + 8 compile.var_test_movsx#11#const: dq 59 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 56, 32, 116, 111, 32, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movsx#11#const#ptr: dq compile.var_test_movsx#11#const + 8 compile.var_test_movsx#12#const: dq 58 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 51, 50, 32, 116, 111, 32, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 41, 10, 0 compile.var_test_movsx#12#const#ptr: dq compile.var_test_movsx#12#const + 8 compile.var_test_movsx#13#const: dq 58 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 51, 50, 32, 116, 111, 32, 105, 110, 116, 32, 40, 114, 101, 103, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movsx#13#const#ptr: dq compile.var_test_movsx#13#const + 8 compile.var_test_movsx#14#const: dq 60 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 105, 110, 116, 51, 50, 32, 116, 111, 32, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movsx#14#const#ptr: dq compile.var_test_movsx#14#const + 8 compile.var_test_movsx#15#const: dq 2 db 10, 0 compile.var_test_movsx#15#const#ptr: dq compile.var_test_movsx#15#const + 8 compile.var_test_movzx#0#const: dq 5 db 117, 105, 110, 116, 0 compile.var_test_movzx#0#const#ptr: dq compile.var_test_movzx#0#const + 8 compile.var_test_movzx#1#const: dq 7 db 117, 105, 110, 116, 51, 50, 0 compile.var_test_movzx#1#const#ptr: dq compile.var_test_movzx#1#const + 8 compile.var_test_movzx#2#const: dq 6 db 117, 105, 110, 116, 56, 0 compile.var_test_movzx#2#const#ptr: dq compile.var_test_movzx#2#const + 8 compile.var_test_movzx#3#const: dq 46 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 51, 50, 10, 0 compile.var_test_movzx#3#const#ptr: dq compile.var_test_movzx#3#const + 8 compile.var_test_movzx#4#const: dq 44 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 10, 0 compile.var_test_movzx#4#const#ptr: dq compile.var_test_movzx#4#const + 8 compile.var_test_movzx#5#const: dq 45 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 51, 50, 32, 116, 111, 32, 117, 105, 110, 116, 10, 0 compile.var_test_movzx#5#const#ptr: dq compile.var_test_movzx#5#const + 8 compile.var_test_movzx#6#const: dq 61 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 51, 50, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 41, 10, 0 compile.var_test_movzx#6#const#ptr: dq compile.var_test_movzx#6#const + 8 compile.var_test_movzx#7#const: dq 61 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 51, 50, 32, 40, 114, 101, 103, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movzx#7#const#ptr: dq compile.var_test_movzx#7#const + 8 compile.var_test_movzx#8#const: dq 63 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 51, 50, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movzx#8#const#ptr: dq compile.var_test_movzx#8#const + 8 compile.var_test_movzx#9#const: dq 59 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 41, 10, 0 compile.var_test_movzx#9#const#ptr: dq compile.var_test_movzx#9#const + 8 compile.var_test_movzx#10#const: dq 59 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 32, 40, 114, 101, 103, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movzx#10#const#ptr: dq compile.var_test_movzx#10#const + 8 compile.var_test_movzx#11#const: dq 61 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 56, 32, 116, 111, 32, 117, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movzx#11#const#ptr: dq compile.var_test_movzx#11#const + 8 compile.var_test_movzx#12#const: dq 60 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 51, 50, 32, 116, 111, 32, 117, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 114, 101, 103, 41, 10, 0 compile.var_test_movzx#12#const#ptr: dq compile.var_test_movzx#12#const + 8 compile.var_test_movzx#13#const: dq 60 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 51, 50, 32, 116, 111, 32, 117, 105, 110, 116, 32, 40, 114, 101, 103, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movzx#13#const#ptr: dq compile.var_test_movzx#13#const + 8 compile.var_test_movzx#14#const: dq 62 db 59, 32, 116, 101, 115, 116, 58, 32, 109, 111, 118, 32, 119, 105, 116, 104, 32, 101, 120, 116, 101, 110, 115, 105, 111, 110, 32, 45, 32, 117, 105, 110, 116, 51, 50, 32, 116, 111, 32, 117, 105, 110, 116, 32, 40, 115, 116, 97, 99, 107, 32, 116, 111, 32, 115, 116, 97, 99, 107, 41, 10, 0 compile.var_test_movzx#14#const#ptr: dq compile.var_test_movzx#14#const + 8 compile.var_test_movzx#15#const: dq 2 db 10, 0 compile.var_test_movzx#15#const#ptr: dq compile.var_test_movzx#15#const + 8 compile.var_test_movref#0#const: dq 4 db 105, 110, 116, 0 compile.var_test_movref#0#const#ptr: dq compile.var_test_movref#0#const + 8 compile.var_test_movref#1#const: dq 6 db 105, 110, 116, 51, 50, 0 compile.var_test_movref#1#const#ptr: dq compile.var_test_movref#1#const + 8 compile._gen_test_struct#0#const: dq 5 db 116, 101, 115, 116, 0 compile._gen_test_struct#0#const#ptr: dq compile._gen_test_struct#0#const + 8 compile._gen_test_struct#2#const: dq 5 db 116, 101, 115, 116, 0 compile._gen_test_struct#2#const#ptr: dq compile._gen_test_struct#2#const + 8 compile.var_tests#0#const: dq 1 db 0 compile.var_tests#0#const#ptr: dq compile.var_tests#0#const + 8 compile._indent#0#loop#0#const: dq 3 db 32, 32, 0 compile._indent#0#loop#0#const#ptr: dq compile._indent#0#loop#0#const + 8 compile._gen_prims#0#const: dq 5 db 98, 111, 111, 108, 0 compile._gen_prims#0#const#ptr: dq compile._gen_prims#0#const + 8 compile._gen_prims#1#const: dq 6 db 117, 105, 110, 116, 56, 0 compile._gen_prims#1#const#ptr: dq compile._gen_prims#1#const + 8 compile._gen_prims#2#const: dq 5 db 105, 110, 116, 56, 0 compile._gen_prims#2#const#ptr: dq compile._gen_prims#2#const + 8 compile._gen_prims#3#const: dq 7 db 117, 105, 110, 116, 49, 54, 0 compile._gen_prims#3#const#ptr: dq compile._gen_prims#3#const + 8 compile._gen_prims#4#const: dq 6 db 105, 110, 116, 49, 54, 0 compile._gen_prims#4#const#ptr: dq compile._gen_prims#4#const + 8 compile._gen_prims#5#const: dq 7 db 117, 105, 110, 116, 51, 50, 0 compile._gen_prims#5#const#ptr: dq compile._gen_prims#5#const + 8 compile._gen_prims#6#const: dq 6 db 105, 110, 116, 51, 50, 0 compile._gen_prims#6#const#ptr: dq compile._gen_prims#6#const + 8 compile._gen_prims#7#const: dq 8 db 102, 108, 111, 97, 116, 51, 50, 0 compile._gen_prims#7#const#ptr: dq compile._gen_prims#7#const + 8 compile._gen_prims#8#const: dq 7 db 117, 105, 110, 116, 54, 52, 0 compile._gen_prims#8#const#ptr: dq compile._gen_prims#8#const + 8 compile._gen_prims#9#const: dq 6 db 105, 110, 116, 54, 52, 0 compile._gen_prims#9#const#ptr: dq compile._gen_prims#9#const + 8 compile._gen_prims#10#const: dq 8 db 102, 108, 111, 97, 116, 54, 52, 0 compile._gen_prims#10#const#ptr: dq compile._gen_prims#10#const + 8 compile._gen_prims#11#const: dq 5 db 117, 105, 110, 116, 0 compile._gen_prims#11#const#ptr: dq compile._gen_prims#11#const + 8 compile._gen_prims#12#const: dq 4 db 105, 110, 116, 0 compile._gen_prims#12#const#ptr: dq compile._gen_prims#12#const + 8 compile._gen_prims#13#const: dq 6 db 102, 108, 111, 97, 116, 0 compile._gen_prims#13#const#ptr: dq compile._gen_prims#13#const + 8 compile._gen_prims#14#const: dq 5 db 118, 111, 105, 100, 0 compile._gen_prims#14#const#ptr: dq compile._gen_prims#14#const + 8 compile._#CompBuf.write_to#0#const: dq 9 db 66, 73, 84, 83, 32, 54, 52, 10, 0 compile._#CompBuf.write_to#0#const#ptr: dq compile._#CompBuf.write_to#0#const + 8 compile._#CompBuf.write_to#1#const: dq 17 db 10, 115, 101, 99, 116, 105, 111, 110, 32, 46, 100, 97, 116, 97, 10, 10, 0 compile._#CompBuf.write_to#1#const#ptr: dq compile._#CompBuf.write_to#1#const + 8 compile._#CompBuf.write_to#2#const: dq 17 db 10, 115, 101, 99, 116, 105, 111, 110, 32, 46, 116, 101, 120, 116, 10, 10, 0 compile._#CompBuf.write_to#2#const#ptr: dq compile._#CompBuf.write_to#2#const + 8 compile._#Struct._print#0#const: dq 12 db 123, 32, 83, 116, 114, 117, 99, 116, 32, 58, 32, 0 compile._#Struct._print#0#const#ptr: dq compile._#Struct._print#0#const + 8 compile._#Struct._print#1#const: dq 2 db 10, 0 compile._#Struct._print#1#const#ptr: dq compile._#Struct._print#1#const + 8 compile._#Struct._print#2#const: dq 10 db 115, 105, 122, 101, 58, 32, 37, 100, 10, 0 compile._#Struct._print#2#const#ptr: dq compile._#Struct._print#2#const + 8 compile._#Struct._print#3#const: dq 10 db 109, 101, 109, 98, 101, 114, 115, 58, 10, 0 compile._#Struct._print#3#const#ptr: dq compile._#Struct._print#3#const + 8 compile._#Struct._print#5#const: dq 3 db 125, 10, 0 compile._#Struct._print#5#const#ptr: dq compile._#Struct._print#5#const + 8 compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#0#const: dq 69 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 116, 121, 112, 101, 32, 119, 104, 101, 110, 32, 116, 114, 121, 105, 110, 103, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 109, 101, 109, 98, 101, 114, 32, 102, 111, 114, 32, 115, 116, 114, 117, 99, 116, 32, 39, 0 compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#1#const: dq 2 db 10, 0 compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#1#const#ptr: dq compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#1#const + 8 compile._#Struct._compute_type_size#0#wrap#0#if#0#const: dq 29 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 116, 121, 112, 101, 32, 39, 0 compile._#Struct._compute_type_size#0#wrap#0#if#0#const#ptr: dq compile._#Struct._compute_type_size#0#wrap#0#if#0#const + 8 compile._#Struct._compute_type_size#0#wrap#0#if#1#const: dq 22 db 39, 32, 102, 111, 114, 32, 117, 115, 101, 32, 105, 110, 32, 115, 116, 114, 117, 99, 116, 32, 39, 0 compile._#Struct._compute_type_size#0#wrap#0#if#1#const#ptr: dq compile._#Struct._compute_type_size#0#wrap#0#if#1#const + 8 compile._#Struct._compute_type_size#0#wrap#0#if#2#const: dq 3 db 39, 10, 0 compile._#Struct._compute_type_size#0#wrap#0#if#2#const#ptr: dq compile._#Struct._compute_type_size#0#wrap#0#if#2#const + 8 compile._#Struct._compute_type_size#3#wrap#0#if#0#const: dq 35 db 69, 82, 82, 79, 82, 58, 32, 67, 121, 99, 108, 105, 99, 32, 115, 116, 114, 117, 99, 116, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 58, 32, 39, 0 compile._#Struct._compute_type_size#3#wrap#0#if#0#const#ptr: dq compile._#Struct._compute_type_size#3#wrap#0#if#0#const + 8 compile._#Struct._compute_type_size#3#wrap#0#if#1#const: dq 18 db 39, 32, 105, 109, 112, 111, 114, 116, 101, 100, 32, 102, 114, 111, 109, 32, 39, 0 compile._#Struct._compute_type_size#3#wrap#0#if#1#const#ptr: dq compile._#Struct._compute_type_size#3#wrap#0#if#1#const + 8 compile._#Struct._compute_type_size#3#wrap#0#if#2#const: dq 3 db 39, 10, 0 compile._#Struct._compute_type_size#3#wrap#0#if#2#const#ptr: dq compile._#Struct._compute_type_size#3#wrap#0#if#2#const + 8 compile._#Var._init#0#const: dq 6 db 100, 117, 109, 109, 121, 0 compile._#Var._init#0#const#ptr: dq compile._#Var._init#0#const + 8 compile._#Var.is_bool#1#const: dq 5 db 98, 111, 111, 108, 0 compile._#Var.is_bool#1#const#ptr: dq compile._#Var.is_bool#1#const + 8 compile._#Var.find_method#0#loop#0#wrap#0#if#0#const: dq 30 db 69, 82, 82, 79, 82, 58, 32, 84, 114, 105, 101, 100, 32, 116, 111, 32, 102, 105, 110, 100, 32, 109, 101, 116, 104, 111, 100, 32, 34, 0 compile._#Var.find_method#0#loop#0#wrap#0#if#0#const#ptr: dq compile._#Var.find_method#0#loop#0#wrap#0#if#0#const + 8 compile._#Var.find_method#0#loop#0#wrap#0#if#1#const: dq 51 db 34, 32, 111, 110, 32, 97, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 98, 117, 116, 32, 119, 101, 32, 104, 97, 100, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 32, 105, 110, 32, 116, 104, 101, 32, 99, 104, 97, 105, 110, 10, 0 compile._#Var.find_method#0#loop#0#wrap#0#if#1#const#ptr: dq compile._#Var.find_method#0#loop#0#wrap#0#if#1#const + 8 compile._#Var.find_method#0#loop#0#wrap#0#if#2#const: dq 28 db 69, 82, 82, 79, 82, 58, 32, 79, 70, 70, 69, 78, 68, 73, 78, 71, 32, 86, 65, 82, 73, 65, 66, 76, 69, 58, 10, 0 compile._#Var.find_method#0#loop#0#wrap#0#if#2#const#ptr: dq compile._#Var.find_method#0#loop#0#wrap#0#if#2#const + 8 compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 126, 0 compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._static_compile_arr#0#const: dq 28 db 84, 79, 68, 79, 32, 59, 32, 83, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 105, 108, 101, 32, 97, 114, 114, 97, 121, 0 compile._#Var._static_compile_arr#0#const#ptr: dq compile._#Var._static_compile_arr#0#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#0#const: dq 3 db 58, 10, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#1#const: dq 8 db 32, 32, 32, 32, 100, 113, 32, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#2#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#2#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const: dq 8 db 32, 32, 32, 32, 100, 98, 32, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#0#const: dq 3 db 44, 32, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#0#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#0#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#6#const: dq 2 db 10, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#6#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#6#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#7#const: dq 8 db 32, 32, 32, 32, 100, 113, 32, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#7#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#7#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#0#if#0#const: dq 5 db 32, 43, 32, 56, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#0#if#0#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#0#if#0#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#9#const: dq 2 db 10, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#9#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#9#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#1#const: dq 8 db 32, 32, 32, 32, 100, 113, 32, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#1#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#1#const + 8 compile._#Var._static_compile_ptr#1#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Var._static_compile_ptr#1#wrap#0#if#2#const#ptr: dq compile._#Var._static_compile_ptr#1#wrap#0#if#2#const + 8 compile._#Var._static_compile_ptr#2#const: dq 31 db 69, 82, 82, 79, 82, 58, 32, 83, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 105, 108, 101, 32, 112, 111, 105, 110, 116, 101, 114, 10, 0 compile._#Var._static_compile_ptr#2#const#ptr: dq compile._#Var._static_compile_ptr#2#const + 8 compile._#Var._static_compile_ptr#3#const: dq 26 db 84, 79, 68, 79, 32, 59, 32, 83, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 105, 108, 101, 32, 112, 116, 114, 0 compile._#Var._static_compile_ptr#3#const#ptr: dq compile._#Var._static_compile_ptr#3#const + 8 compile._#Var._static_compile_struct#0#const: dq 29 db 84, 79, 68, 79, 32, 59, 32, 83, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 105, 108, 101, 32, 115, 116, 114, 117, 99, 116, 0 compile._#Var._static_compile_struct#0#const#ptr: dq compile._#Var._static_compile_struct#0#const + 8 compile._#Var._static_comp_prim_r_dot#0#const: dq 31 db 84, 79, 68, 79, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 95, 100, 111, 116, 10, 0 compile._#Var._static_comp_prim_r_dot#0#const#ptr: dq compile._#Var._static_comp_prim_r_dot#0#const + 8 compile._#Var._static_comp_prim_r_bin#1#wrap#0#if#0#const: dq 94 db 84, 79, 68, 79, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 95, 98, 105, 110, 58, 32, 80, 111, 105, 110, 116, 101, 114, 32, 116, 121, 112, 101, 115, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 105, 110, 32, 98, 105, 110, 97, 114, 121, 32, 111, 112, 115, 32, 97, 116, 32, 99, 111, 109, 112, 105, 108, 101, 32, 116, 105, 109, 101, 10, 0 compile._#Var._static_comp_prim_r_bin#1#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#1#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#1#wrap#1#if#0#const: dq 94 db 84, 79, 68, 79, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 95, 98, 105, 110, 58, 32, 80, 111, 105, 110, 116, 101, 114, 32, 116, 121, 112, 101, 115, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 105, 110, 32, 98, 105, 110, 97, 114, 121, 32, 111, 112, 115, 32, 97, 116, 32, 99, 111, 109, 112, 105, 108, 101, 32, 116, 105, 109, 101, 10, 0 compile._#Var._static_comp_prim_r_bin#1#wrap#1#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#1#wrap#1#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#0#if#0#const: dq 2 db 42, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#1#if#0#const: dq 2 db 47, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#1#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#1#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#2#if#0#const: dq 2 db 37, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#2#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#2#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#3#if#0#const: dq 2 db 43, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#3#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#3#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#4#if#0#const: dq 2 db 45, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#4#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#4#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#0#const: dq 40 db 84, 79, 68, 79, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 95, 98, 105, 110, 58, 32, 66, 105, 110, 32, 111, 112, 32, 34, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#0#const + 8 compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#1#const: dq 33 db 34, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 97, 116, 32, 99, 111, 109, 112, 116, 105, 109, 101, 10, 0 compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#1#const#ptr: dq compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#1#const + 8 compile._#Var._static_comp_prim_r_pre#0#const: dq 31 db 84, 79, 68, 79, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 95, 112, 114, 101, 10, 0 compile._#Var._static_comp_prim_r_pre#0#const#ptr: dq compile._#Var._static_comp_prim_r_pre#0#const + 8 compile._#Var._static_comp_prim_r_post#0#const: dq 32 db 84, 79, 68, 79, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 95, 112, 111, 115, 116, 10, 0 compile._#Var._static_comp_prim_r_post#0#const#ptr: dq compile._#Var._static_comp_prim_r_post#0#const + 8 compile._#Var._static_comp_prim_r_id#0#wrap#0#if#0#const: dq 27 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 105, 100, 32, 34, 0 compile._#Var._static_comp_prim_r_id#0#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_id#0#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r_id#0#wrap#0#if#1#const: dq 26 db 34, 32, 119, 104, 101, 110, 32, 99, 111, 109, 112, 105, 108, 105, 110, 103, 32, 103, 108, 111, 98, 97, 108, 32, 34, 0 compile._#Var._static_comp_prim_r_id#0#wrap#0#if#1#const#ptr: dq compile._#Var._static_comp_prim_r_id#0#wrap#0#if#1#const + 8 compile._#Var._static_comp_prim_r_id#0#wrap#0#if#2#const: dq 18 db 32, 114, 101, 116, 117, 114, 110, 105, 110, 103, 32, 100, 117, 109, 109, 121, 10, 0 compile._#Var._static_comp_prim_r_id#0#wrap#0#if#2#const#ptr: dq compile._#Var._static_comp_prim_r_id#0#wrap#0#if#2#const + 8 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#0#const: dq 62 db 69, 82, 82, 79, 82, 58, 32, 67, 73, 82, 67, 85, 76, 65, 82, 32, 82, 69, 70, 69, 82, 69, 78, 67, 69, 32, 68, 69, 84, 69, 67, 84, 69, 68, 32, 87, 72, 69, 78, 32, 73, 78, 73, 84, 73, 65, 76, 73, 90, 73, 78, 71, 32, 71, 76, 79, 66, 65, 76, 33, 10, 0 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_id#1#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#1#const: dq 22 db 32, 32, 32, 32, 32, 32, 32, 83, 111, 109, 101, 116, 104, 105, 110, 103, 32, 105, 110, 32, 34, 0 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#1#const#ptr: dq compile._#Var._static_comp_prim_r_id#1#wrap#0#if#1#const + 8 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#2#const: dq 14 db 34, 32, 100, 101, 112, 101, 110, 100, 115, 32, 111, 110, 32, 34 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#2#const#ptr: dq compile._#Var._static_comp_prim_r_id#1#wrap#0#if#2#const + 8 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#3#const: dq 32 db 34, 32, 119, 104, 105, 99, 104, 32, 100, 101, 112, 101, 110, 100, 115, 32, 111, 110, 32, 116, 104, 101, 32, 102, 111, 114, 109, 101, 114, 46, 10, 0 compile._#Var._static_comp_prim_r_id#1#wrap#0#if#3#const#ptr: dq compile._#Var._static_comp_prim_r_id#1#wrap#0#if#3#const + 8 compile._#Var._static_comp_prim_r_id#2#wrap#0#if#0#const: dq 43 db 69, 82, 82, 79, 82, 58, 32, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 115, 101, 116, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 32, 103, 108, 111, 98, 97, 108, 32, 34, 0 compile._#Var._static_comp_prim_r_id#2#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_id#2#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r_id#2#wrap#0#if#1#const: dq 6 db 34, 32, 116, 111, 32, 34 compile._#Var._static_comp_prim_r_id#2#wrap#0#if#1#const#ptr: dq compile._#Var._static_comp_prim_r_id#2#wrap#0#if#1#const + 8 compile._#Var._static_comp_prim_r_id#2#wrap#0#if#2#const: dq 38 db 34, 32, 119, 104, 105, 99, 104, 32, 105, 115, 32, 97, 32, 115, 116, 114, 117, 99, 116, 44, 32, 110, 111, 116, 32, 97, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 10, 0 compile._#Var._static_comp_prim_r_id#2#wrap#0#if#2#const#ptr: dq compile._#Var._static_comp_prim_r_id#2#wrap#0#if#2#const + 8 compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#0#const: dq 44 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 87, 104, 101, 110, 32, 115, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 105, 108, 105, 110, 103, 32, 118, 97, 114, 32, 34, 0 compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#1#const: dq 32 db 34, 32, 116, 104, 101, 32, 115, 117, 98, 45, 110, 111, 100, 101, 32, 119, 97, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 117, 101, 10, 0 compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#1#const#ptr: dq compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#1#const + 8 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#0#if#0#const: dq 5 db 116, 114, 117, 101, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#0#const: dq 5 db 105, 111, 116, 97, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#1#const: dq 42 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 105, 111, 116, 97, 32, 110, 111, 116, 32, 121, 101, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 10, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#0#const: dq 73 db 69, 82, 82, 79, 82, 58, 32, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 115, 101, 116, 32, 97, 32, 110, 111, 110, 45, 112, 111, 105, 110, 116, 101, 114, 32, 111, 114, 32, 110, 111, 110, 45, 97, 114, 114, 97, 121, 32, 116, 111, 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 108, 105, 116, 101, 114, 97, 108, 33, 10, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#0#const#ptr: dq compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#0#const + 8 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#1#const: dq 17 db 32, 32, 32, 32, 32, 32, 32, 76, 105, 116, 101, 114, 97, 108, 58, 32, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#1#const#ptr: dq compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#1#const + 8 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#2#const: dq 2 db 10, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#2#const#ptr: dq compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#2#const + 8 compile._#Var._static_comp_prim_r#2#const: dq 67 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 95, 115, 116, 97, 116, 105, 99, 95, 99, 111, 109, 112, 95, 112, 114, 105, 109, 95, 114, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 119, 111, 114, 107, 32, 111, 110, 32, 110, 111, 100, 101, 32, 103, 105, 118, 101, 110, 10, 0 compile._#Var._static_comp_prim_r#2#const#ptr: dq compile._#Var._static_comp_prim_r#2#const + 8 compile._#Var._static_compile_prim#0#wrap#0#if#0#const: dq 8 db 32, 32, 32, 32, 100, 98, 32, 0 compile._#Var._static_compile_prim#0#wrap#0#if#0#const#ptr: dq compile._#Var._static_compile_prim#0#wrap#0#if#0#const + 8 compile._#Var._static_compile_prim#0#wrap#1#if#0#const: dq 8 db 32, 32, 32, 32, 100, 119, 32, 0 compile._#Var._static_compile_prim#0#wrap#1#if#0#const#ptr: dq compile._#Var._static_compile_prim#0#wrap#1#if#0#const + 8 compile._#Var._static_compile_prim#0#wrap#2#if#0#const: dq 8 db 32, 32, 32, 32, 100, 100, 32, 0 compile._#Var._static_compile_prim#0#wrap#2#if#0#const#ptr: dq compile._#Var._static_compile_prim#0#wrap#2#if#0#const + 8 compile._#Var._static_compile_prim#0#wrap#3#if#0#const: dq 8 db 32, 32, 32, 32, 100, 113, 32, 0 compile._#Var._static_compile_prim#0#wrap#3#if#0#const#ptr: dq compile._#Var._static_compile_prim#0#wrap#3#if#0#const + 8 compile._#Var._static_compile_prim#1#wrap#0#if#0#const: dq 2 db 10, 0 compile._#Var._static_compile_prim#1#wrap#0#if#0#const#ptr: dq compile._#Var._static_compile_prim#1#wrap#0#if#0#const + 8 compile._#Var._static_compile_prim#1#wrap#1#if#0#const: dq 66 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 84, 121, 112, 101, 32, 111, 102, 32, 118, 97, 114, 32, 37, 100, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 102, 111, 114, 32, 115, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 10, 0 compile._#Var._static_compile_prim#1#wrap#1#if#0#const#ptr: dq compile._#Var._static_compile_prim#1#wrap#1#if#0#const + 8 compile._#Var._static_compile_zero#0#const: dq 8 db 32, 32, 32, 32, 100, 98, 32, 0 compile._#Var._static_compile_zero#0#const#ptr: dq compile._#Var._static_compile_zero#0#const + 8 compile._#Var._static_compile_zero#1#loop#0#const: dq 4 db 48, 44, 32, 0 compile._#Var._static_compile_zero#1#loop#0#const#ptr: dq compile._#Var._static_compile_zero#1#loop#0#const + 8 compile._#Var._static_compile_zero#2#const: dq 3 db 48, 10, 0 compile._#Var._static_compile_zero#2#const#ptr: dq compile._#Var._static_compile_zero#2#const + 8 compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#0#const: dq 44 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 87, 104, 101, 110, 32, 115, 116, 97, 116, 105, 99, 32, 99, 111, 109, 112, 105, 108, 105, 110, 103, 32, 118, 97, 114, 32, 34, 0 compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#1#const: dq 32 db 34, 32, 116, 104, 101, 32, 115, 117, 98, 45, 110, 111, 100, 101, 32, 119, 97, 115, 32, 110, 111, 116, 32, 97, 32, 118, 97, 108, 117, 101, 10, 0 compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#1#const#ptr: dq compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#1#const + 8 compile._#Var._static_compile#2#const: dq 3 db 58, 10, 0 compile._#Var._static_compile#2#const#ptr: dq compile._#Var._static_compile#2#const + 8 compile._#Var._static_compile#3#const: dq 2 db 10, 0 compile._#Var._static_compile#3#const#ptr: dq compile._#Var._static_compile#3#const + 8 compile._#Var._global_ptr#1#const: dq 5 db 35, 112, 116, 114, 0 compile._#Var._global_ptr#1#const#ptr: dq compile._#Var._global_ptr#1#const + 8 compile._#Var._set_struct_r#0#const: dq 44 db 32, 32, 32, 32, 59, 32, 112, 117, 116, 116, 105, 110, 103, 32, 115, 116, 114, 117, 99, 116, 32, 97, 100, 100, 114, 101, 115, 115, 32, 105, 110, 116, 111, 32, 114, 101, 103, 105, 115, 116, 101, 114, 10, 0 compile._#Var._set_struct_r#0#const#ptr: dq compile._#Var._set_struct_r#0#const + 8 compile._#Var._set_struct_r#1#wrap#0#if#0#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var._set_struct_r#1#wrap#0#if#0#const#ptr: dq compile._#Var._set_struct_r#1#wrap#0#if#0#const + 8 compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#0#if#0#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#1#if#0#const: dq 9 db 32, 32, 32, 32, 108, 101, 97, 32, 0 compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#1#if#0#const + 8 compile._#Var._set_struct_r#1#wrap#2#if#0#const: dq 9 db 32, 32, 32, 32, 108, 101, 97, 32, 0 compile._#Var._set_struct_r#1#wrap#2#if#0#const#ptr: dq compile._#Var._set_struct_r#1#wrap#2#if#0#const + 8 compile._#Var._set_struct_r#2#const: dq 4 db 44, 32, 91, 0 compile._#Var._set_struct_r#2#const#ptr: dq compile._#Var._set_struct_r#2#const + 8 compile._#Var._set_struct_r#3#wrap#0#if#0#const: dq 5 db 114, 101, 108, 32, 0 compile._#Var._set_struct_r#3#wrap#0#if#0#const#ptr: dq compile._#Var._set_struct_r#3#wrap#0#if#0#const + 8 compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#0#if#0#const: dq 4 db 32, 45, 32, 0 compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#1#if#0#const: dq 4 db 32, 43, 32, 0 compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._set_struct_r#5#const: dq 42 db 93, 32, 59, 32, 105, 110, 105, 116, 105, 97, 108, 32, 115, 116, 114, 117, 99, 116, 32, 97, 100, 100, 114, 32, 109, 111, 118, 101, 32, 40, 83, 69, 84, 95, 83, 84, 82, 95, 82, 41, 10, 0 compile._#Var._set_struct_r#5#const#ptr: dq compile._#Var._set_struct_r#5#const + 8 compile._#Var._set_struct_r#6#loop#0#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var._set_struct_r#6#loop#0#const#ptr: dq compile._#Var._set_struct_r#6#loop#0#const + 8 compile._#Var._set_struct_r#6#loop#1#const: dq 4 db 44, 32, 91, 0 compile._#Var._set_struct_r#6#loop#1#const#ptr: dq compile._#Var._set_struct_r#6#loop#1#const + 8 compile._#Var._set_struct_r#6#loop#2#const: dq 33 db 93, 32, 59, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 99, 104, 97, 105, 110, 32, 40, 83, 69, 84, 95, 83, 84, 82, 95, 82, 41, 10, 0 compile._#Var._set_struct_r#6#loop#2#const#ptr: dq compile._#Var._set_struct_r#6#loop#2#const + 8 compile._#Var._set_struct#0#wrap#0#if#0#const: dq 49 db 69, 82, 82, 79, 82, 58, 32, 84, 121, 112, 101, 115, 32, 100, 111, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 119, 104, 101, 110, 32, 115, 101, 116, 116, 105, 110, 103, 32, 115, 116, 114, 117, 99, 116, 46, 32, 91, 0 compile._#Var._set_struct#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_struct#0#wrap#0#if#0#const + 8 compile._#Var._set_struct#0#wrap#0#if#1#const: dq 8 db 93, 32, 33, 61, 61, 32, 91, 0 compile._#Var._set_struct#0#wrap#0#if#1#const#ptr: dq compile._#Var._set_struct#0#wrap#0#if#1#const + 8 compile._#Var._set_struct#0#wrap#0#if#2#const: dq 3 db 93, 10, 0 compile._#Var._set_struct#0#wrap#0#if#2#const#ptr: dq compile._#Var._set_struct#0#wrap#0#if#2#const + 8 compile._#Var._set_struct#1#const: dq 14 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 99, 120, 44, 32, 0 compile._#Var._set_struct#1#const#ptr: dq compile._#Var._set_struct#1#const + 8 compile._#Var._set_struct#2#const: dq 20 db 32, 59, 32, 115, 105, 122, 101, 32, 111, 102, 32, 115, 116, 114, 117, 99, 116, 32, 91, 0 compile._#Var._set_struct#2#const#ptr: dq compile._#Var._set_struct#2#const + 8 compile._#Var._set_struct#3#const: dq 12 db 93, 32, 105, 110, 32, 98, 121, 116, 101, 115, 10, 0 compile._#Var._set_struct#3#const#ptr: dq compile._#Var._set_struct#3#const + 8 compile._#Var._set_struct#4#const: dq 29 db 32, 32, 32, 32, 114, 101, 112, 32, 109, 111, 118, 115, 98, 32, 59, 32, 109, 111, 118, 101, 32, 115, 116, 114, 117, 99, 116, 10, 0 compile._#Var._set_struct#4#const#ptr: dq compile._#Var._set_struct#4#const + 8 compile._#Var._set_prim_l_base#0#wrap#0#if#0#const: dq 56 db 83, 69, 84, 32, 87, 65, 83, 32, 67, 65, 76, 76, 69, 68, 32, 79, 78, 32, 65, 32, 76, 73, 84, 69, 82, 65, 76, 33, 32, 32, 84, 72, 73, 83, 32, 73, 83, 32, 65, 32, 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 33, 0 compile._#Var._set_prim_l_base#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#0#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#0#wrap#0#if#1#const: dq 55 db 69, 82, 82, 32, 83, 72, 79, 85, 76, 68, 32, 78, 79, 84, 32, 72, 65, 80, 80, 69, 78, 32, 45, 32, 84, 82, 73, 69, 68, 32, 84, 79, 32, 83, 69, 84, 80, 82, 73, 77, 76, 32, 79, 78, 32, 65, 32, 76, 73, 84, 69, 82, 65, 76, 0 compile._#Var._set_prim_l_base#0#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_l_base#0#wrap#0#if#1#const + 8 compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const: dq 4 db 32, 45, 32, 0 compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const: dq 4 db 32, 43, 32, 0 compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#0#if#0#const: dq 4 db 114, 98, 112, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#1#if#0#const: dq 5 db 114, 101, 108, 32, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#1#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#0#if#0#const: dq 4 db 32, 45, 32, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#1#if#0#const: dq 4 db 32, 43, 32, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#1#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#1#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#0#const: dq 15 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 100, 105, 44, 32, 91, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#1#const: dq 17 db 93, 32, 59, 32, 40, 83, 69, 84, 95, 80, 82, 77, 95, 76, 41, 10, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#1#const + 8 compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#2#const: dq 4 db 114, 100, 105, 0 compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#2#const#ptr: dq compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#2#const + 8 compile._#Var._set_prim_l_base#2#wrap#0#if#0#const: dq 2 db 91, 0 compile._#Var._set_prim_l_base#2#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#2#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#2#wrap#0#if#1#const: dq 2 db 93, 0 compile._#Var._set_prim_l_base#2#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_l_base#2#wrap#0#if#1#const + 8 compile._#Var._set_prim_l_base#3#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 100, 105, 44, 32, 0 compile._#Var._set_prim_l_base#3#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#3#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#3#wrap#0#if#1#const: dq 27 db 32, 59, 32, 97, 117, 116, 111, 32, 100, 101, 114, 101, 102, 32, 40, 83, 69, 84, 95, 80, 82, 77, 95, 76, 41, 10, 0 compile._#Var._set_prim_l_base#3#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_l_base#3#wrap#0#if#1#const + 8 compile._#Var._set_prim_l_base#3#wrap#0#if#2#const: dq 6 db 91, 114, 100, 105, 93, 0 compile._#Var._set_prim_l_base#3#wrap#0#if#2#const#ptr: dq compile._#Var._set_prim_l_base#3#wrap#0#if#2#const + 8 compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#0#const: dq 45 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 100, 105, 44, 32, 91, 114, 100, 105, 93, 32, 59, 32, 97, 117, 116, 111, 32, 100, 101, 114, 101, 102, 32, 40, 83, 69, 84, 95, 80, 82, 77, 95, 76, 41, 10, 0 compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#1#const: dq 12 db 65, 85, 84, 79, 32, 68, 69, 82, 69, 70, 10, 0 compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#1#const + 8 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#0#if#0#const: dq 6 db 98, 121, 116, 101, 32, 0 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#1#if#0#const: dq 6 db 119, 111, 114, 100, 32, 0 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#2#if#0#const: dq 7 db 100, 119, 111, 114, 100, 32, 0 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#2#if#0#const#ptr: dq compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#2#if#0#const + 8 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#3#if#0#const: dq 7 db 113, 119, 111, 114, 100, 32, 0 compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#3#if#0#const#ptr: dq compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#3#if#0#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const: dq 11 db 32, 32, 32, 32, 109, 111, 118, 115, 120, 32, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#1#if#0#const: dq 12 db 32, 32, 32, 32, 109, 111, 118, 115, 120, 100, 32, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#1#if#0#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#1#if#0#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#2#const: dq 3 db 44, 32, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#2#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#2#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#0#const: dq 11 db 32, 32, 32, 32, 109, 111, 118, 122, 120, 32, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#1#const: dq 3 db 44, 32, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#2#if#0#const: dq 14 db 32, 32, 32, 32, 109, 111, 118, 32, 101, 115, 105, 44, 32, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#2#if#0#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#2#if#0#const + 8 compile._#Var._set_prim_r#1#wrap#0#if#1#const: dq 16 db 32, 59, 32, 40, 83, 69, 84, 95, 80, 82, 77, 95, 82, 41, 10, 0 compile._#Var._set_prim_r#1#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_r#1#wrap#0#if#1#const + 8 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#1#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#2#const: dq 3 db 44, 32, 0 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#2#const#ptr: dq compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#2#const + 8 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#3#const: dq 16 db 32, 59, 32, 40, 83, 69, 84, 95, 80, 82, 77, 95, 82, 41, 10, 0 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#3#const#ptr: dq compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#3#const + 8 compile._#Var.set#1#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var.set#1#const#ptr: dq compile._#Var.set#1#const + 8 compile._#Var.set#2#const: dq 3 db 44, 32, 0 compile._#Var.set#2#const#ptr: dq compile._#Var.set#2#const + 8 compile._#Var.set#3#const: dq 10 db 32, 59, 32, 40, 83, 69, 84, 41, 10, 0 compile._#Var.set#3#const#ptr: dq compile._#Var.set#3#const + 8 compile._#Var.set_ref#0#wrap#0#if#0#const: dq 70 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 115, 101, 116, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 44, 32, 100, 101, 112, 116, 104, 32, 37, 100, 32, 101, 113, 117, 97, 108, 115, 32, 111, 114, 32, 101, 120, 99, 101, 101, 100, 115, 32, 109, 97, 120, 95, 100, 101, 112, 116, 104, 32, 0 compile._#Var.set_ref#0#wrap#0#if#0#const#ptr: dq compile._#Var.set_ref#0#wrap#0#if#0#const + 8 compile._#Var.set_ref#0#wrap#0#if#1#const: dq 4 db 37, 100, 10, 0 compile._#Var.set_ref#0#wrap#0#if#1#const#ptr: dq compile._#Var.set_ref#0#wrap#0#if#1#const + 8 compile._#Var.set_ref#0#wrap#0#if#2#const: dq 37 db 32, 32, 32, 32, 32, 32, 32, 87, 104, 101, 110, 32, 116, 97, 107, 105, 110, 103, 32, 114, 101, 102, 32, 111, 102, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 34, 0 compile._#Var.set_ref#0#wrap#0#if#2#const#ptr: dq compile._#Var.set_ref#0#wrap#0#if#2#const + 8 compile._#Var.set_ref#0#wrap#0#if#3#const: dq 18 db 34, 32, 105, 110, 116, 111, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 34, 0 compile._#Var.set_ref#0#wrap#0#if#3#const#ptr: dq compile._#Var.set_ref#0#wrap#0#if#3#const + 8 compile._#Var.set_ref#0#wrap#0#if#4#const: dq 3 db 34, 10, 0 compile._#Var.set_ref#0#wrap#0#if#4#const#ptr: dq compile._#Var.set_ref#0#wrap#0#if#4#const + 8 compile._#Var.take_ptr#0#wrap#0#if#0#const: dq 40 db 69, 82, 82, 79, 82, 58, 32, 85, 78, 65, 66, 76, 69, 32, 84, 79, 32, 71, 69, 84, 32, 82, 69, 70, 69, 82, 69, 78, 67, 69, 32, 79, 70, 32, 86, 65, 82, 32, 34, 0 compile._#Var.take_ptr#0#wrap#0#if#0#const#ptr: dq compile._#Var.take_ptr#0#wrap#0#if#0#const + 8 compile._#Var.take_ptr#0#wrap#0#if#1#const: dq 3 db 34, 10, 0 compile._#Var.take_ptr#0#wrap#0#if#1#const#ptr: dq compile._#Var.take_ptr#0#wrap#0#if#1#const + 8 compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#0#const: dq 9 db 32, 32, 32, 32, 108, 101, 97, 32, 0 compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#0#const#ptr: dq compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#0#const + 8 compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#1#const: dq 3 db 44, 32, 0 compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#1#const#ptr: dq compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#1#const + 8 compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#2#const: dq 15 db 32, 59, 32, 40, 84, 65, 75, 69, 95, 80, 84, 82, 41, 10, 0 compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#2#const#ptr: dq compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#2#const + 8 compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#0#const: dq 73 db 69, 82, 82, 79, 82, 58, 32, 67, 97, 110, 39, 116, 32, 116, 97, 107, 101, 32, 100, 105, 114, 101, 99, 116, 32, 100, 101, 45, 114, 101, 102, 32, 111, 102, 32, 97, 114, 114, 97, 121, 32, 118, 97, 114, 105, 97, 98, 108, 101, 44, 32, 116, 114, 121, 32, 97, 110, 32, 105, 110, 100, 101, 120, 32, 40, 110, 97, 109, 101, 58, 32, 34, 0 compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#1#const: dq 4 db 34, 41, 10, 0 compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Var.index#0#const: dq 17 db 32, 32, 32, 32, 59, 32, 71, 101, 110, 32, 105, 110, 100, 101, 120, 10, 0 compile._#Var.index#0#const#ptr: dq compile._#Var.index#0#const + 8 compile._#Var.index#3#wrap#0#if#0#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 108, 101, 97, 32, 114, 115, 105, 44, 32, 0 compile._#Var.index#3#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var.index#3#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var.index#3#wrap#0#if#0#wrap#1#if#0#const: dq 14 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 115, 105, 44, 32, 0 compile._#Var.index#3#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var.index#3#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var.index#3#wrap#1#if#0#const: dq 48 db 69, 82, 82, 79, 82, 58, 32, 67, 97, 110, 39, 116, 32, 116, 97, 107, 101, 32, 105, 110, 100, 101, 120, 32, 111, 102, 32, 110, 111, 110, 45, 97, 114, 114, 97, 121, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 34, 0 compile._#Var.index#3#wrap#1#if#0#const#ptr: dq compile._#Var.index#3#wrap#1#if#0#const + 8 compile._#Var.index#3#wrap#1#if#1#const: dq 3 db 34, 10, 0 compile._#Var.index#3#wrap#1#if#1#const#ptr: dq compile._#Var.index#3#wrap#1#if#1#const + 8 compile._#Var.index#4#const: dq 14 db 32, 59, 32, 40, 71, 69, 78, 95, 73, 68, 88, 41, 10, 0 compile._#Var.index#4#const#ptr: dq compile._#Var.index#4#const + 8 compile._#Var.index#5#const: dq 9 db 32, 32, 32, 32, 97, 100, 100, 32, 0 compile._#Var.index#5#const#ptr: dq compile._#Var.index#5#const + 8 compile._#Var.index#6#const: dq 19 db 44, 32, 114, 115, 105, 32, 59, 32, 40, 71, 69, 78, 95, 73, 68, 88, 41, 10, 0 compile._#Var.index#6#const#ptr: dq compile._#Var.index#6#const + 8 compile._#Var.standard_op#0#const: dq 5 db 32, 32, 32, 32, 0 compile._#Var.standard_op#0#const#ptr: dq compile._#Var.standard_op#0#const + 8 compile._#Var.standard_op#1#const: dq 2 db 32, 0 compile._#Var.standard_op#1#const#ptr: dq compile._#Var.standard_op#1#const + 8 compile._#Var.standard_op#2#const: dq 3 db 44, 32, 0 compile._#Var.standard_op#2#const#ptr: dq compile._#Var.standard_op#2#const + 8 compile._#Var.standard_op#3#const: dq 13 db 32, 59, 32, 40, 83, 84, 68, 95, 79, 80, 41, 10, 0 compile._#Var.standard_op#3#const#ptr: dq compile._#Var.standard_op#3#const + 8 compile._#Var.add#1#wrap#0#if#0#wrap#0#if#0#const: dq 12 db 79, 102, 102, 115, 101, 116, 32, 56, 32, 64, 10, 0 compile._#Var.add#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var.add#1#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var.add#1#wrap#0#if#1#const: dq 4 db 97, 100, 100, 0 compile._#Var.add#1#wrap#0#if#1#const#ptr: dq compile._#Var.add#1#wrap#0#if#1#const + 8 compile._#Var.add#1#wrap#1#if#0#const: dq 4 db 97, 100, 100, 0 compile._#Var.add#1#wrap#1#if#0#const#ptr: dq compile._#Var.add#1#wrap#1#if#0#const + 8 compile._#Var.sub#1#wrap#0#if#1#const: dq 4 db 115, 117, 98, 0 compile._#Var.sub#1#wrap#0#if#1#const#ptr: dq compile._#Var.sub#1#wrap#0#if#1#const + 8 compile._#Var.sub#1#wrap#1#if#0#const: dq 4 db 115, 117, 98, 0 compile._#Var.sub#1#wrap#1#if#0#const#ptr: dq compile._#Var.sub#1#wrap#1#if#0#const + 8 compile._#Var.and#1#const: dq 4 db 97, 110, 100, 0 compile._#Var.and#1#const#ptr: dq compile._#Var.and#1#const + 8 compile._#Var.or#1#const: dq 3 db 111, 114, 0 compile._#Var.or#1#const#ptr: dq compile._#Var.or#1#const + 8 compile._#Var.xor#1#const: dq 4 db 120, 111, 114, 0 compile._#Var.xor#1#const#ptr: dq compile._#Var.xor#1#const + 8 compile._#Var.mul#1#wrap#0#if#0#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var.mul#1#wrap#0#if#0#const#ptr: dq compile._#Var.mul#1#wrap#0#if#0#const + 8 compile._#Var.mul#1#wrap#0#if#1#const: dq 3 db 44, 32, 0 compile._#Var.mul#1#wrap#0#if#1#const#ptr: dq compile._#Var.mul#1#wrap#0#if#1#const + 8 compile._#Var.mul#1#wrap#0#if#2#const: dq 10 db 32, 59, 32, 40, 77, 85, 76, 41, 10, 0 compile._#Var.mul#1#wrap#0#if#2#const#ptr: dq compile._#Var.mul#1#wrap#0#if#2#const + 8 compile._#Var.mul#1#wrap#0#if#3#const: dq 10 db 32, 32, 32, 32, 105, 109, 117, 108, 32, 0 compile._#Var.mul#1#wrap#0#if#3#const#ptr: dq compile._#Var.mul#1#wrap#0#if#3#const + 8 compile._#Var.mul#1#wrap#0#if#4#const: dq 3 db 44, 32, 0 compile._#Var.mul#1#wrap#0#if#4#const#ptr: dq compile._#Var.mul#1#wrap#0#if#4#const + 8 compile._#Var.mul#1#wrap#0#if#5#const: dq 10 db 32, 59, 32, 40, 77, 85, 76, 41, 10, 0 compile._#Var.mul#1#wrap#0#if#5#const#ptr: dq compile._#Var.mul#1#wrap#0#if#5#const + 8 compile._#Var.mul#1#wrap#0#if#6#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var.mul#1#wrap#0#if#6#const#ptr: dq compile._#Var.mul#1#wrap#0#if#6#const + 8 compile._#Var.mul#1#wrap#0#if#7#const: dq 3 db 44, 32, 0 compile._#Var.mul#1#wrap#0#if#7#const#ptr: dq compile._#Var.mul#1#wrap#0#if#7#const + 8 compile._#Var.mul#1#wrap#0#if#8#const: dq 10 db 32, 59, 32, 40, 77, 85, 76, 41, 10, 0 compile._#Var.mul#1#wrap#0#if#8#const#ptr: dq compile._#Var.mul#1#wrap#0#if#8#const + 8 compile._#Var.mul#1#wrap#1#if#0#const: dq 10 db 32, 32, 32, 32, 105, 109, 117, 108, 32, 0 compile._#Var.mul#1#wrap#1#if#0#const#ptr: dq compile._#Var.mul#1#wrap#1#if#0#const + 8 compile._#Var.mul#1#wrap#1#if#1#const: dq 3 db 44, 32, 0 compile._#Var.mul#1#wrap#1#if#1#const#ptr: dq compile._#Var.mul#1#wrap#1#if#1#const + 8 compile._#Var.mul#1#wrap#1#if#2#const: dq 10 db 32, 59, 32, 40, 77, 85, 76, 41, 10, 0 compile._#Var.mul#1#wrap#1#if#2#const#ptr: dq compile._#Var.mul#1#wrap#1#if#2#const + 8 compile._#Var._div#0#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 99, 120, 44, 32, 0 compile._#Var._div#0#wrap#0#if#0#const#ptr: dq compile._#Var._div#0#wrap#0#if#0#const + 8 compile._#Var._div#0#wrap#0#if#1#const: dq 10 db 32, 59, 32, 40, 68, 73, 86, 41, 10, 0 compile._#Var._div#0#wrap#0#if#1#const#ptr: dq compile._#Var._div#0#wrap#0#if#1#const + 8 compile._#Var._div#1#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var._div#1#const#ptr: dq compile._#Var._div#1#const + 8 compile._#Var._div#2#const: dq 3 db 44, 32, 0 compile._#Var._div#2#const#ptr: dq compile._#Var._div#2#const + 8 compile._#Var._div#3#const: dq 10 db 32, 59, 32, 40, 68, 73, 86, 41, 10, 0 compile._#Var._div#3#const#ptr: dq compile._#Var._div#3#const + 8 compile._#Var._div#4#wrap#0#if#0#wrap#0#if#0#const: dq 18 db 32, 32, 32, 32, 109, 111, 118, 115, 120, 32, 97, 120, 44, 32, 97, 108, 10, 0 compile._#Var._div#4#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._div#4#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._div#4#wrap#0#if#0#wrap#1#if#0#const: dq 9 db 32, 32, 32, 32, 99, 119, 100, 10, 0 compile._#Var._div#4#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._div#4#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._div#4#wrap#0#if#0#wrap#2#if#0#const: dq 9 db 32, 32, 32, 32, 99, 100, 113, 10, 0 compile._#Var._div#4#wrap#0#if#0#wrap#2#if#0#const#ptr: dq compile._#Var._div#4#wrap#0#if#0#wrap#2#if#0#const + 8 compile._#Var._div#4#wrap#0#if#0#wrap#3#if#0#const: dq 9 db 32, 32, 32, 32, 99, 113, 111, 10, 0 compile._#Var._div#4#wrap#0#if#0#wrap#3#if#0#const#ptr: dq compile._#Var._div#4#wrap#0#if#0#wrap#3#if#0#const + 8 compile._#Var._div#4#wrap#0#if#1#const: dq 10 db 32, 32, 32, 32, 105, 100, 105, 118, 32, 0 compile._#Var._div#4#wrap#0#if#1#const#ptr: dq compile._#Var._div#4#wrap#0#if#1#const + 8 compile._#Var._div#4#wrap#1#if#0#const: dq 9 db 32, 32, 32, 32, 120, 111, 114, 32, 0 compile._#Var._div#4#wrap#1#if#0#const#ptr: dq compile._#Var._div#4#wrap#1#if#0#const + 8 compile._#Var._div#4#wrap#1#if#1#wrap#0#if#0#const: dq 8 db 97, 104, 44, 32, 97, 104, 10, 0 compile._#Var._div#4#wrap#1#if#1#wrap#0#if#0#const#ptr: dq compile._#Var._div#4#wrap#1#if#1#wrap#0#if#0#const + 8 compile._#Var._div#4#wrap#1#if#1#wrap#1#if#0#const: dq 8 db 100, 120, 44, 32, 100, 120, 10, 0 compile._#Var._div#4#wrap#1#if#1#wrap#1#if#0#const#ptr: dq compile._#Var._div#4#wrap#1#if#1#wrap#1#if#0#const + 8 compile._#Var._div#4#wrap#1#if#1#wrap#2#if#0#const: dq 10 db 101, 100, 120, 44, 32, 101, 100, 120, 10, 0 compile._#Var._div#4#wrap#1#if#1#wrap#2#if#0#const#ptr: dq compile._#Var._div#4#wrap#1#if#1#wrap#2#if#0#const + 8 compile._#Var._div#4#wrap#1#if#1#wrap#3#if#0#const: dq 10 db 114, 100, 120, 44, 32, 114, 100, 120, 10, 0 compile._#Var._div#4#wrap#1#if#1#wrap#3#if#0#const#ptr: dq compile._#Var._div#4#wrap#1#if#1#wrap#3#if#0#const + 8 compile._#Var._div#4#wrap#1#if#2#const: dq 9 db 32, 32, 32, 32, 100, 105, 118, 32, 0 compile._#Var._div#4#wrap#1#if#2#const#ptr: dq compile._#Var._div#4#wrap#1#if#2#const + 8 compile._#Var._div#5#const: dq 2 db 10, 0 compile._#Var._div#5#const#ptr: dq compile._#Var._div#5#const + 8 compile._#Var._div#6#wrap#0#if#1#const: dq 3 db 97, 104, 0 compile._#Var._div#6#wrap#0#if#1#const#ptr: dq compile._#Var._div#6#wrap#0#if#1#const + 8 compile._#Var._div#7#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var._div#7#const#ptr: dq compile._#Var._div#7#const + 8 compile._#Var._div#8#const: dq 3 db 44, 32, 0 compile._#Var._div#8#const#ptr: dq compile._#Var._div#8#const + 8 compile._#Var._div#9#const: dq 10 db 32, 59, 32, 40, 68, 73, 86, 41, 10, 0 compile._#Var._div#9#const#ptr: dq compile._#Var._div#9#const + 8 compile._#Var._unary#0#const: dq 5 db 32, 32, 32, 32, 0 compile._#Var._unary#0#const#ptr: dq compile._#Var._unary#0#const + 8 compile._#Var._unary#1#const: dq 2 db 32, 0 compile._#Var._unary#1#const#ptr: dq compile._#Var._unary#1#const + 8 compile._#Var._unary#2#wrap#0#if#0#wrap#0#if#0#const: dq 6 db 98, 121, 116, 101, 32, 0 compile._#Var._unary#2#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var._unary#2#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var._unary#2#wrap#0#if#0#wrap#1#if#0#const: dq 6 db 119, 111, 114, 100, 32, 0 compile._#Var._unary#2#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var._unary#2#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var._unary#2#wrap#0#if#0#wrap#2#if#0#const: dq 7 db 100, 119, 111, 114, 100, 32, 0 compile._#Var._unary#2#wrap#0#if#0#wrap#2#if#0#const#ptr: dq compile._#Var._unary#2#wrap#0#if#0#wrap#2#if#0#const + 8 compile._#Var._unary#2#wrap#0#if#0#wrap#3#if#0#const: dq 7 db 113, 119, 111, 114, 100, 32, 0 compile._#Var._unary#2#wrap#0#if#0#wrap#3#if#0#const#ptr: dq compile._#Var._unary#2#wrap#0#if#0#wrap#3#if#0#const + 8 compile._#Var._unary#3#const: dq 12 db 32, 59, 32, 40, 85, 78, 65, 82, 89, 41, 10, 0 compile._#Var._unary#3#const#ptr: dq compile._#Var._unary#3#const + 8 compile._#Var.not#1#const: dq 4 db 110, 111, 116, 0 compile._#Var.not#1#const#ptr: dq compile._#Var.not#1#const + 8 compile._#Var.neg#1#const: dq 4 db 110, 101, 103, 0 compile._#Var.neg#1#const#ptr: dq compile._#Var.neg#1#const + 8 compile._#Var.inc#1#wrap#0#if#1#const: dq 4 db 97, 100, 100, 0 compile._#Var.inc#1#wrap#0#if#1#const#ptr: dq compile._#Var.inc#1#wrap#0#if#1#const + 8 compile._#Var.inc#1#wrap#1#if#0#const: dq 4 db 105, 110, 99, 0 compile._#Var.inc#1#wrap#1#if#0#const#ptr: dq compile._#Var.inc#1#wrap#1#if#0#const + 8 compile._#Var.dec#1#wrap#0#if#1#const: dq 4 db 115, 117, 98, 0 compile._#Var.dec#1#wrap#0#if#1#const#ptr: dq compile._#Var.dec#1#wrap#0#if#1#const + 8 compile._#Var.dec#1#wrap#1#if#0#const: dq 4 db 100, 101, 99, 0 compile._#Var.dec#1#wrap#1#if#0#const#ptr: dq compile._#Var.dec#1#wrap#1#if#0#const + 8 compile._#Var.test#0#const: dq 9 db 32, 32, 32, 32, 99, 109, 112, 32, 0 compile._#Var.test#0#const#ptr: dq compile._#Var.test#0#const + 8 compile._#Var.test#1#wrap#0#if#0#wrap#0#if#0#const: dq 6 db 98, 121, 116, 101, 32, 0 compile._#Var.test#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var.test#1#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var.test#1#wrap#0#if#0#wrap#1#if#0#const: dq 6 db 119, 111, 114, 100, 32, 0 compile._#Var.test#1#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var.test#1#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var.test#1#wrap#0#if#0#wrap#2#if#0#const: dq 7 db 100, 119, 111, 114, 100, 32, 0 compile._#Var.test#1#wrap#0#if#0#wrap#2#if#0#const#ptr: dq compile._#Var.test#1#wrap#0#if#0#wrap#2#if#0#const + 8 compile._#Var.test#1#wrap#0#if#0#wrap#3#if#0#const: dq 7 db 113, 119, 111, 114, 100, 32, 0 compile._#Var.test#1#wrap#0#if#0#wrap#3#if#0#const#ptr: dq compile._#Var.test#1#wrap#0#if#0#wrap#3#if#0#const + 8 compile._#Var.test#2#const: dq 5 db 44, 32, 48, 10, 0 compile._#Var.test#2#const#ptr: dq compile._#Var.test#2#const + 8 compile._#Var.cmov#0#const: dq 9 db 32, 32, 32, 32, 99, 109, 112, 32, 0 compile._#Var.cmov#0#const#ptr: dq compile._#Var.cmov#0#const + 8 compile._#Var.cmov#1#const: dq 3 db 44, 32, 0 compile._#Var.cmov#1#const#ptr: dq compile._#Var.cmov#1#const + 8 compile._#Var.cmov#2#const: dq 2 db 10, 0 compile._#Var.cmov#2#const#ptr: dq compile._#Var.cmov#2#const + 8 compile._#Var.cmov#3#const: dq 15 db 32, 32, 32, 32, 109, 111, 118, 32, 97, 120, 44, 32, 48, 10, 0 compile._#Var.cmov#3#const#ptr: dq compile._#Var.cmov#3#const + 8 compile._#Var.cmov#4#const: dq 15 db 32, 32, 32, 32, 109, 111, 118, 32, 99, 120, 44, 32, 49, 10, 0 compile._#Var.cmov#4#const#ptr: dq compile._#Var.cmov#4#const + 8 compile._#Var.cmov#5#const: dq 9 db 32, 32, 32, 32, 99, 109, 111, 118, 0 compile._#Var.cmov#5#const#ptr: dq compile._#Var.cmov#5#const + 8 compile._#Var.cmov#6#const: dq 23 db 32, 97, 120, 44, 32, 99, 120, 32, 59, 32, 67, 111, 109, 112, 97, 114, 101, 32, 115, 101, 116, 10, 0 compile._#Var.cmov#6#const#ptr: dq compile._#Var.cmov#6#const + 8 compile._#Var.cmov#7#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var.cmov#7#const#ptr: dq compile._#Var.cmov#7#const + 8 compile._#Var.cmov#8#const: dq 3 db 44, 32, 0 compile._#Var.cmov#8#const#ptr: dq compile._#Var.cmov#8#const + 8 compile._#Var.cmov#9#const: dq 22 db 32, 59, 32, 77, 111, 118, 32, 97, 102, 116, 101, 114, 32, 99, 111, 109, 112, 97, 114, 101, 10, 0 compile._#Var.cmov#9#const#ptr: dq compile._#Var.cmov#9#const + 8 compile._#Var.cset#0#const: dq 15 db 32, 32, 32, 32, 109, 111, 118, 32, 97, 120, 44, 32, 48, 10, 0 compile._#Var.cset#0#const#ptr: dq compile._#Var.cset#0#const + 8 compile._#Var.cset#1#const: dq 15 db 32, 32, 32, 32, 109, 111, 118, 32, 99, 120, 44, 32, 49, 10, 0 compile._#Var.cset#1#const#ptr: dq compile._#Var.cset#1#const + 8 compile._#Var.cset#2#const: dq 9 db 32, 32, 32, 32, 99, 109, 111, 118, 0 compile._#Var.cset#2#const#ptr: dq compile._#Var.cset#2#const + 8 compile._#Var.cset#3#const: dq 23 db 32, 97, 120, 44, 32, 99, 120, 32, 59, 32, 67, 111, 109, 112, 97, 114, 101, 32, 115, 101, 116, 10, 0 compile._#Var.cset#3#const#ptr: dq compile._#Var.cset#3#const + 8 compile._#Var.cset#4#const: dq 9 db 32, 32, 32, 32, 109, 111, 118, 32, 0 compile._#Var.cset#4#const#ptr: dq compile._#Var.cset#4#const + 8 compile._#Var.cset#5#const: dq 3 db 44, 32, 0 compile._#Var.cset#5#const#ptr: dq compile._#Var.cset#5#const + 8 compile._#Var.cset#6#const: dq 22 db 32, 59, 32, 77, 111, 118, 32, 97, 102, 116, 101, 114, 32, 99, 111, 109, 112, 97, 114, 101, 10, 0 compile._#Var.cset#6#const#ptr: dq compile._#Var.cset#6#const + 8 compile._#Var.member#0#wrap#0#if#0#const: dq 41 db 69, 82, 82, 79, 82, 58, 32, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 103, 101, 116, 32, 97, 32, 109, 101, 109, 98, 101, 114, 32, 110, 97, 109, 101, 100, 32, 34, 0 compile._#Var.member#0#wrap#0#if#0#const#ptr: dq compile._#Var.member#0#wrap#0#if#0#const + 8 compile._#Var.member#0#wrap#0#if#1#const: dq 26 db 34, 32, 102, 114, 111, 109, 32, 97, 32, 112, 114, 105, 109, 105, 116, 105, 118, 101, 32, 116, 121, 112, 101, 32, 34, 0 compile._#Var.member#0#wrap#0#if#1#const#ptr: dq compile._#Var.member#0#wrap#0#if#1#const + 8 compile._#Var.member#0#wrap#0#if#2#const: dq 3 db 34, 10, 0 compile._#Var.member#0#wrap#0#if#2#const#ptr: dq compile._#Var.member#0#wrap#0#if#2#const + 8 compile._#Var.member#0#wrap#0#if#3#const: dq 96 db 32, 32, 32, 32, 32, 32, 32, 40, 73, 102, 32, 116, 104, 101, 32, 112, 114, 101, 118, 105, 111, 117, 115, 32, 116, 121, 112, 101, 32, 119, 97, 115, 32, 105, 110, 32, 102, 97, 99, 116, 32, 97, 32, 115, 116, 114, 117, 99, 116, 117, 114, 101, 32, 116, 104, 101, 110, 32, 116, 104, 101, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 119, 97, 115, 32, 112, 114, 111, 98, 97, 98, 108, 121, 32, 97, 32, 112, 111, 105, 110, 116, 101, 114, 41, 10, 0 compile._#Var.member#0#wrap#0#if#3#const#ptr: dq compile._#Var.member#0#wrap#0#if#3#const + 8 compile._#Var.member#1#wrap#0#if#0#const: dq 16 db 69, 82, 82, 79, 82, 58, 32, 109, 101, 109, 98, 101, 114, 32, 34, 0 compile._#Var.member#1#wrap#0#if#0#const#ptr: dq compile._#Var.member#1#wrap#0#if#0#const + 8 compile._#Var.member#1#wrap#0#if#1#const: dq 24 db 34, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 115, 116, 114, 117, 99, 116, 32, 34, 0 compile._#Var.member#1#wrap#0#if#1#const#ptr: dq compile._#Var.member#1#wrap#0#if#1#const + 8 compile._#Var.member#1#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Var.member#1#wrap#0#if#2#const#ptr: dq compile._#Var.member#1#wrap#0#if#2#const + 8 compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 115, 117, 98, 32, 114, 115, 105, 44, 32, 0 compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const: dq 14 db 32, 32, 32, 32, 97, 100, 100, 32, 114, 115, 105, 44, 32, 0 compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Var.member#2#wrap#0#if#0#wrap#0#if#1#const: dq 44 db 32, 59, 32, 65, 100, 100, 32, 111, 102, 102, 115, 101, 116, 32, 119, 104, 101, 110, 32, 103, 101, 116, 116, 105, 110, 103, 32, 109, 101, 109, 98, 101, 114, 32, 40, 77, 69, 77, 66, 69, 82, 41, 10, 0 compile._#Var.member#2#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Var.member#2#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Var._len#0#wrap#0#if#0#const: dq 17 db 84, 79, 68, 79, 58, 32, 97, 114, 114, 97, 121, 32, 108, 101, 110, 10, 0 compile._#Var._len#0#wrap#0#if#0#const#ptr: dq compile._#Var._len#0#wrap#0#if#0#const + 8 compile._#Var._print#0#const: dq 9 db 123, 32, 86, 97, 114, 32, 58, 32, 0 compile._#Var._print#0#const#ptr: dq compile._#Var._print#0#const + 8 compile._#Var._print#1#const: dq 2 db 10, 0 compile._#Var._print#1#const#ptr: dq compile._#Var._print#1#const + 8 compile._#Var._print#2#const: dq 7 db 116, 121, 112, 101, 58, 32, 0 compile._#Var._print#2#const#ptr: dq compile._#Var._print#2#const + 8 compile._#Var._print#3#wrap#1#if#0#const: dq 6 db 40, 110, 105, 108, 41, 0 compile._#Var._print#3#wrap#1#if#0#const#ptr: dq compile._#Var._print#3#wrap#1#if#0#const + 8 compile._#Var._print#4#const: dq 2 db 10, 0 compile._#Var._print#4#const#ptr: dq compile._#Var._print#4#const + 8 compile._#Var._print#5#const: dq 7 db 112, 116, 114, 99, 58, 32, 0 compile._#Var._print#5#const#ptr: dq compile._#Var._print#5#const + 8 compile._#Var._print#6#loop#0#const: dq 4 db 37, 100, 32, 0 compile._#Var._print#6#loop#0#const#ptr: dq compile._#Var._print#6#loop#0#const + 8 compile._#Var._print#7#wrap#0#if#0#const: dq 6 db 40, 110, 105, 108, 41, 0 compile._#Var._print#7#wrap#0#if#0#const#ptr: dq compile._#Var._print#7#wrap#0#if#0#const + 8 compile._#Var._print#8#const: dq 2 db 10, 0 compile._#Var._print#8#const#ptr: dq compile._#Var._print#8#const + 8 compile._#Var._print#9#const: dq 9 db 108, 111, 99, 58, 32, 37, 100, 10, 0 compile._#Var._print#9#const#ptr: dq compile._#Var._print#9#const + 8 compile._#Var._print#10#const: dq 9 db 111, 102, 102, 58, 32, 37, 100, 10, 0 compile._#Var._print#10#const#ptr: dq compile._#Var._print#10#const + 8 compile._#Var._print#11#const: dq 3 db 125, 10, 0 compile._#Var._print#11#const#ptr: dq compile._#Var._print#11#const + 8 compile._#Function._resolve_dlist#0#wrap#0#if#0#const: dq 5 db 115, 101, 108, 102, 0 compile._#Function._resolve_dlist#0#wrap#0#if#0#const#ptr: dq compile._#Function._resolve_dlist#0#wrap#0#if#0#const + 8 compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#0#if#0#const: dq 66 db 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 100, 101, 99, 108, 97, 114, 101, 100, 32, 105, 110, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 108, 105, 115, 116, 32, 98, 101, 102, 111, 114, 101, 32, 97, 110, 121, 32, 116, 121, 112, 101, 32, 119, 97, 115, 32, 102, 111, 117, 110, 100, 33, 10, 0 compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Function._resolve_tlist#0#const: dq 11 db 35, 32, 79, 85, 84, 80, 85, 84, 32, 35, 0 compile._#Function._resolve_tlist#0#const#ptr: dq compile._#Function._resolve_tlist#0#const + 8 compile._#Function._build_func#0#wrap#0#if#0#const: dq 8 db 103, 108, 111, 98, 97, 108, 32, 0 compile._#Function._build_func#0#wrap#0#if#0#const#ptr: dq compile._#Function._build_func#0#wrap#0#if#0#const + 8 compile._#Function._build_func#0#wrap#0#if#1#const: dq 2 db 10, 0 compile._#Function._build_func#0#wrap#0#if#1#const#ptr: dq compile._#Function._build_func#0#wrap#0#if#1#const + 8 compile._#Function._build_func#1#const: dq 14 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 98, 112, 10, 0 compile._#Function._build_func#1#const#ptr: dq compile._#Function._build_func#1#const + 8 compile._#Function._build_func#2#const: dq 24 db 32, 32, 32, 32, 108, 101, 97, 32, 114, 98, 112, 44, 32, 91, 114, 115, 112, 32, 43, 32, 56, 93, 10, 0 compile._#Function._build_func#2#const#ptr: dq compile._#Function._build_func#2#const + 8 compile._#Function._build_func#3#const: dq 14 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 49, 48, 10, 0 compile._#Function._build_func#3#const#ptr: dq compile._#Function._build_func#3#const + 8 compile._#Function._build_func#4#const: dq 14 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 49, 49, 10, 0 compile._#Function._build_func#4#const#ptr: dq compile._#Function._build_func#4#const + 8 compile._#Function._build_func#5#const: dq 14 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 49, 50, 10, 0 compile._#Function._build_func#5#const#ptr: dq compile._#Function._build_func#5#const + 8 compile._#Function._build_func#6#const: dq 14 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 49, 51, 10, 0 compile._#Function._build_func#6#const#ptr: dq compile._#Function._build_func#6#const + 8 compile._#Function._build_func#7#const: dq 14 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 49, 52, 10, 0 compile._#Function._build_func#7#const#ptr: dq compile._#Function._build_func#7#const + 8 compile._#Function._build_func#8#const: dq 28 db 32, 32, 32, 32, 112, 117, 115, 104, 32, 114, 49, 53, 32, 59, 32, 115, 99, 111, 112, 101, 32, 105, 110, 105, 116, 10, 10, 0 compile._#Function._build_func#8#const#ptr: dq compile._#Function._build_func#8#const + 8 compile._#Function._end_func#0#const: dq 2 db 10, 0 compile._#Function._end_func#0#const#ptr: dq compile._#Function._end_func#0#const + 8 compile._#Function._end_func#1#const: dq 25 db 32, 32, 32, 32, 108, 101, 97, 32, 114, 115, 112, 44, 32, 91, 114, 98, 112, 32, 45, 32, 53, 54, 93, 10, 0 compile._#Function._end_func#1#const#ptr: dq compile._#Function._end_func#1#const + 8 compile._#Function._end_func#2#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 49, 53, 10, 0 compile._#Function._end_func#2#const#ptr: dq compile._#Function._end_func#2#const + 8 compile._#Function._end_func#3#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 49, 52, 10, 0 compile._#Function._end_func#3#const#ptr: dq compile._#Function._end_func#3#const + 8 compile._#Function._end_func#4#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 49, 51, 10, 0 compile._#Function._end_func#4#const#ptr: dq compile._#Function._end_func#4#const + 8 compile._#Function._end_func#5#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 49, 50, 10, 0 compile._#Function._end_func#5#const#ptr: dq compile._#Function._end_func#5#const + 8 compile._#Function._end_func#6#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 49, 49, 10, 0 compile._#Function._end_func#6#const#ptr: dq compile._#Function._end_func#6#const + 8 compile._#Function._end_func#7#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 49, 48, 10, 0 compile._#Function._end_func#7#const#ptr: dq compile._#Function._end_func#7#const + 8 compile._#Function._end_func#8#const: dq 13 db 32, 32, 32, 32, 112, 111, 112, 32, 114, 98, 112, 10, 0 compile._#Function._end_func#8#const#ptr: dq compile._#Function._end_func#8#const + 8 compile._#Function._end_func#9#const: dq 23 db 32, 32, 32, 32, 114, 101, 116, 32, 59, 32, 115, 99, 111, 112, 101, 32, 101, 110, 100, 10, 10, 10, 0 compile._#Function._end_func#9#const#ptr: dq compile._#Function._end_func#9#const + 8 compile._#Function._compile_statements#0#loop#0#wrap#1#if#0#const: dq 5 db 32, 32, 32, 32, 0 compile._#Function._compile_statements#0#loop#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_statements#0#loop#0#wrap#1#if#0#const + 8 compile._#Function._compile_statements#0#loop#0#wrap#1#if#1#const: dq 21 db 32, 59, 32, 85, 115, 101, 114, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 109, 10, 0 compile._#Function._compile_statements#0#loop#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_statements#0#loop#0#wrap#1#if#1#const + 8 compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#0#const: dq 5 db 32, 32, 32, 32, 0 compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#0#const + 8 compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#1#const: dq 21 db 32, 59, 32, 85, 115, 101, 114, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 109, 10, 0 compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#1#const + 8 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const#ptr: dq compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const + 8 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const: dq 8 db 32, 32, 32, 32, 106, 101, 32, 0 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const: dq 2 db 10, 0 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#0#const: dq 5 db 32, 32, 32, 32, 0 compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#0#const + 8 compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#1#const: dq 21 db 32, 59, 32, 85, 115, 101, 114, 32, 100, 101, 102, 105, 110, 101, 100, 32, 97, 115, 109, 10, 0 compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#1#const + 8 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const#ptr: dq compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const + 8 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const: dq 8 db 32, 32, 32, 32, 106, 101, 32, 0 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const: dq 2 db 10, 0 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const#ptr: dq compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const + 8 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const: dq 8 db 32, 32, 32, 32, 106, 101, 32, 0 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const: dq 2 db 10, 0 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Function._compile_if_if#1#const: dq 3 db 105, 102, 0 compile._#Function._compile_if_if#1#const#ptr: dq compile._#Function._compile_if_if#1#const + 8 compile._#Function._compile_if_if#3#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_if_if#3#const#ptr: dq compile._#Function._compile_if_if#3#const + 8 compile._#Function._compile_if_if#4#const: dq 2 db 10, 0 compile._#Function._compile_if_if#4#const#ptr: dq compile._#Function._compile_if_if#4#const + 8 compile._#Function._compile_if#0#const: dq 5 db 119, 114, 97, 112, 0 compile._#Function._compile_if#0#const#ptr: dq compile._#Function._compile_if#0#const + 8 compile._#Function._compile_loop#0#const: dq 5 db 108, 111, 111, 112, 0 compile._#Function._compile_loop#0#const#ptr: dq compile._#Function._compile_loop#0#const + 8 compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 40, 0 compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const: dq 2 db 91, 0 compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 91, 0 compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#1#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#1#const + 8 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#2#const#ptr: dq compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#2#const + 8 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#0#const: dq 8 db 32, 32, 32, 32, 106, 101, 32, 0 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#1#const: dq 2 db 10, 0 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#1#const + 8 compile._#Function._compile_loop#7#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_loop#7#const#ptr: dq compile._#Function._compile_loop#7#const + 8 compile._#Function._compile_loop#8#const: dq 2 db 10, 0 compile._#Function._compile_loop#8#const#ptr: dq compile._#Function._compile_loop#8#const + 8 compile._#Function._check_return#2#const: dq 62 db 69, 82, 82, 79, 82, 58, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 108, 117, 101, 115, 32, 40, 37, 100, 41, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 101, 120, 112, 101, 99, 116, 101, 100, 32, 40, 0 compile._#Function._check_return#2#const#ptr: dq compile._#Function._check_return#2#const + 8 compile._#Function._check_return#3#const: dq 5 db 37, 100, 41, 10, 0 compile._#Function._check_return#3#const#ptr: dq compile._#Function._check_return#3#const + 8 compile._#Function._check_return#4#const: dq 53 db 69, 82, 82, 79, 82, 58, 32, 84, 111, 32, 114, 101, 116, 117, 114, 110, 32, 109, 117, 108, 116, 105, 112, 108, 101, 32, 118, 97, 108, 117, 101, 115, 32, 101, 110, 99, 108, 111, 115, 101, 32, 116, 104, 101, 109, 32, 105, 110, 32, 123, 125, 10, 0 compile._#Function._check_return#4#const#ptr: dq compile._#Function._check_return#4#const + 8 compile._#Function._check_return#5#const: dq 111 db 69, 82, 82, 79, 82, 58, 32, 84, 111, 32, 97, 100, 100, 32, 109, 111, 114, 101, 32, 114, 101, 116, 117, 114, 110, 32, 118, 97, 108, 117, 101, 115, 44, 32, 97, 100, 100, 32, 116, 104, 101, 109, 32, 40, 99, 111, 109, 109, 97, 32, 115, 101, 112, 97, 114, 97, 116, 101, 100, 41, 32, 98, 101, 116, 119, 101, 101, 110, 32, 91, 93, 32, 97, 116, 32, 116, 104, 101, 32, 101, 110, 100, 32, 111, 102, 32, 116, 104, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 100, 101, 102, 105, 110, 105, 116, 105, 111, 110, 10, 0 compile._#Function._check_return#5#const#ptr: dq compile._#Function._check_return#5#const + 8 compile._#Function._check_return#6#const: dq 28 db 69, 82, 82, 79, 82, 58, 32, 79, 70, 70, 69, 78, 68, 73, 78, 71, 32, 70, 85, 78, 67, 84, 73, 79, 78, 58, 10, 0 compile._#Function._check_return#6#const#ptr: dq compile._#Function._check_return#6#const + 8 compile._#Function._compile_return_vals#2#const: dq 24 db 10, 32, 32, 32, 32, 59, 32, 83, 84, 65, 82, 84, 73, 78, 71, 32, 82, 69, 84, 85, 82, 78, 10, 0 compile._#Function._compile_return_vals#2#const#ptr: dq compile._#Function._compile_return_vals#2#const + 8 compile._#Function._return#2#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._return#2#const#ptr: dq compile._#Function._return#2#const + 8 compile._#Function._return#3#const: dq 2 db 10, 0 compile._#Function._return#3#const#ptr: dq compile._#Function._return#3#const + 8 compile._#Function._compile_flow_control#0#wrap#0#if#0#const: dq 7 db 114, 101, 116, 117, 114, 110, 0 compile._#Function._compile_flow_control#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#0#if#0#const + 8 compile._#Function._compile_flow_control#0#wrap#1#if#0#const: dq 9 db 99, 111, 110, 116, 105, 110, 117, 101, 0 compile._#Function._compile_flow_control#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#1#if#0#const + 8 compile._#Function._compile_flow_control#0#wrap#1#if#2#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_flow_control#0#wrap#1#if#2#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#1#if#2#const + 8 compile._#Function._compile_flow_control#0#wrap#1#if#3#const: dq 2 db 10, 0 compile._#Function._compile_flow_control#0#wrap#1#if#3#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#1#if#3#const + 8 compile._#Function._compile_flow_control#0#wrap#2#if#0#const: dq 6 db 98, 114, 101, 97, 107, 0 compile._#Function._compile_flow_control#0#wrap#2#if#0#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#2#if#0#const + 8 compile._#Function._compile_flow_control#0#wrap#2#if#2#const: dq 9 db 32, 32, 32, 32, 106, 109, 112, 32, 0 compile._#Function._compile_flow_control#0#wrap#2#if#2#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#2#if#2#const + 8 compile._#Function._compile_flow_control#0#wrap#2#if#3#const: dq 2 db 10, 0 compile._#Function._compile_flow_control#0#wrap#2#if#3#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#2#if#3#const + 8 compile._#Function._compile_flow_control#0#wrap#3#if#0#const: dq 87 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 84, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 119, 97, 115, 32, 100, 101, 116, 101, 99, 116, 101, 100, 32, 97, 115, 32, 102, 108, 111, 119, 32, 99, 111, 110, 116, 114, 111, 108, 44, 32, 98, 117, 116, 32, 119, 101, 32, 100, 111, 32, 110, 111, 116, 32, 104, 97, 110, 100, 108, 101, 32, 105, 116, 58, 32, 39, 0 compile._#Function._compile_flow_control#0#wrap#3#if#0#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#3#if#0#const + 8 compile._#Function._compile_flow_control#0#wrap#3#if#1#const: dq 3 db 39, 10, 0 compile._#Function._compile_flow_control#0#wrap#3#if#1#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#3#if#1#const + 8 compile._#Function._compile_flow_control#0#wrap#3#if#2#const: dq 89 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 116, 104, 105, 115, 32, 105, 115, 32, 108, 105, 107, 101, 108, 121, 32, 97, 32, 98, 117, 103, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 99, 111, 109, 112, 105, 108, 101, 114, 44, 32, 112, 108, 101, 97, 115, 101, 32, 114, 101, 112, 111, 114, 116, 32, 105, 116, 32, 97, 108, 111, 110, 103, 32, 119, 105, 116, 104, 32, 116, 104, 101, 10, 0 compile._#Function._compile_flow_control#0#wrap#3#if#2#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#3#if#2#const + 8 compile._#Function._compile_flow_control#0#wrap#3#if#3#const: dq 52 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 99, 111, 100, 101, 32, 115, 110, 105, 112, 112, 105, 116, 32, 119, 104, 105, 99, 104, 32, 99, 97, 117, 115, 101, 100, 32, 116, 104, 101, 32, 98, 117, 103, 33, 10, 0 compile._#Function._compile_flow_control#0#wrap#3#if#3#const#ptr: dq compile._#Function._compile_flow_control#0#wrap#3#if#3#const + 8 compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#0#const: dq 26 db 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 105, 110, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 39, 0 compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#1#const: dq 3 db 39, 10, 0 compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#1#const + 8 compile._#Function._compile_call#0#wrap#1#if#0#const: dq 5 db 118, 111, 105, 100, 0 compile._#Function._compile_call#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_call#0#wrap#1#if#0#const + 8 compile._#Function._compile_call#3#wrap#0#if#0#const: dq 33 db 69, 82, 82, 79, 82, 58, 32, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 99, 97, 108, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 34, 0 compile._#Function._compile_call#3#wrap#0#if#0#const#ptr: dq compile._#Function._compile_call#3#wrap#0#if#0#const + 8 compile._#Function._compile_call#3#wrap#0#if#1#const: dq 15 db 34, 32, 102, 114, 111, 109, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Function._compile_call#3#wrap#0#if#1#const#ptr: dq compile._#Function._compile_call#3#wrap#0#if#1#const + 8 compile._#Function._compile_call#3#wrap#0#if#2#const: dq 3 db 34, 10, 0 compile._#Function._compile_call#3#wrap#0#if#2#const#ptr: dq compile._#Function._compile_call#3#wrap#0#if#2#const + 8 compile._#Function._compile_call#3#wrap#0#if#3#const: dq 77 db 32, 32, 32, 32, 32, 32, 32, 78, 117, 109, 98, 101, 114, 32, 111, 102, 32, 97, 114, 103, 117, 109, 101, 110, 116, 115, 32, 40, 37, 100, 41, 32, 100, 105, 100, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 32, 0 compile._#Function._compile_call#3#wrap#0#if#3#const#ptr: dq compile._#Function._compile_call#3#wrap#0#if#3#const + 8 compile._#Function._compile_call#3#wrap#0#if#4#const: dq 6 db 40, 37, 100, 41, 10, 0 compile._#Function._compile_call#3#wrap#0#if#4#const#ptr: dq compile._#Function._compile_call#3#wrap#0#if#4#const + 8 compile._#Function._compile_call#10#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 115, 117, 98, 32, 114, 115, 112, 44, 32, 0 compile._#Function._compile_call#10#wrap#0#if#0#const#ptr: dq compile._#Function._compile_call#10#wrap#0#if#0#const + 8 compile._#Function._compile_call#10#wrap#0#if#1#const: dq 2 db 10, 0 compile._#Function._compile_call#10#wrap#0#if#1#const#ptr: dq compile._#Function._compile_call#10#wrap#0#if#1#const + 8 compile._#Function._compile_call#11#const: dq 10 db 32, 32, 32, 32, 99, 97, 108, 108, 32, 0 compile._#Function._compile_call#11#const#ptr: dq compile._#Function._compile_call#11#const + 8 compile._#Function._compile_call#12#const: dq 2 db 10, 0 compile._#Function._compile_call#12#const#ptr: dq compile._#Function._compile_call#12#const + 8 compile._#Function._compile_call#14#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 97, 100, 100, 32, 114, 115, 112, 44, 32, 0 compile._#Function._compile_call#14#wrap#0#if#0#const#ptr: dq compile._#Function._compile_call#14#wrap#0#if#0#const + 8 compile._#Function._compile_call#14#wrap#0#if#1#const: dq 2 db 10, 0 compile._#Function._compile_call#14#wrap#0#if#1#const#ptr: dq compile._#Function._compile_call#14#wrap#0#if#1#const + 8 compile._#Function._compile_chain_r_post#0#wrap#0#if#0#const: dq 2 db 40, 0 compile._#Function._compile_chain_r_post#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_post#0#wrap#0#if#1#const: dq 52 db 84, 79, 68, 79, 58, 32, 116, 110, 115, 108, 99, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 32, 99, 97, 108, 108, 105, 110, 103, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 10, 0 compile._#Function._compile_chain_r_post#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#0#if#1#const + 8 compile._#Function._compile_chain_r_post#0#wrap#1#if#0#const: dq 2 db 96, 0 compile._#Function._compile_chain_r_post#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#1#if#0#const + 8 compile._#Function._compile_chain_r_post#0#wrap#2#if#0#const: dq 2 db 123, 0 compile._#Function._compile_chain_r_post#0#wrap#2#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#2#if#0#const + 8 compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#0#if#0#const: dq 24 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 100, 105, 44, 32, 114, 97, 120, 32, 59, 32, 105, 100, 120, 10, 0 compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#1#if#0#const: dq 24 db 32, 32, 32, 32, 109, 111, 118, 32, 114, 100, 105, 44, 32, 114, 115, 105, 32, 59, 32, 105, 100, 120, 10, 0 compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#1#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#1#if#0#const + 8 compile._#Function._compile_chain_r_post#0#wrap#3#if#0#const: dq 3 db 43, 43, 0 compile._#Function._compile_chain_r_post#0#wrap#3#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#3#if#0#const + 8 compile._#Function._compile_chain_r_post#0#wrap#4#if#0#const: dq 3 db 45, 45, 0 compile._#Function._compile_chain_r_post#0#wrap#4#if#0#const#ptr: dq compile._#Function._compile_chain_r_post#0#wrap#4#if#0#const + 8 compile._#Function._compile_chain_r_base#0#wrap#0#if#0#const: dq 95 db 84, 79, 68, 79, 58, 32, 116, 110, 115, 108, 99, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 115, 117, 112, 112, 111, 114, 116, 32, 100, 111, 116, 45, 99, 104, 97, 105, 110, 115, 32, 119, 105, 116, 104, 32, 108, 105, 116, 101, 114, 97, 108, 115, 32, 111, 114, 32, 110, 111, 110, 45, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 115, 32, 97, 115, 32, 112, 114, 105, 109, 97, 114, 121, 10, 0 compile._#Function._compile_chain_r_base#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_base#0#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_base#0#wrap#0#if#1#const: dq 95 db 32, 32, 32, 32, 32, 32, 119, 105, 108, 108, 32, 108, 111, 111, 107, 32, 105, 110, 116, 111, 32, 101, 105, 116, 104, 101, 114, 32, 105, 110, 116, 117, 105, 116, 105, 110, 103, 32, 116, 104, 101, 32, 116, 121, 112, 101, 32, 102, 114, 111, 109, 32, 99, 111, 110, 116, 101, 120, 116, 32, 111, 114, 32, 114, 101, 113, 117, 105, 114, 105, 110, 103, 32, 97, 32, 99, 97, 115, 116, 32, 105, 110, 32, 116, 104, 101, 32, 102, 117, 116, 117, 114, 101, 10, 0 compile._#Function._compile_chain_r_base#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_chain_r_base#0#wrap#0#if#1#const + 8 compile._#Function._compile_chain_r_base#0#wrap#0#if#2#const: dq 29 db 32, 32, 32, 32, 32, 32, 79, 102, 102, 101, 110, 100, 105, 110, 103, 32, 116, 111, 107, 101, 110, 32, 119, 97, 115, 58, 32, 34, 0 compile._#Function._compile_chain_r_base#0#wrap#0#if#2#const#ptr: dq compile._#Function._compile_chain_r_base#0#wrap#0#if#2#const + 8 compile._#Function._compile_chain_r_base#0#wrap#0#if#3#const: dq 11 db 34, 32, 111, 102, 32, 116, 121, 112, 101, 32, 0 compile._#Function._compile_chain_r_base#0#wrap#0#if#3#const#ptr: dq compile._#Function._compile_chain_r_base#0#wrap#0#if#3#const + 8 compile._#Function._compile_chain_r_base#0#wrap#0#if#4#const: dq 2 db 10, 0 compile._#Function._compile_chain_r_base#0#wrap#0#if#4#const#ptr: dq compile._#Function._compile_chain_r_base#0#wrap#0#if#4#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 40, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const: dq 52 db 84, 79, 68, 79, 58, 32, 116, 110, 115, 108, 99, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 32, 99, 97, 108, 108, 105, 110, 103, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 10, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const: dq 55 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 114, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 119, 105, 116, 104, 32, 110, 97, 109, 101, 32, 34, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#1#const: dq 13 db 34, 32, 105, 110, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#1#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#1#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#2#const: dq 3 db 34, 10, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#2#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#2#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#0#const: dq 33 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 34, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#1#const: dq 13 db 34, 32, 105, 110, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#2#const: dq 3 db 34, 10, 0 compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#2#const#ptr: dq compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#2#const + 8 compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#0#const: dq 2 db 40, 0 compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#1#const: dq 52 db 84, 79, 68, 79, 58, 32, 116, 110, 115, 108, 99, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 121, 101, 116, 32, 115, 117, 112, 112, 111, 114, 116, 32, 99, 97, 108, 108, 105, 110, 103, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 10, 0 compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#1#const + 8 compile._#Function._compile_chain_r#1#loop#0#wrap#0#if#0#const: dq 2 db 46, 0 compile._#Function._compile_chain_r#1#loop#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#0#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r#1#loop#1#wrap#0#if#0#const: dq 98 db 84, 79, 68, 79, 58, 32, 116, 110, 115, 108, 99, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 115, 117, 112, 112, 111, 114, 116, 32, 100, 111, 116, 45, 99, 104, 97, 105, 110, 115, 32, 119, 105, 116, 104, 32, 108, 105, 116, 101, 114, 97, 108, 115, 32, 111, 114, 32, 110, 111, 110, 45, 105, 100, 101, 110, 116, 105, 102, 105, 101, 114, 115, 32, 105, 110, 32, 116, 104, 101, 32, 109, 105, 100, 100, 108, 101, 10, 0 compile._#Function._compile_chain_r#1#loop#1#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#1#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 40, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const: dq 78 db 84, 79, 68, 79, 58, 32, 84, 78, 83, 76, 32, 100, 111, 101, 115, 110, 39, 116, 32, 99, 117, 114, 114, 101, 110, 116, 108, 121, 32, 104, 97, 118, 101, 32, 103, 111, 111, 100, 32, 115, 117, 112, 112, 111, 114, 116, 32, 102, 111, 114, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 97, 108, 108, 105, 110, 103, 32, 98, 121, 32, 118, 97, 108, 117, 101, 10, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#0#const: dq 55 db 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 114, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 119, 105, 116, 104, 32, 110, 97, 109, 101, 32, 34, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#0#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#1#const: dq 13 db 34, 32, 105, 110, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#1#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#1#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#2#const: dq 3 db 34, 10, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#2#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#2#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#0#const: dq 52 db 69, 82, 82, 79, 82, 58, 32, 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 105, 110, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 40, 100, 111, 116, 32, 99, 104, 97, 105, 110, 32, 101, 110, 100, 115, 32, 105, 110, 32, 34, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#1#const: dq 13 db 34, 32, 105, 110, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#1#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#2#const: dq 3 db 34, 10, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#2#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#2#const + 8 compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 40, 0 compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_bool_op#0#const: dq 5 db 98, 111, 111, 108, 0 compile._#Function._compile_bool_op#0#const#ptr: dq compile._#Function._compile_bool_op#0#const + 8 compile._#Function._compile_bool_op#1#const: dq 5 db 98, 111, 111, 108, 0 compile._#Function._compile_bool_op#1#const#ptr: dq compile._#Function._compile_bool_op#1#const + 8 compile._#Function._compile_bool_op#3#wrap#0#if#0#const: dq 37 db 67, 97, 110, 32, 110, 111, 116, 32, 117, 115, 101, 32, 115, 116, 114, 117, 99, 116, 32, 97, 115, 32, 98, 111, 111, 108, 101, 97, 110, 32, 118, 97, 108, 117, 101, 10, 0 compile._#Function._compile_bool_op#3#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bool_op#3#wrap#0#if#0#const + 8 compile._#Function._compile_bool_op#4#wrap#0#if#0#const: dq 8 db 32, 32, 32, 32, 106, 101, 32, 0 compile._#Function._compile_bool_op#4#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bool_op#4#wrap#0#if#0#const + 8 compile._#Function._compile_bool_op#4#wrap#0#if#1#const: dq 2 db 10, 0 compile._#Function._compile_bool_op#4#wrap#0#if#1#const#ptr: dq compile._#Function._compile_bool_op#4#wrap#0#if#1#const + 8 compile._#Function._compile_bool_op#4#wrap#1#if#0#const: dq 9 db 32, 32, 32, 32, 106, 110, 101, 32, 0 compile._#Function._compile_bool_op#4#wrap#1#if#0#const#ptr: dq compile._#Function._compile_bool_op#4#wrap#1#if#0#const + 8 compile._#Function._compile_bool_op#4#wrap#1#if#1#const: dq 2 db 10, 0 compile._#Function._compile_bool_op#4#wrap#1#if#1#const#ptr: dq compile._#Function._compile_bool_op#4#wrap#1#if#1#const + 8 compile._#Function._compile_bool_op#5#wrap#0#if#0#const: dq 37 db 67, 97, 110, 32, 110, 111, 116, 32, 117, 115, 101, 32, 115, 116, 114, 117, 99, 116, 32, 97, 115, 32, 98, 111, 111, 108, 101, 97, 110, 32, 118, 97, 108, 117, 101, 10, 0 compile._#Function._compile_bool_op#5#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bool_op#5#wrap#0#if#0#const + 8 compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#0#if#0#const: dq 2 db 101, 0 compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#0#if#0#const + 8 compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#1#if#0#const: dq 2 db 101, 0 compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#1#if#0#const#ptr: dq compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#1#if#0#const + 8 compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#0#if#0#const: dq 2 db 101, 0 compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#1#if#0#const: dq 3 db 110, 101, 0 compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#1#if#0#const + 8 compile._#Function._compile_cmp_op#0#const: dq 5 db 98, 111, 111, 108, 0 compile._#Function._compile_cmp_op#0#const#ptr: dq compile._#Function._compile_cmp_op#0#const + 8 compile._#Function._compile_cmp_op#3#wrap#0#if#1#const: dq 49 db 67, 97, 110, 32, 110, 111, 116, 32, 99, 111, 109, 112, 97, 114, 101, 32, 115, 116, 114, 117, 99, 116, 115, 32, 105, 110, 32, 116, 104, 105, 115, 32, 118, 101, 114, 115, 105, 111, 110, 32, 111, 102, 32, 116, 110, 115, 108, 10, 0 compile._#Function._compile_cmp_op#3#wrap#0#if#1#const#ptr: dq compile._#Function._compile_cmp_op#3#wrap#0#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#0#if#0#const: dq 3 db 61, 61, 0 compile._#Function._compile_cmp_op#5#wrap#0#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#0#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#0#if#1#const: dq 2 db 101, 0 compile._#Function._compile_cmp_op#5#wrap#0#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#0#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#1#if#0#const: dq 2 db 60, 0 compile._#Function._compile_cmp_op#5#wrap#1#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#1#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#1#if#1#const: dq 2 db 108, 0 compile._#Function._compile_cmp_op#5#wrap#1#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#1#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#2#if#0#const: dq 2 db 62, 0 compile._#Function._compile_cmp_op#5#wrap#2#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#2#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#2#if#1#const: dq 2 db 103, 0 compile._#Function._compile_cmp_op#5#wrap#2#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#2#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#3#if#0#const: dq 4 db 33, 61, 61, 0 compile._#Function._compile_cmp_op#5#wrap#3#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#3#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#3#if#1#const: dq 3 db 110, 101, 0 compile._#Function._compile_cmp_op#5#wrap#3#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#3#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#4#if#0#const: dq 3 db 33, 60, 0 compile._#Function._compile_cmp_op#5#wrap#4#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#4#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#4#if#1#const: dq 3 db 110, 108, 0 compile._#Function._compile_cmp_op#5#wrap#4#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#4#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#5#if#0#const: dq 3 db 33, 62, 0 compile._#Function._compile_cmp_op#5#wrap#5#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#5#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#5#if#1#const: dq 3 db 110, 103, 0 compile._#Function._compile_cmp_op#5#wrap#5#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#5#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#6#if#0#const: dq 4 db 60, 61, 61, 0 compile._#Function._compile_cmp_op#5#wrap#6#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#6#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#6#if#1#const: dq 3 db 108, 101, 0 compile._#Function._compile_cmp_op#5#wrap#6#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#6#if#1#const + 8 compile._#Function._compile_cmp_op#5#wrap#7#if#0#const: dq 4 db 62, 61, 61, 0 compile._#Function._compile_cmp_op#5#wrap#7#if#0#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#7#if#0#const + 8 compile._#Function._compile_cmp_op#5#wrap#7#if#1#const: dq 3 db 103, 101, 0 compile._#Function._compile_cmp_op#5#wrap#7#if#1#const#ptr: dq compile._#Function._compile_cmp_op#5#wrap#7#if#1#const + 8 compile._#Function._compile_bin#0#wrap#0#if#0#const: dq 2 db 46, 0 compile._#Function._compile_bin#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bin#0#wrap#0#if#0#const + 8 compile._#Function._compile_bin#1#wrap#0#if#0#const: dq 2 db 61, 0 compile._#Function._compile_bin#1#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bin#1#wrap#0#if#0#const + 8 compile._#Function._compile_bin#4#wrap#0#if#0#const: dq 2 db 42, 0 compile._#Function._compile_bin#4#wrap#0#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#0#if#0#const + 8 compile._#Function._compile_bin#4#wrap#1#if#0#const: dq 2 db 47, 0 compile._#Function._compile_bin#4#wrap#1#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#1#if#0#const + 8 compile._#Function._compile_bin#4#wrap#2#if#0#const: dq 2 db 37, 0 compile._#Function._compile_bin#4#wrap#2#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#2#if#0#const + 8 compile._#Function._compile_bin#4#wrap#3#if#0#const: dq 2 db 43, 0 compile._#Function._compile_bin#4#wrap#3#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#3#if#0#const + 8 compile._#Function._compile_bin#4#wrap#4#if#0#const: dq 2 db 45, 0 compile._#Function._compile_bin#4#wrap#4#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#4#if#0#const + 8 compile._#Function._compile_bin#4#wrap#5#if#0#const: dq 2 db 38, 0 compile._#Function._compile_bin#4#wrap#5#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#5#if#0#const + 8 compile._#Function._compile_bin#4#wrap#6#if#0#const: dq 2 db 124, 0 compile._#Function._compile_bin#4#wrap#6#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#6#if#0#const + 8 compile._#Function._compile_bin#4#wrap#7#if#0#const: dq 2 db 94, 0 compile._#Function._compile_bin#4#wrap#7#if#0#const#ptr: dq compile._#Function._compile_bin#4#wrap#7#if#0#const + 8 compile._#Function._compile_pre#0#wrap#0#if#0#const: dq 2 db 45, 0 compile._#Function._compile_pre#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#0#if#0#const + 8 compile._#Function._compile_pre#0#wrap#1#if#0#const: dq 2 db 33, 0 compile._#Function._compile_pre#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#1#if#0#const + 8 compile._#Function._compile_pre#0#wrap#2#if#0#const: dq 2 db 126, 0 compile._#Function._compile_pre#0#wrap#2#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#2#if#0#const + 8 compile._#Function._compile_pre#0#wrap#3#if#0#const: dq 3 db 45, 45, 0 compile._#Function._compile_pre#0#wrap#3#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#3#if#0#const + 8 compile._#Function._compile_pre#0#wrap#4#if#0#const: dq 3 db 43, 43, 0 compile._#Function._compile_pre#0#wrap#4#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#4#if#0#const + 8 compile._#Function._compile_pre#0#wrap#5#if#0#const: dq 4 db 108, 101, 110, 0 compile._#Function._compile_pre#0#wrap#5#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#5#if#0#const + 8 compile._#Function._compile_pre#0#wrap#5#if#1#const: dq 4 db 108, 101, 110, 0 compile._#Function._compile_pre#0#wrap#5#if#1#const#ptr: dq compile._#Function._compile_pre#0#wrap#5#if#1#const + 8 compile._#Function._compile_pre#0#wrap#5#if#2#const: dq 5 db 117, 105, 110, 116, 0 compile._#Function._compile_pre#0#wrap#5#if#2#const#ptr: dq compile._#Function._compile_pre#0#wrap#5#if#2#const + 8 compile._#Function._compile_pre#0#wrap#6#if#0#const: dq 18 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 34, 0 compile._#Function._compile_pre#0#wrap#6#if#0#const#ptr: dq compile._#Function._compile_pre#0#wrap#6#if#0#const + 8 compile._#Function._compile_pre#0#wrap#6#if#1#const: dq 35 db 34, 32, 78, 79, 84, 32, 82, 69, 67, 79, 71, 78, 73, 90, 69, 68, 32, 65, 83, 32, 65, 32, 86, 65, 76, 73, 68, 32, 80, 82, 69, 79, 80, 10, 0 compile._#Function._compile_pre#0#wrap#6#if#1#const#ptr: dq compile._#Function._compile_pre#0#wrap#6#if#1#const + 8 compile._#Function._compile_literal#0#wrap#0#if#0#const: dq 5 db 116, 114, 117, 101, 0 compile._#Function._compile_literal#0#wrap#0#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#0#if#0#const + 8 compile._#Function._compile_literal#0#wrap#0#if#1#const: dq 5 db 98, 111, 111, 108, 0 compile._#Function._compile_literal#0#wrap#0#if#1#const#ptr: dq compile._#Function._compile_literal#0#wrap#0#if#1#const + 8 compile._#Function._compile_literal#0#wrap#1#if#0#const: dq 6 db 102, 97, 108, 115, 101, 0 compile._#Function._compile_literal#0#wrap#1#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#1#if#0#const + 8 compile._#Function._compile_literal#0#wrap#1#if#1#const: dq 5 db 98, 111, 111, 108, 0 compile._#Function._compile_literal#0#wrap#1#if#1#const#ptr: dq compile._#Function._compile_literal#0#wrap#1#if#1#const + 8 compile._#Function._compile_literal#0#wrap#2#if#0#const: dq 5 db 110, 117, 108, 108, 0 compile._#Function._compile_literal#0#wrap#2#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#2#if#0#const + 8 compile._#Function._compile_literal#0#wrap#2#if#1#const: dq 5 db 118, 111, 105, 100, 0 compile._#Function._compile_literal#0#wrap#2#if#1#const#ptr: dq compile._#Function._compile_literal#0#wrap#2#if#1#const + 8 compile._#Function._compile_literal#0#wrap#3#if#0#const: dq 6 db 117, 105, 110, 116, 56, 0 compile._#Function._compile_literal#0#wrap#3#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#3#if#0#const + 8 compile._#Function._compile_literal#0#wrap#4#if#0#const: dq 10 db 58, 10, 32, 32, 32, 32, 100, 113, 32, 0 compile._#Function._compile_literal#0#wrap#4#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#0#const + 8 compile._#Function._compile_literal#0#wrap#4#if#1#const: dq 9 db 10, 32, 32, 32, 32, 100, 98, 32, 0 compile._#Function._compile_literal#0#wrap#4#if#1#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#1#const + 8 compile._#Function._compile_literal#0#wrap#4#if#2#loop#0#const: dq 3 db 44, 32, 0 compile._#Function._compile_literal#0#wrap#4#if#2#loop#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#2#loop#0#const + 8 compile._#Function._compile_literal#0#wrap#4#if#3#wrap#1#if#0#const: dq 2 db 48, 0 compile._#Function._compile_literal#0#wrap#4#if#3#wrap#1#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#3#wrap#1#if#0#const + 8 compile._#Function._compile_literal#0#wrap#4#if#4#const: dq 2 db 10, 0 compile._#Function._compile_literal#0#wrap#4#if#4#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#4#const + 8 compile._#Function._compile_literal#0#wrap#4#if#5#const: dq 5 db 35, 112, 116, 114, 0 compile._#Function._compile_literal#0#wrap#4#if#5#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#5#const + 8 compile._#Function._compile_literal#0#wrap#4#if#6#const: dq 10 db 58, 10, 32, 32, 32, 32, 100, 113, 32, 0 compile._#Function._compile_literal#0#wrap#4#if#6#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#6#const + 8 compile._#Function._compile_literal#0#wrap#4#if#7#const: dq 6 db 32, 43, 32, 56, 10, 0 compile._#Function._compile_literal#0#wrap#4#if#7#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#7#const + 8 compile._#Function._compile_literal#0#wrap#4#if#8#const: dq 6 db 117, 105, 110, 116, 56, 0 compile._#Function._compile_literal#0#wrap#4#if#8#const#ptr: dq compile._#Function._compile_literal#0#wrap#4#if#8#const + 8 compile._#Function._compile_literal#0#wrap#5#if#0#const: dq 4 db 105, 110, 116, 0 compile._#Function._compile_literal#0#wrap#5#if#0#const#ptr: dq compile._#Function._compile_literal#0#wrap#5#if#0#const + 8 compile._#Function._print_artifact#0#loop#0#wrap#0#if#0#const: dq 2 db 46, 0 compile._#Function._print_artifact#0#loop#0#wrap#0#if#0#const#ptr: dq compile._#Function._print_artifact#0#loop#0#wrap#0#if#0#const + 8 compile._#Function._compile_value#1#const: dq 37 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 78, 79, 84, 32, 73, 77, 80, 76, 32, 78, 79, 68, 69, 32, 84, 89, 80, 69, 32, 34, 0 compile._#Function._compile_value#1#const#ptr: dq compile._#Function._compile_value#1#const + 8 compile._#Function._compile_value#2#const: dq 27 db 34, 32, 73, 78, 32, 82, 79, 79, 84, 32, 86, 65, 76, 32, 67, 79, 77, 80, 85, 84, 65, 84, 73, 79, 78, 10, 0 compile._#Function._compile_value#2#const#ptr: dq compile._#Function._compile_value#2#const + 8 compile._#Function._print#0#const: dq 14 db 123, 32, 70, 117, 110, 99, 116, 105, 111, 110, 32, 58, 32, 0 compile._#Function._print#0#const#ptr: dq compile._#Function._print#0#const + 8 compile._#Function._print#1#const: dq 2 db 10, 0 compile._#Function._print#1#const#ptr: dq compile._#Function._print#1#const + 8 compile._#Function._print#2#const: dq 9 db 105, 110, 112, 117, 116, 115, 58, 10, 0 compile._#Function._print#2#const#ptr: dq compile._#Function._print#2#const + 8 compile._#Function._print#4#const: dq 10 db 111, 117, 116, 112, 117, 116, 115, 58, 10, 0 compile._#Function._print#4#const#ptr: dq compile._#Function._print#4#const + 8 compile._#Function._print#6#const: dq 3 db 125, 10, 0 compile._#Function._print#6#const#ptr: dq compile._#Function._print#6#const + 8 compile._#Module.update_children#1#loop#0#const: dq 3 db 95, 35, 0 compile._#Module.update_children#1#loop#0#const#ptr: dq compile._#Module.update_children#1#loop#0#const + 8 compile._#Module._create_methods#0#const: dq 3 db 95, 35, 0 compile._#Module._create_methods#0#const#ptr: dq compile._#Module._create_methods#0#const + 8 compile._#Module.related_type#2#const: dq 61 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 85, 78, 65, 66, 76, 69, 32, 116, 111, 32, 102, 105, 110, 100, 32, 97, 32, 115, 117, 116, 97, 98, 108, 101, 32, 115, 116, 114, 117, 99, 116, 32, 102, 111, 114, 32, 109, 111, 100, 117, 108, 101, 32, 34, 0 compile._#Module.related_type#2#const#ptr: dq compile._#Module.related_type#2#const + 8 compile._#Module.related_type#3#const: dq 3 db 34, 10, 0 compile._#Module.related_type#3#const#ptr: dq compile._#Module.related_type#3#const + 8 compile._#Module._from_tree#0#loop#0#wrap#5#if#0#const: dq 2 db 10, 0 compile._#Module._from_tree#0#loop#0#wrap#5#if#0#const#ptr: dq compile._#Module._from_tree#0#loop#0#wrap#5#if#0#const + 8 compile._#Module._method_id#1#const: dq 3 db 95, 35, 0 compile._#Module._method_id#1#const#ptr: dq compile._#Module._method_id#1#const + 8 compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#0#if#0#const: dq 25 db 70, 111, 117, 110, 100, 32, 109, 111, 100, 117, 108, 101, 32, 102, 111, 114, 32, 109, 101, 116, 104, 111, 100, 10, 0 compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#1#if#0#const: dq 34 db 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 105, 110, 100, 32, 109, 111, 100, 117, 108, 101, 32, 102, 111, 114, 32, 109, 101, 116, 104, 111, 100, 10, 0 compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#1#if#0#const#ptr: dq compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#1#if#0#const + 8 compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#1#if#0#const: dq 34 db 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 105, 110, 100, 32, 109, 111, 100, 117, 108, 101, 32, 102, 111, 114, 32, 109, 101, 116, 104, 111, 100, 10, 0 compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#1#if#0#const#ptr: dq compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#1#if#0#const + 8 compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#1#if#0#const: dq 34 db 70, 97, 105, 108, 101, 100, 32, 116, 111, 32, 102, 105, 110, 100, 32, 109, 111, 100, 117, 108, 101, 32, 102, 111, 114, 32, 109, 101, 116, 104, 111, 100, 10, 0 compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#1#if#0#const#ptr: dq compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#1#if#0#const + 8 compile._#Module._print#0#const: dq 12 db 123, 32, 77, 111, 100, 117, 108, 101, 32, 58, 32, 0 compile._#Module._print#0#const#ptr: dq compile._#Module._print#0#const + 8 compile._#Module._print#1#const: dq 2 db 10, 0 compile._#Module._print#1#const#ptr: dq compile._#Module._print#1#const + 8 compile._#Module._print#6#const: dq 3 db 125, 10, 0 compile._#Module._print#6#const#ptr: dq compile._#Module._print#6#const + 8 compile._#Scope.print#0#const: dq 22 db 61, 61, 61, 61, 32, 83, 67, 79, 80, 69, 32, 68, 65, 84, 65, 32, 61, 61, 61, 61, 10, 0 compile._#Scope.print#0#const#ptr: dq compile._#Scope.print#0#const + 8 compile._#Scope.print#1#const: dq 14 db 83, 99, 111, 112, 101, 32, 108, 97, 98, 101, 108, 58, 32, 0 compile._#Scope.print#1#const#ptr: dq compile._#Scope.print#1#const + 8 compile._#Scope.print#2#const: dq 3 db 10, 10, 0 compile._#Scope.print#2#const#ptr: dq compile._#Scope.print#2#const + 8 compile._#Scope.print#3#const: dq 19 db 80, 114, 101, 45, 116, 114, 97, 99, 107, 101, 100, 32, 118, 97, 114, 115, 58, 10, 0 compile._#Scope.print#3#const#ptr: dq compile._#Scope.print#3#const + 8 compile._#Scope.print#5#const: dq 22 db 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 10, 0 compile._#Scope.print#5#const#ptr: dq compile._#Scope.print#5#const + 8 compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#0#if#0#const: dq 74 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 83, 104, 111, 117, 108, 100, 32, 104, 97, 118, 101, 32, 116, 121, 112, 101, 32, 110, 111, 100, 101, 32, 98, 101, 102, 111, 114, 101, 32, 102, 105, 114, 115, 116, 32, 105, 100, 32, 105, 110, 32, 100, 101, 99, 108, 47, 100, 108, 105, 115, 116, 32, 110, 111, 100, 101, 10, 0 compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#0#if#0#const#ptr: dq compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#0#if#0#const + 8 compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#0#if#0#const: dq 2 db 126, 0 compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#0#if#0#const#ptr: dq compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#0#if#0#const + 8 compile._#Scope.find_var#2#const: dq 24 db 69, 82, 82, 79, 82, 58, 32, 70, 111, 117, 110, 100, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 34, 0 compile._#Scope.find_var#2#const#ptr: dq compile._#Scope.find_var#2#const + 8 compile._#Scope.find_var#3#const: dq 55 db 34, 32, 98, 117, 116, 32, 105, 116, 32, 100, 111, 101, 115, 110, 39, 116, 32, 108, 111, 111, 107, 32, 108, 105, 107, 101, 32, 105, 116, 39, 115, 32, 98, 101, 101, 110, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 32, 121, 101, 116, 33, 10, 0 compile._#Scope.find_var#3#const#ptr: dq compile._#Scope.find_var#3#const + 8 compile._#Scope.find_var#4#const: dq 13 db 32, 32, 32, 32, 76, 111, 99, 58, 32, 37, 100, 10, 0 compile._#Scope.find_var#4#const#ptr: dq compile._#Scope.find_var#4#const + 8 compile._#Scope.find_var#5#const: dq 16 db 32, 32, 32, 32, 79, 102, 102, 115, 101, 116, 58, 32, 37, 100, 10, 0 compile._#Scope.find_var#5#const#ptr: dq compile._#Scope.find_var#5#const + 8 compile._#Scope.mk_var#2#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 115, 117, 98, 32, 114, 115, 112, 44, 32, 0 compile._#Scope.mk_var#2#wrap#0#if#0#const#ptr: dq compile._#Scope.mk_var#2#wrap#0#if#0#const + 8 compile._#Scope.mk_var#2#wrap#0#if#1#const: dq 42 db 32, 59, 32, 67, 114, 101, 97, 116, 101, 32, 115, 116, 97, 99, 107, 32, 115, 112, 97, 99, 101, 32, 102, 111, 114, 32, 108, 111, 99, 97, 108, 32, 118, 97, 114, 105, 97, 98, 108, 101, 32, 0 compile._#Scope.mk_var#2#wrap#0#if#1#const#ptr: dq compile._#Scope.mk_var#2#wrap#0#if#1#const + 8 compile._#Scope.mk_var#2#wrap#0#if#2#const: dq 2 db 10, 0 compile._#Scope.mk_var#2#wrap#0#if#2#const#ptr: dq compile._#Scope.mk_var#2#wrap#0#if#2#const + 8 compile._#Scope.mk_tmp#1#wrap#0#if#0#const: dq 14 db 32, 32, 32, 32, 115, 117, 98, 32, 114, 115, 112, 44, 32, 0 compile._#Scope.mk_tmp#1#wrap#0#if#0#const#ptr: dq compile._#Scope.mk_tmp#1#wrap#0#if#0#const + 8 compile._#Scope.mk_tmp#1#wrap#0#if#1#const: dq 40 db 32, 59, 32, 67, 114, 101, 97, 116, 101, 32, 115, 116, 97, 99, 107, 32, 115, 112, 97, 99, 101, 32, 102, 111, 114, 32, 116, 109, 112, 32, 118, 97, 114, 105, 97, 98, 108, 101, 10, 0 compile._#Scope.mk_tmp#1#wrap#0#if#1#const#ptr: dq compile._#Scope.mk_tmp#1#wrap#0#if#1#const + 8 compile._#Scope.mk_tmp_stack#0#const: dq 14 db 32, 32, 32, 32, 115, 117, 98, 32, 114, 115, 112, 44, 32, 0 compile._#Scope.mk_tmp_stack#0#const#ptr: dq compile._#Scope.mk_tmp_stack#0#const + 8 compile._#Scope.mk_tmp_stack#1#const: dq 40 db 32, 59, 32, 67, 114, 101, 97, 116, 101, 32, 115, 116, 97, 99, 107, 32, 115, 112, 97, 99, 101, 32, 102, 111, 114, 32, 116, 109, 112, 32, 118, 97, 114, 105, 97, 98, 108, 101, 10, 0 compile._#Scope.mk_tmp_stack#1#const#ptr: dq compile._#Scope.mk_tmp_stack#1#const + 8 compile._#Scope.free_tmp#2#wrap#0#if#0#const: dq 21 db 32, 32, 32, 32, 108, 101, 97, 32, 114, 115, 112, 44, 32, 91, 114, 98, 112, 32, 45, 32, 0 compile._#Scope.free_tmp#2#wrap#0#if#0#const#ptr: dq compile._#Scope.free_tmp#2#wrap#0#if#0#const + 8 compile._#Scope.free_tmp#2#wrap#0#if#1#const: dq 46 db 93, 32, 59, 32, 70, 114, 101, 101, 32, 115, 116, 97, 99, 107, 32, 115, 112, 97, 99, 101, 32, 40, 102, 114, 101, 101, 105, 110, 103, 32, 116, 109, 112, 32, 118, 97, 114, 105, 97, 98, 108, 101, 115, 41, 10, 0 compile._#Scope.free_tmp#2#wrap#0#if#1#const#ptr: dq compile._#Scope.free_tmp#2#wrap#0#if#1#const + 8 compile._#Scope.free_to#1#wrap#0#if#0#const: dq 58 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 116, 101, 109, 112, 32, 116, 111, 32, 102, 114, 101, 101, 32, 116, 111, 32, 105, 110, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Scope.free_to#1#wrap#0#if#0#const#ptr: dq compile._#Scope.free_to#1#wrap#0#if#0#const + 8 compile._#Scope.free_to#1#wrap#0#if#1#const: dq 3 db 34, 10, 0 compile._#Scope.free_to#1#wrap#0#if#1#const#ptr: dq compile._#Scope.free_to#1#wrap#0#if#1#const + 8 compile._#Scope.free_to#1#wrap#0#if#2#const: dq 76 db 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 87, 97, 115, 32, 108, 111, 111, 107, 105, 110, 103, 32, 102, 111, 114, 32, 116, 109, 112, 32, 119, 105, 116, 104, 32, 111, 102, 102, 115, 101, 116, 32, 37, 100, 32, 98, 117, 116, 32, 99, 111, 117, 108, 100, 32, 110, 111, 116, 32, 102, 105, 110, 100, 32, 111, 110, 101, 46, 10, 0 compile._#Scope.free_to#1#wrap#0#if#2#const#ptr: dq compile._#Scope.free_to#1#wrap#0#if#2#const + 8 compile._#Scope.free_after#1#wrap#0#if#0#const: dq 58 db 67, 79, 77, 80, 73, 76, 69, 82, 32, 69, 82, 82, 79, 82, 58, 32, 85, 110, 97, 98, 108, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 116, 101, 109, 112, 32, 116, 111, 32, 102, 114, 101, 101, 32, 116, 111, 32, 105, 110, 32, 115, 99, 111, 112, 101, 32, 34, 0 compile._#Scope.free_after#1#wrap#0#if#0#const#ptr: dq compile._#Scope.free_after#1#wrap#0#if#0#const + 8 compile._#Scope.free_after#1#wrap#0#if#1#const: dq 3 db 34, 10, 0 compile._#Scope.free_after#1#wrap#0#if#1#const#ptr: dq compile._#Scope.free_after#1#wrap#0#if#1#const + 8 compile._#Scope.free_after#1#wrap#0#if#2#const: dq 76 db 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 87, 97, 115, 32, 108, 111, 111, 107, 105, 110, 103, 32, 102, 111, 114, 32, 116, 109, 112, 32, 119, 105, 116, 104, 32, 111, 102, 102, 115, 101, 116, 32, 37, 100, 32, 98, 117, 116, 32, 99, 111, 117, 108, 100, 32, 110, 111, 116, 32, 102, 105, 110, 100, 32, 111, 110, 101, 46, 10, 0 compile._#Scope.free_after#1#wrap#0#if#2#const#ptr: dq compile._#Scope.free_after#1#wrap#0#if#2#const + 8 compile._#Scope._closest_break#0#wrap#0#if#0#const: dq 6 db 35, 119, 114, 97, 112, 0 compile._#Scope._closest_break#0#wrap#0#if#0#const#ptr: dq compile._#Scope._closest_break#0#wrap#0#if#0#const + 8 compile._#Scope._closest_break#0#wrap#1#if#0#const: dq 6 db 35, 108, 111, 111, 112, 0 compile._#Scope._closest_break#0#wrap#1#if#0#const#ptr: dq compile._#Scope._closest_break#0#wrap#1#if#0#const + 8 compile._#Scope.closest_break#1#wrap#0#if#0#const: dq 6 db 35, 119, 114, 97, 112, 0 compile._#Scope.closest_break#1#wrap#0#if#0#const#ptr: dq compile._#Scope.closest_break#1#wrap#0#if#0#const + 8 compile._#Scope.closest_loop#0#wrap#0#if#0#const: dq 6 db 35, 108, 111, 111, 112, 0 compile._#Scope.closest_loop#0#wrap#0#if#0#const#ptr: dq compile._#Scope.closest_loop#0#wrap#0#if#0#const + 8 compile._#Scope.place_base_label#0#const: dq 3 db 58, 10, 0 compile._#Scope.place_base_label#0#const#ptr: dq compile._#Scope.place_base_label#0#const + 8 compile._#Scope.start_label#0#const: dq 7 db 35, 115, 116, 97, 114, 116, 0 compile._#Scope.start_label#0#const#ptr: dq compile._#Scope.start_label#0#const + 8 compile._#Scope.place_start_label#0#const: dq 3 db 58, 10, 0 compile._#Scope.place_start_label#0#const#ptr: dq compile._#Scope.place_start_label#0#const + 8 compile._#Scope.rep_label#0#const: dq 5 db 35, 114, 101, 112, 0 compile._#Scope.rep_label#0#const#ptr: dq compile._#Scope.rep_label#0#const + 8 compile._#Scope.place_rep_label#0#const: dq 3 db 58, 10, 0 compile._#Scope.place_rep_label#0#const#ptr: dq compile._#Scope.place_rep_label#0#const + 8 compile._#Scope.end_label#0#const: dq 5 db 35, 101, 110, 100, 0 compile._#Scope.end_label#0#const#ptr: dq compile._#Scope.end_label#0#const + 8 compile._#Scope.place_end_label#0#const: dq 3 db 58, 10, 0 compile._#Scope.place_end_label#0#const#ptr: dq compile._#Scope.place_end_label#0#const + 8 compile._#Scope.gen_const_name#0#const: dq 7 db 35, 99, 111, 110, 115, 116, 0 compile._#Scope.gen_const_name#0#const#ptr: dq compile._#Scope.gen_const_name#0#const + 8 section .text _alloc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, 0 ; User defined asm xor rax, rax ; User defined asm call malloc wrt ..plt ; User defined asm mov r11, rax ; User defined asm ; STARTING RETURN mov rax, r11 ; (SET) jmp _alloc#end _alloc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _realloc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, r11 ; User defined asm xor rax, rax ; User defined asm call realloc wrt ..plt ; User defined asm mov r12, rax ; User defined asm ; STARTING RETURN mov rax, r12 ; (SET) jmp _realloc#end _realloc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _delete: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, 0 ; User defined asm xor rax, rax ; User defined asm call free wrt ..plt ; User defined asm _delete#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _putchar: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm xor rsi, rsi ; User defined asm xor rax, rax ; User defined asm call putchar wrt ..plt ; User defined asm _putchar#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _printf: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je _printf#0#loop#end _printf#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [r10] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _putchar _printf#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je _printf#0#loop#end jmp _printf#0#loop#start _printf#0#loop#end: _printf#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _print_num: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, r11 ; User defined asm xor rax, rax ; User defined asm call printf wrt ..plt ; User defined asm _print_num#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _create_file: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, 0q1102 ; User defined asm mov rdx, 0q700 ; User defined asm call open wrt ..plt ; User defined asm mov r11, rax ; User defined asm ; STARTING RETURN mov rax, r11 ; (SET) jmp _create_file#end _create_file#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _open_file: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, 2 ; User defined asm mov rdx, 0q700 ; User defined asm call open wrt ..plt ; User defined asm mov r11, rax ; User defined asm ; STARTING RETURN mov rax, r11 ; (SET) jmp _open_file#end _open_file#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _close_file: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm call close wrt ..plt ; User defined asm _close_file#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _read_byte: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, r11 ; User defined asm mov rdx, 1 ; User defined asm call read wrt ..plt ; User defined asm mov r12, rax ; User defined asm ; STARTING RETURN mov rax, r12 ; (SET) jmp _read_byte#end _read_byte#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _fseek: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, r11 ; User defined asm mov rdx, 0 ; User defined asm call lseek wrt ..plt ; User defined asm mov r12, rax ; User defined asm ; STARTING RETURN mov rax, r12 ; (SET) jmp _fseek#end _fseek#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _write_byte: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm mov rsi, r11 ; User defined asm mov rdx, 1 ; User defined asm call write wrt ..plt ; User defined asm mov r12, rax ; User defined asm ; STARTING RETURN mov rax, r12 ; (SET) jmp _write_byte#end _write_byte#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end _perror: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov rax, rsp ; User defined asm xor rdx, rdx ; User defined asm mov rcx, 16 ; User defined asm div rcx ; User defined asm sub rsp, rdx ; User defined asm sub rsp, 128 ; User defined asm mov rdi, r10 ; User defined asm xor rsi, rsi ; User defined asm xor rax, rax ; User defined asm call perror wrt ..plt ; User defined asm _perror#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end print_alert: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel _alert] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf print_alert#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end main: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r10, rdi ; User defined asm mov r11, rsi ; User defined asm cmp r10, 2 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel USAGE] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, 1 ; (SET) jmp main#end jmp main#0#wrap#end main#0#wrap#0#if#end: main#0#wrap#end: sub rsp, 37 ; Create stack space for local variable fin sub rsp, 37 ; Create stack space for local variable fout mov r12, 1 ; (SET) mov r13, 0 ; (SET) mov rbx, r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 8 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r14, qword [rax] ; (SET) mov r8, r14 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 45 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#1#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 131], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov r8, r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 8 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rsi, qword [rax] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rsi, qword [rel main#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 147], rsi ; (SET) mov rax, qword [rbp - 139] ; (SET) mov rbx, qword [rbp - 147] ; (SET) lea rsp, [rbp - 131] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#1#wrap#0#if#0#wrap#0#if#end mov r13, 1 ; (SET) mov rbx, r12 ; (SET) inc r12 ; (UNARY) jmp main#1#wrap#0#if#0#wrap#end main#1#wrap#0#if#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 131], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov r8, r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 8 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rsi, qword [rax] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rsi, qword [rel main#1#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 147], rsi ; (SET) mov rax, qword [rbp - 139] ; (SET) mov rbx, qword [rbp - 147] ; (SET) lea rsp, [rbp - 131] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#1#wrap#0#if#0#wrap#1#if#end mov r13, 2 ; (SET) mov rbx, r12 ; (SET) inc r12 ; (UNARY) jmp main#1#wrap#0#if#0#wrap#end main#1#wrap#0#if#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 131], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov r8, r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 8 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rsi, qword [rax] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rsi, qword [rel main#1#wrap#0#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 147], rsi ; (SET) mov rax, qword [rbp - 139] ; (SET) mov rbx, qword [rbp - 147] ; (SET) lea rsp, [rbp - 131] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#1#wrap#0#if#0#wrap#2#if#end mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, r10 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#1#wrap#0#if#0#wrap#2#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel USAGE] ; (SET_PRM_R) mov qword [rbp - 138], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, 1 ; (SET) jmp main#end jmp main#1#wrap#0#if#0#wrap#2#if#1#wrap#end main#1#wrap#0#if#0#wrap#2#if#1#wrap#0#if#end: main#1#wrap#0#if#0#wrap#2#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 130] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rax ; (SET) mov rbx, r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 8 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rsi, qword [rax] ; (SET_PRM_R) mov qword [rbp - 146], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) mov rbx, qword [rbp - 146] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call utils._#File.init jmp main#1#wrap#0#if#0#wrap#end main#1#wrap#0#if#0#wrap#2#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel USAGE] ; (SET_PRM_R) mov qword [rbp - 138], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, 1 ; (SET) jmp main#end jmp main#1#wrap#0#if#0#wrap#end main#1#wrap#0#if#0#wrap#3#if#end: main#1#wrap#0#if#0#wrap#end: jmp main#1#wrap#end main#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 130] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rax ; (SET) mov rsi, qword [rel DEFAULT_FOUT] ; (SET_PRM_R) mov qword [rbp - 146], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) mov rbx, qword [rbp - 146] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call utils._#File.init jmp main#1#wrap#end main#1#wrap#1#if#end: main#1#wrap#end: cmp r12, r10 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel USAGE] ; (SET_PRM_R) mov qword [rbp - 138], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, 1 ; (SET) jmp main#end jmp main#2#wrap#end main#2#wrap#0#if#end: main#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rax ; (SET) mov rbx, r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 8 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rsi, qword [rax] ; (SET_PRM_R) mov qword [rbp - 146], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) mov rbx, qword [rbp - 146] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call utils._#File.init cmp r13, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 130] ; initial struct addr move (SET_STR_R) mov qword [rbp - 146], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) mov rbx, qword [rbp - 146] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call compile.generate sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 130] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rax ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call utils._#File.end jmp main#3#wrap#end main#3#wrap#0#if#end: cmp r13, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#3#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call compile.parse_tree jmp main#3#wrap#end main#3#wrap#1#if#end: cmp r13, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je main#3#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rsi ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call compile.mod_tree jmp main#3#wrap#end main#3#wrap#2#if#end: main#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 138], rax ; (SET) mov rax, qword [rbp - 138] ; (SET) lea rsp, [rbp - 130] ; Free stack space (freeing tmp variables) call utils._#File.end ; STARTING RETURN mov rax, 0 ; (SET) jmp main#end main#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.strcmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov cl, byte [r10] ; (SET) cmp cl, byte [r11] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je utils.strcmp#0#loop#1#bool#end sub rsp, 1 ; Create stack space for tmp variable mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 utils.strcmp#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 je utils.strcmp#0#loop#0#bool#end mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.strcmp#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.strcmp#0#loop#end utils.strcmp#0#loop#start: utils.strcmp#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov rbx, r11 ; (SET) add r11, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, byte [r11] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je utils.strcmp#0#loop#3#bool#end sub rsp, 1 ; Create stack space for tmp variable mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 utils.strcmp#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 je utils.strcmp#0#loop#2#bool#end mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.strcmp#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.strcmp#0#loop#end jmp utils.strcmp#0#loop#start utils.strcmp#0#loop#end: mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.strcmp#1#wrap#0#if#0#bool#end mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.strcmp#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.strcmp#1#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp utils.strcmp#end jmp utils.strcmp#1#wrap#end utils.strcmp#1#wrap#0#if#end: utils.strcmp#1#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp utils.strcmp#end utils.strcmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.strlen: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.strlen#0#loop#end utils.strlen#0#loop#start: utils.strlen#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov rbx, r11 ; (SET) inc r11 ; (UNARY) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.strlen#0#loop#end jmp utils.strlen#0#loop#start utils.strlen#0#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp utils.strlen#end utils.strlen#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.ends_with: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strlen mov r12, rax ; (SET) mov r13, 0 ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.ends_with#0#loop#end utils.ends_with#0#loop#start: mov r8, r11 ; (SET) ; Gen index mov rax, r13 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.ends_with#0#loop#0#wrap#0#if#end mov r8, r11 ; (SET) ; Gen index mov rax, r13 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, byte [r10] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.ends_with#0#loop#0#wrap#0#if#0#wrap#0#if#end mov rbx, r13 ; (SET) inc r13 ; (UNARY) jmp utils.ends_with#0#loop#0#wrap#0#if#0#wrap#end utils.ends_with#0#loop#0#wrap#0#if#0#wrap#0#if#end: mov r13, 0 ; (SET) jmp utils.ends_with#0#loop#0#wrap#0#if#0#wrap#end utils.ends_with#0#loop#0#wrap#0#if#0#wrap#1#if#end: utils.ends_with#0#loop#0#wrap#0#if#0#wrap#end: jmp utils.ends_with#0#loop#0#wrap#end utils.ends_with#0#loop#0#wrap#0#if#end: mov r13, 0 ; (SET) jmp utils.ends_with#0#loop#0#wrap#end utils.ends_with#0#loop#0#wrap#1#if#end: utils.ends_with#0#loop#0#wrap#end: utils.ends_with#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.ends_with#0#loop#end jmp utils.ends_with#0#loop#start utils.ends_with#0#loop#end: ; STARTING RETURN cmp r12, r13 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp utils.ends_with#end utils.ends_with#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.base_for_char: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 98 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne utils.base_for_char#0#wrap#0#if#0#bool#end cmp r10b, 66 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.base_for_char#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.base_for_char#0#wrap#0#if#end ; STARTING RETURN mov rax, 2 ; (SET) jmp utils.base_for_char#end jmp utils.base_for_char#0#wrap#end utils.base_for_char#0#wrap#0#if#end: cmp r10b, 111 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne utils.base_for_char#0#wrap#1#if#0#bool#end cmp r10b, 79 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.base_for_char#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.base_for_char#0#wrap#1#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp utils.base_for_char#end jmp utils.base_for_char#0#wrap#end utils.base_for_char#0#wrap#1#if#end: cmp r10b, 120 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne utils.base_for_char#0#wrap#2#if#0#bool#end cmp r10b, 88 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.base_for_char#0#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.base_for_char#0#wrap#2#if#end ; STARTING RETURN mov rax, 16 ; (SET) jmp utils.base_for_char#end jmp utils.base_for_char#0#wrap#end utils.base_for_char#0#wrap#2#if#end: utils.base_for_char#0#wrap#end: ; STARTING RETURN mov rax, 10 ; (SET) jmp utils.base_for_char#end utils.base_for_char#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.decode_bin: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 49 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.decode_bin#0#wrap#0#if#end ; STARTING RETURN mov rax, 1 ; (SET) jmp utils.decode_bin#end jmp utils.decode_bin#0#wrap#end utils.decode_bin#0#wrap#0#if#end: utils.decode_bin#0#wrap#end: ; STARTING RETURN mov rax, 0 ; (SET) jmp utils.decode_bin#end utils.decode_bin#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.decode_oct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 48 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.decode_oct#0#wrap#0#if#0#bool#end cmp r10b, 55 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.decode_oct#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.decode_oct#0#wrap#0#if#end ; STARTING RETURN mov bl, r10b ; (SET) sub bl, 48 ; (STD_OP) movzx rsi, bl ; (SET_PRM_R) mov rax, rsi ; (SET) jmp utils.decode_oct#end jmp utils.decode_oct#0#wrap#end utils.decode_oct#0#wrap#0#if#end: utils.decode_oct#0#wrap#end: ; STARTING RETURN mov rax, 0 ; (SET) jmp utils.decode_oct#end utils.decode_oct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.decode_hex: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 48 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.decode_hex#0#wrap#0#if#0#bool#end cmp r10b, 57 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.decode_hex#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.decode_hex#0#wrap#0#if#end ; STARTING RETURN mov bl, r10b ; (SET) sub bl, 48 ; (STD_OP) movzx rsi, bl ; (SET_PRM_R) mov rax, rsi ; (SET) jmp utils.decode_hex#end jmp utils.decode_hex#0#wrap#end utils.decode_hex#0#wrap#0#if#end: cmp r10b, 97 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.decode_hex#0#wrap#1#if#0#bool#end cmp r10b, 102 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.decode_hex#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.decode_hex#0#wrap#1#if#end ; STARTING RETURN mov bl, r10b ; (SET) sub bl, 97 ; (STD_OP) movzx rsi, bl ; (SET_PRM_R) mov rax, rsi ; (SET) jmp utils.decode_hex#end jmp utils.decode_hex#0#wrap#end utils.decode_hex#0#wrap#1#if#end: cmp r10b, 65 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.decode_hex#0#wrap#2#if#0#bool#end cmp r10b, 70 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.decode_hex#0#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.decode_hex#0#wrap#2#if#end ; STARTING RETURN mov bl, r10b ; (SET) sub bl, 65 ; (STD_OP) movzx rsi, bl ; (SET_PRM_R) mov rax, rsi ; (SET) jmp utils.decode_hex#end jmp utils.decode_hex#0#wrap#end utils.decode_hex#0#wrap#2#if#end: utils.decode_hex#0#wrap#end: ; STARTING RETURN mov rax, 0 ; (SET) jmp utils.decode_hex#end utils.decode_hex#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.decode_dec: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 48 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.decode_dec#0#wrap#0#if#0#bool#end cmp r10b, 57 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.decode_dec#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.decode_dec#0#wrap#0#if#end ; STARTING RETURN mov bl, r10b ; (SET) sub bl, 48 ; (STD_OP) movzx rsi, bl ; (SET_PRM_R) mov rax, rsi ; (SET) jmp utils.decode_dec#end jmp utils.decode_dec#0#wrap#end utils.decode_dec#0#wrap#0#if#end: utils.decode_dec#0#wrap#end: ; STARTING RETURN mov rax, 0 ; (SET) jmp utils.decode_dec#end utils.decode_dec#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.cstr_to_int: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 10 ; (SET) mov r12, 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strlen mov r13, rax ; (SET) mov r9, r12 ; (SET) add r9, 2 ; (STD_OP) cmp r13, r9 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.cstr_to_int#0#wrap#0#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 utils.cstr_to_int#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#0#wrap#0#if#end mov r9, r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) add qword [rbp - 64], 1 ; (STD_OP) ; Gen index mov rax, qword [rbp - 64] ; (SET) imul rax, 1 ; (MUL) mov rsi, r9 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9, rax ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 57 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne utils.cstr_to_int#0#wrap#0#if#1#wrap#0#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) add qword [rbp - 72], 1 ; (STD_OP) ; Gen index mov rax, qword [rbp - 72] ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 utils.cstr_to_int#0#wrap#0#if#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#0#wrap#0#if#1#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) mov r8, r12 ; (SET) add r8, 1 ; (STD_OP) ; Gen index mov rax, r8 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.base_for_char mov r11, rax ; (SET) mov r12, 2 ; (SET) jmp utils.cstr_to_int#0#wrap#0#if#1#wrap#end utils.cstr_to_int#0#wrap#0#if#1#wrap#0#if#end: utils.cstr_to_int#0#wrap#0#if#1#wrap#end: jmp utils.cstr_to_int#0#wrap#end utils.cstr_to_int#0#wrap#0#if#end: utils.cstr_to_int#0#wrap#end: mov r14, 0 ; (SET) cmp r12, r13 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#1#loop#end utils.cstr_to_int#1#loop#start: mov rbx, r14 ; (SET) imul rbx, r11 ; (MUL) mov r14, rbx ; (SET) mov r15, 0 ; (SET) cmp r11, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#1#loop#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_bin mov r15, rax ; (SET) jmp utils.cstr_to_int#1#loop#0#wrap#end utils.cstr_to_int#1#loop#0#wrap#0#if#end: cmp r11, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#1#loop#0#wrap#1#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_oct mov r15, rax ; (SET) jmp utils.cstr_to_int#1#loop#0#wrap#end utils.cstr_to_int#1#loop#0#wrap#1#if#end: cmp r11, 10 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#1#loop#0#wrap#2#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_dec mov r15, rax ; (SET) jmp utils.cstr_to_int#1#loop#0#wrap#end utils.cstr_to_int#1#loop#0#wrap#2#if#end: cmp r11, 16 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#1#loop#0#wrap#3#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_hex mov r15, rax ; (SET) jmp utils.cstr_to_int#1#loop#0#wrap#end utils.cstr_to_int#1#loop#0#wrap#3#if#end: utils.cstr_to_int#1#loop#0#wrap#end: mov rbx, r14 ; (SET) add rbx, r15 ; (STD_OP) mov r14, rbx ; (SET) utils.cstr_to_int#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, r13 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_int#1#loop#end jmp utils.cstr_to_int#1#loop#start utils.cstr_to_int#1#loop#end: ; STARTING RETURN mov rax, r14 ; (SET) jmp utils.cstr_to_int#end utils.cstr_to_int#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.cstr_to_uint: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 10 ; (SET) mov r12, 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strlen mov r13, rax ; (SET) mov r9, r12 ; (SET) add r9, 2 ; (STD_OP) cmp r13, r9 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.cstr_to_uint#0#wrap#0#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 utils.cstr_to_uint#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#0#wrap#0#if#end mov r9, r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) add qword [rbp - 64], 1 ; (STD_OP) ; Gen index mov rax, qword [rbp - 64] ; (SET) imul rax, 1 ; (MUL) mov rsi, r9 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9, rax ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 57 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne utils.cstr_to_uint#0#wrap#0#if#1#wrap#0#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) add qword [rbp - 72], 1 ; (STD_OP) ; Gen index mov rax, qword [rbp - 72] ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 utils.cstr_to_uint#0#wrap#0#if#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#0#wrap#0#if#1#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) mov r8, r12 ; (SET) add r8, 1 ; (STD_OP) ; Gen index mov rax, r8 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.base_for_char mov r11, rax ; (SET) mov r12, 2 ; (SET) jmp utils.cstr_to_uint#0#wrap#0#if#1#wrap#end utils.cstr_to_uint#0#wrap#0#if#1#wrap#0#if#end: utils.cstr_to_uint#0#wrap#0#if#1#wrap#end: jmp utils.cstr_to_uint#0#wrap#end utils.cstr_to_uint#0#wrap#0#if#end: utils.cstr_to_uint#0#wrap#end: mov r14, 0 ; (SET) cmp r12, r13 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#1#loop#end utils.cstr_to_uint#1#loop#start: mov rbx, r14 ; (SET) imul rbx, r11 ; (MUL) mov r14, rbx ; (SET) mov r15, 0 ; (SET) cmp r11, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#1#loop#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_bin mov r15, rax ; (SET) jmp utils.cstr_to_uint#1#loop#0#wrap#end utils.cstr_to_uint#1#loop#0#wrap#0#if#end: cmp r11, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#1#loop#0#wrap#1#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_oct mov r15, rax ; (SET) jmp utils.cstr_to_uint#1#loop#0#wrap#end utils.cstr_to_uint#1#loop#0#wrap#1#if#end: cmp r11, 10 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#1#loop#0#wrap#2#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_dec mov r15, rax ; (SET) jmp utils.cstr_to_uint#1#loop#0#wrap#end utils.cstr_to_uint#1#loop#0#wrap#2#if#end: cmp r11, 16 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#1#loop#0#wrap#3#if#end sub rsp, 1 ; Create stack space for tmp variable mov rbx, r10 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbp - 57], sil ; (SET) mov al, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.decode_hex mov r15, rax ; (SET) jmp utils.cstr_to_uint#1#loop#0#wrap#end utils.cstr_to_uint#1#loop#0#wrap#3#if#end: utils.cstr_to_uint#1#loop#0#wrap#end: mov rbx, r14 ; (SET) add rbx, r15 ; (STD_OP) mov r14, rbx ; (SET) utils.cstr_to_uint#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, r13 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.cstr_to_uint#1#loop#end jmp utils.cstr_to_uint#1#loop#start utils.cstr_to_uint#1#loop#end: ; STARTING RETURN mov rax, r14 ; (SET) jmp utils.cstr_to_uint#end utils.cstr_to_uint#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.reverse_str: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strlen mov r12, rax ; (SET) mov r13, 0 ; (SET) mov r8, r12 ; (SET) mov rcx, 2 ; (DIV) mov rax, r8 ; (DIV) cqo idiv rcx mov r8, rax ; (DIV) cmp r13, r8 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.reverse_str#0#loop#end utils.reverse_str#0#loop#start: mov rbx, r10 ; (SET) ; Gen index mov rax, r13 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r11b, byte [rax] ; (SET) mov rbx, r10 ; (SET) ; Gen index mov rax, r13 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rbx, rax ; (SET) mov r8, r10 ; (SET) mov r9, r12 ; (SET) sub r9, 1 ; (STD_OP) sub r9, r13 ; (STD_OP) ; Gen index mov rax, r9 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov sil, byte [rax] ; (SET_PRM_R) mov byte [rbx], sil ; (SET) mov rbx, r10 ; (SET) mov r8, r12 ; (SET) sub r8, 1 ; (STD_OP) sub r8, r13 ; (STD_OP) ; Gen index mov rax, r8 ; (SET) imul rax, 1 ; (MUL) mov rsi, rbx ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rbx, rax ; (SET) mov byte [rbx], r11b ; (SET) utils.reverse_str#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) mov r8, r12 ; (SET) mov rcx, 2 ; (DIV) mov rax, r8 ; (DIV) cqo idiv rcx mov r8, rax ; (DIV) cmp r13, r8 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.reverse_str#0#loop#end jmp utils.reverse_str#0#loop#start utils.reverse_str#0#loop#end: utils.reverse_str#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.uint_to_hex_str: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 48 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 120 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char cmp r10, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.uint_to_hex_str#0#loop#end utils.uint_to_hex_str#0#loop#start: mov rbx, r10 ; (SET) mov rcx, 16 ; (DIV) mov rax, rbx ; (DIV) xor rdx, rdx div rcx mov rbx, rdx ; (DIV) mov r11, rbx ; (SET) cmp r11, 9 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.uint_to_hex_str#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov r8b, 65 ; (SET) add r8b, r11b ; (STD_OP) sub r8b, 10 ; (STD_OP) mov byte [rbp - 105], r8b ; (SET) mov rax, qword [rbp - 104] ; (SET) mov bl, byte [rbp - 105] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char mov rbx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) jmp utils.uint_to_hex_str#0#loop#0#wrap#end utils.uint_to_hex_str#0#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov r8b, 48 ; (SET) add r8b, r11b ; (STD_OP) mov byte [rbp - 105], r8b ; (SET) mov rax, qword [rbp - 104] ; (SET) mov bl, byte [rbp - 105] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char mov rbx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) jmp utils.uint_to_hex_str#0#loop#0#wrap#end utils.uint_to_hex_str#0#loop#0#wrap#1#if#end: utils.uint_to_hex_str#0#loop#0#wrap#end: utils.uint_to_hex_str#0#loop#rep: mov r8, r10 ; (SET) mov rcx, 16 ; (DIV) mov rax, r8 ; (DIV) xor rdx, rdx div rcx mov r8, rax ; (DIV) mov r10, r8 ; (SET) cmp r10, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.uint_to_hex_str#0#loop#end jmp utils.uint_to_hex_str#0#loop#start utils.uint_to_hex_str#0#loop#end: mov rcx, qword [rbp - 80] ; (SET) cmp rcx, 3 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.uint_to_hex_str#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 48 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char jmp utils.uint_to_hex_str#1#wrap#end utils.uint_to_hex_str#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) mov rcx, 1 ; (SET) imul rcx, 2 ; (MUL) add rbx, rcx ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.reverse_str jmp utils.uint_to_hex_str#1#wrap#end utils.uint_to_hex_str#1#wrap#1#if#end: utils.uint_to_hex_str#1#wrap#end: ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp utils.uint_to_hex_str#end utils.uint_to_hex_str#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.int_to_str: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init cmp r10, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.int_to_str#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 45 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char mov rbx, 0 ; (SET) sub rbx, r10 ; (STD_OP) mov r10, rbx ; (SET) jmp utils.int_to_str#0#wrap#end utils.int_to_str#0#wrap#0#if#end: utils.int_to_str#0#wrap#end: cmp r10, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.int_to_str#1#loop#end utils.int_to_str#1#loop#start: mov rbx, r10 ; (SET) mov rcx, 10 ; (DIV) mov rax, rbx ; (DIV) cqo idiv rcx mov rbx, rdx ; (DIV) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov r8b, 48 ; (SET) add r8b, r11b ; (STD_OP) mov byte [rbp - 105], r8b ; (SET) mov rax, qword [rbp - 104] ; (SET) mov bl, byte [rbp - 105] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char mov rbx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) utils.int_to_str#1#loop#rep: mov r8, r10 ; (SET) mov rcx, 10 ; (DIV) mov rax, r8 ; (DIV) cqo idiv rcx mov r8, rax ; (DIV) mov r10, r8 ; (SET) cmp r10, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.int_to_str#1#loop#end jmp utils.int_to_str#1#loop#start utils.int_to_str#1#loop#end: mov rcx, qword [rbp - 80] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.int_to_str#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 48 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char jmp utils.int_to_str#2#wrap#end utils.int_to_str#2#wrap#0#if#end: utils.int_to_str#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r11, rax ; (SET) mov cl, byte [r11] ; (SET) cmp cl, 45 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.int_to_str#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) mov rcx, 1 ; (SET) imul rcx, 1 ; (MUL) add rbx, rcx ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.reverse_str jmp utils.int_to_str#3#wrap#end utils.int_to_str#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r11 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.reverse_str jmp utils.int_to_str#3#wrap#end utils.int_to_str#3#wrap#1#if#end: utils.int_to_str#3#wrap#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp utils.int_to_str#end utils.int_to_str#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.strcpy: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp utils.strcpy#end utils.strcpy#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.stradd: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r11 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp utils.stradd#end utils.stradd#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.unquote_cha: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 92 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#0#wrap#0#if#end ; STARTING RETURN mov al, byte [r10] ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#0#wrap#end utils.unquote_cha#0#wrap#0#if#end: utils.unquote_cha#0#wrap#end: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#1#wrap#0#if#end ; STARTING RETURN mov al, 34 ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#1#wrap#end utils.unquote_cha#1#wrap#0#if#end: mov cl, byte [r10] ; (SET) cmp cl, 39 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#1#wrap#1#if#end ; STARTING RETURN mov al, 39 ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#1#wrap#end utils.unquote_cha#1#wrap#1#if#end: mov cl, byte [r10] ; (SET) cmp cl, 92 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#1#wrap#2#if#end ; STARTING RETURN mov al, 92 ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#1#wrap#end utils.unquote_cha#1#wrap#2#if#end: mov cl, byte [r10] ; (SET) cmp cl, 110 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#1#wrap#3#if#end ; STARTING RETURN mov al, 10 ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#1#wrap#end utils.unquote_cha#1#wrap#3#if#end: mov cl, byte [r10] ; (SET) cmp cl, 116 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#1#wrap#4#if#end ; STARTING RETURN mov al, 9 ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#1#wrap#end utils.unquote_cha#1#wrap#4#if#end: mov cl, byte [r10] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_cha#1#wrap#5#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp utils.unquote_cha#end jmp utils.unquote_cha#1#wrap#end utils.unquote_cha#1#wrap#5#if#end: utils.unquote_cha#1#wrap#end: ; STARTING RETURN mov al, byte [r10] ; (SET) jmp utils.unquote_cha#end utils.unquote_cha#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils.unquote_str: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.unquote_str#0#loop#0#bool#end mov cl, byte [r10] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.unquote_str#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_str#0#loop#end utils.unquote_str#0#loop#start: sub rsp, 1 ; Create stack space for local variable buf mov sil, byte [r10] ; (SET_PRM_R) mov byte [rbp - 89], sil ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 92 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_str#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils.unquote_cha mov byte [rbp - 89], al ; (SET) mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) jmp utils.unquote_str#0#loop#1#wrap#end utils.unquote_str#0#loop#1#wrap#0#if#end: utils.unquote_str#0#loop#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push utils.unquote_str#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils.unquote_str#0#loop#2#bool#end mov cl, byte [r10] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils.unquote_str#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils.unquote_str#0#loop#end jmp utils.unquote_str#0#loop#start utils.unquote_str#0#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct jmp utils.unquote_str#end utils.unquote_str#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel utils.VECTOR_MIN_ELEMENTS] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov qword [rbp - 72], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _alloc mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) utils._#Vector.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.from_cstr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr utils._#Vector.from_cstr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector._grow: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, r11 ; (STD_OP) mov qword [rbx], r8 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov qword [rbp - 80], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _realloc mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) utils._#Vector._grow#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.get: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.get#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp utils._#Vector.get#end jmp utils._#Vector.get#0#wrap#end utils._#Vector.get#0#wrap#0#if#end: utils._#Vector.get#0#wrap#end: ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, qword [rsi] ; (SET) mov r8, r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov rcx, 1 ; (SET) imul rcx, r8 ; (MUL) add rbx, rcx ; (STD_OP) mov rax, rbx ; (SET) jmp utils._#Vector.get#end utils._#Vector.get#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.push: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r9, qword [rsi] ; (SET) add r9, 1 ; (STD_OP) mov rcx, qword [r8] ; (SET) cmp rcx, r9 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.push#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel utils.VECTOR_MAX_GROW] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.push#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector._grow jmp utils._#Vector.push#0#wrap#0#if#0#wrap#end utils._#Vector.push#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel utils.VECTOR_MAX_GROW] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector._grow jmp utils._#Vector.push#0#wrap#0#if#0#wrap#end utils._#Vector.push#0#wrap#0#if#0#wrap#1#if#end: utils._#Vector.push#0#wrap#0#if#0#wrap#end: jmp utils._#Vector.push#0#wrap#end utils._#Vector.push#0#wrap#0#if#end: utils._#Vector.push#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov rcx, 1 ; (SET) imul rcx, r8 ; (MUL) add rbx, rcx ; (STD_OP) mov r12, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils._#Vector.push#1#loop#end utils._#Vector.push#1#loop#start: mov r8, r12 ; (SET) mov rcx, 1 ; (SET) imul rcx, r13 ; (MUL) add r8, rcx ; (STD_OP) mov r14, r8 ; (SET) mov r9, r11 ; (SET) mov rcx, 1 ; (SET) imul rcx, r13 ; (MUL) add r9, rcx ; (STD_OP) mov r15, r9 ; (SET) mov sil, byte [r15] ; (SET_PRM_R) mov byte [r14], sil ; (SET) utils._#Vector.push#1#loop#rep: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) inc r13 ; (UNARY) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 je utils._#Vector.push#1#loop#end lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) jmp utils._#Vector.push#1#loop#start utils._#Vector.push#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) utils._#Vector.push#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.replace: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.replace#0#wrap#0#if#end jmp utils._#Vector.replace#end jmp utils._#Vector.replace#0#wrap#end utils._#Vector.replace#0#wrap#0#if#end: utils._#Vector.replace#0#wrap#end: mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.replace#1#loop#end utils._#Vector.replace#1#loop#start: mov rbx, r13 ; (SET) mov rcx, 1 ; (SET) imul rcx, r14 ; (MUL) add rbx, rcx ; (STD_OP) mov r15, rbx ; (SET) mov r8, r12 ; (SET) mov rcx, 1 ; (SET) imul rcx, r14 ; (MUL) add r8, rcx ; (STD_OP) sub rsp, 8 ; Create stack space for local variable from mov qword [rbp - 64], r8 ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [r15], sil ; (SET) utils._#Vector.replace#1#loop#rep: mov r9, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je utils._#Vector.replace#1#loop#end jmp utils._#Vector.replace#1#loop#start utils._#Vector.replace#1#loop#end: utils._#Vector.replace#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector._shrink: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector._shrink#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 1 ; (SET) jmp utils._#Vector._shrink#0#wrap#end utils._#Vector._shrink#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) sub r8, r11 ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp utils._#Vector._shrink#0#wrap#end utils._#Vector._shrink#0#wrap#1#if#end: utils._#Vector._shrink#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov qword [rbp - 80], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _realloc mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) utils._#Vector._shrink#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.pop: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.remove utils._#Vector.pop#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.remove: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) cmp r11, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne utils._#Vector.remove#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils._#Vector.remove#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.remove#0#wrap#0#if#end jmp utils._#Vector.remove#end jmp utils._#Vector.remove#0#wrap#end utils._#Vector.remove#0#wrap#0#if#end: utils._#Vector.remove#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.remove#1#wrap#0#if#end mov rbx, r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul rbx, qword [rsi] ; (MUL) mov r12, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r9, qword [rsi] ; (SET) sub r9, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) imul r9, qword [rsi] ; (MUL) cmp r12, r9 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils._#Vector.remove#1#wrap#0#if#0#loop#end utils._#Vector.remove#1#wrap#0#if#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, qword [rsi] ; (SET) mov rcx, 1 ; (SET) imul rcx, r12 ; (MUL) add r8, rcx ; (STD_OP) mov r13, r8 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r9, qword [rsi] ; (SET) mov rcx, 1 ; (SET) imul rcx, r12 ; (MUL) add r9, rcx ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rcx, 1 ; (SET) imul rcx, qword [rsi] ; (MUL) add r9, rcx ; (STD_OP) mov r14, r9 ; (SET) mov sil, byte [r14] ; (SET_PRM_R) mov byte [r13], sil ; (SET) utils._#Vector.remove#1#wrap#0#if#0#loop#rep: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) inc r12 ; (UNARY) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) sub qword [rbp - 65], 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov rax, qword [rbp - 65] ; (MUL) imul rax, rsi ; (MUL) mov qword [rbp - 65], rax ; (MUL) cmp r12, qword [rbp - 65] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 57], 0 je utils._#Vector.remove#1#wrap#0#if#0#loop#end lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) jmp utils._#Vector.remove#1#wrap#0#if#0#loop#start utils._#Vector.remove#1#wrap#0#if#0#loop#end: jmp utils._#Vector.remove#1#wrap#end utils._#Vector.remove#1#wrap#0#if#end: utils._#Vector.remove#1#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) dec qword qword [rsi] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r9, qword [rsi] ; (SET) mov rcx, 2 ; (DIV) mov rax, r9 ; (DIV) xor rdx, rdx div rcx mov r9, rax ; (DIV) mov rcx, qword [r8] ; (SET) cmp rcx, r9 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.remove#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) mov rcx, 3 ; (DIV) mov rax, rbx ; (DIV) xor rdx, rdx div rcx mov rbx, rax ; (DIV) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector._shrink jmp utils._#Vector.remove#2#wrap#end utils._#Vector.remove#2#wrap#0#if#end: utils._#Vector.remove#2#wrap#end: utils._#Vector.remove#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.push_char: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for local variable ch mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) lea rsi, byte [rbp - 57] ; (TAKE_PTR) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils._#Vector.push utils._#Vector.push_char#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.push_cstr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.push_cstr#0#loop#end utils._#Vector.push_cstr#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push utils._#Vector.push_cstr#0#loop#rep: mov rbx, r11 ; (SET) add r11, 1 ; (STD_OP) mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.push_cstr#0#loop#end jmp utils._#Vector.push_cstr#0#loop#start utils._#Vector.push_cstr#0#loop#end: utils._#Vector.push_cstr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.as_cstr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, 1 ; (SET) imul rcx, qword [rsi] ; (MUL) add rbx, rcx ; (STD_OP) mov r11, rbx ; (SET) mov byte [r11], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rax, qword [rsi] ; (SET) jmp utils._#Vector.as_cstr#end utils._#Vector.as_cstr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete utils._#Vector.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.copy: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.copy#0#loop#end utils._#Vector.copy#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r11 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push utils._#Vector.copy#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.copy#0#loop#end jmp utils._#Vector.copy#0#loop#start utils._#Vector.copy#0#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct jmp utils._#Vector.copy#end utils._#Vector.copy#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Vector.back: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Vector.back#0#wrap#0#if#end ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rax, rax ; (SET) jmp utils._#Vector.back#end jmp utils._#Vector.back#0#wrap#end utils._#Vector.back#0#wrap#0#if#end: utils._#Vector.back#0#wrap#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp utils._#Vector.back#end utils._#Vector.back#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel utils.VECTOR_MIN_ELEMENTS] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov r8, 8 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov qword [rbp - 72], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _alloc mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) utils._#Artifact.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.split_cstr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12b, cl ; (SET) sub rsp, 32 ; Create stack space for local variable track sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.split_cstr#0#loop#end utils._#Artifact.split_cstr#0#loop#start: mov cl, byte [r11] ; (SET) cmp cl, r12b mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.split_cstr#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 112], rax ; (SET) mov rax, qword [rbp - 112] ; (SET) lea rsp, [rbp - 104] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 104], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Artifact.push sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init jmp utils._#Artifact.split_cstr#0#loop#0#wrap#end utils._#Artifact.split_cstr#0#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r11 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp utils._#Artifact.split_cstr#0#loop#0#wrap#end utils._#Artifact.split_cstr#0#loop#0#wrap#1#if#end: utils._#Artifact.split_cstr#0#loop#0#wrap#end: utils._#Artifact.split_cstr#0#loop#rep: mov rbx, r11 ; (SET) add r11, 1 ; (STD_OP) mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.split_cstr#0#loop#end jmp utils._#Artifact.split_cstr#0#loop#start utils._#Artifact.split_cstr#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 112], rax ; (SET) mov rax, qword [rbp - 112] ; (SET) lea rsp, [rbp - 104] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 104], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Artifact.push utils._#Artifact.split_cstr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact._grow: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, r11 ; (STD_OP) mov qword [rbx], r8 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) imul r8, 8 ; (MUL) mov qword [rbp - 80], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _realloc mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) utils._#Artifact._grow#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.push: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r9, qword [rsi] ; (SET) add r9, 1 ; (STD_OP) mov rcx, qword [r8] ; (SET) cmp rcx, r9 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.push#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel utils.VECTOR_MAX_GROW] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.push#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact._grow jmp utils._#Artifact.push#0#wrap#0#if#0#wrap#end utils._#Artifact.push#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel utils.VECTOR_MAX_GROW] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact._grow jmp utils._#Artifact.push#0#wrap#0#if#0#wrap#end utils._#Artifact.push#0#wrap#0#if#0#wrap#1#if#end: utils._#Artifact.push#0#wrap#0#if#0#wrap#end: jmp utils._#Artifact.push#0#wrap#end utils._#Artifact.push#0#wrap#0#if#end: utils._#Artifact.push#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rdi, rsi ; idx ; Gen index mov rax, qword [rdi] ; (SET) imul rax, 8 ; (MUL) mov rsi, qword [rbx] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rbx, rax ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) utils._#Artifact.push#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact._shrink: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact._shrink#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 1 ; (SET) jmp utils._#Artifact._shrink#0#wrap#end utils._#Artifact._shrink#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) sub r8, r11 ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp utils._#Artifact._shrink#0#wrap#end utils._#Artifact._shrink#0#wrap#1#if#end: utils._#Artifact._shrink#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) imul r8, 8 ; (MUL) mov qword [rbp - 80], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _realloc mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) utils._#Artifact._shrink#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.pop: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 80], rbx ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Artifact.get mov qword [rbp - 64], rax ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) dec qword qword [rsi] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r9, qword [rsi] ; (SET) mov rcx, 2 ; (DIV) mov rax, r9 ; (DIV) xor rdx, rdx div rcx mov r9, rax ; (DIV) mov rcx, qword [r8] ; (SET) cmp rcx, r9 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.pop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) mov rcx, 3 ; (DIV) mov rax, rbx ; (DIV) xor rdx, rdx div rcx mov rbx, rax ; (DIV) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact._shrink jmp utils._#Artifact.pop#0#wrap#end utils._#Artifact.pop#0#wrap#0#if#end: utils._#Artifact.pop#0#wrap#end: utils._#Artifact.pop#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.get: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.get#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp utils._#Artifact.get#end jmp utils._#Artifact.get#0#wrap#end utils._#Artifact.get#0#wrap#0#if#end: utils._#Artifact.get#0#wrap#end: ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) ; Gen index mov rax, r11 ; (SET) imul rax, 8 ; (MUL) mov rsi, qword [rbx] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov rax, qword [rax] ; (SET) jmp utils._#Artifact.get#end utils._#Artifact.get#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.to_cstr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for local variable join mov byte [rbp - 57], bl ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 89] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) mov qword [rbp - 105], 1 ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.init mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.to_cstr#0#loop#end utils._#Artifact.to_cstr#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 89] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 113], r10 ; (SET) mov qword [rbp - 121], r11 ; (SET) mov rax, qword [rbp - 113] ; (SET) mov rbx, qword [rbp - 121] ; (SET) lea rsp, [rbp - 105] ; Free stack space (freeing tmp variables) call utils._#Artifact.get mov qword [rbp - 105], rax ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) sub r8, 1 ; (STD_OP) cmp r11, r8 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.to_cstr#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 89] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 57] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp utils._#Artifact.to_cstr#0#loop#0#wrap#end utils._#Artifact.to_cstr#0#loop#0#wrap#0#if#end: utils._#Artifact.to_cstr#0#loop#0#wrap#end: utils._#Artifact.to_cstr#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.to_cstr#0#loop#end jmp utils._#Artifact.to_cstr#0#loop#start utils._#Artifact.to_cstr#0#loop#end: ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 89] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp utils._#Artifact.to_cstr#end utils._#Artifact.to_cstr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Artifact.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.end#0#loop#end utils._#Artifact.end#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Artifact.get mov qword [rbp - 64], rax ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete utils._#Artifact.end#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Artifact.end#0#loop#end jmp utils._#Artifact.end#0#loop#start utils._#Artifact.end#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete utils._#Artifact.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov byte [rbp - 73], 47 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov cl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.split_cstr ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov dword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov ebx, dword [rsi] ; (SET) dec dword dword [rsi] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) utils._#File.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.relative: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov byte [rbp - 65], 47 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.to_cstr mov r12, rax ; (SET) sub rsp, 37 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 101], rax ; (SET) mov qword [rbp - 109], r12 ; (SET) mov rax, qword [rbp - 101] ; (SET) mov rbx, qword [rbp - 109] ; (SET) lea rsp, [rbp - 93] ; Free stack space (freeing tmp variables) call utils._#File.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 101], r12 ; (SET) mov rax, qword [rbp - 101] ; (SET) lea rsp, [rbp - 93] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 101], rax ; (SET) mov rax, qword [rbp - 101] ; (SET) lea rsp, [rbp - 93] ; Free stack space (freeing tmp variables) call utils._#Artifact.pop sub rsp, 24 ; Create stack space for local variable add sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 117] ; initial struct addr move (SET_STR_R) mov qword [rbp - 125], rax ; (SET) mov rax, qword [rbp - 125] ; (SET) lea rsp, [rbp - 117] ; Free stack space (freeing tmp variables) call utils._#Artifact.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 117] ; initial struct addr move (SET_STR_R) mov qword [rbp - 125], rax ; (SET) mov qword [rbp - 133], r11 ; (SET) mov byte [rbp - 134], 47 ; (SET) mov rax, qword [rbp - 125] ; (SET) mov rbx, qword [rbp - 133] ; (SET) mov cl, byte [rbp - 134] ; (SET) lea rsp, [rbp - 117] ; Free stack space (freeing tmp variables) call utils._#Artifact.split_cstr mov r13, 0 ; (SET) cmp r13, qword [rbp - 101] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.relative#0#loop#end utils._#File.relative#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 117] ; initial struct addr move (SET_STR_R) mov qword [rbp - 125], rax ; (SET) mov qword [rbp - 133], r13 ; (SET) mov rax, qword [rbp - 125] ; (SET) mov rbx, qword [rbp - 133] ; (SET) lea rsp, [rbp - 117] ; Free stack space (freeing tmp variables) call utils._#Artifact.get mov r14, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 118], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 126], r14 ; (SET) mov rsi, qword [rel utils.CURRENT_DIR] ; (SET_PRM_R) mov qword [rbp - 134], rsi ; (SET) mov rax, qword [rbp - 126] ; (SET) mov rbx, qword [rbp - 134] ; (SET) lea rsp, [rbp - 118] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 118] ; (SET) lea rsp, [rbp - 117] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.relative#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 93] ; initial struct addr move (SET_STR_R) mov qword [rbp - 125], rax ; (SET) mov qword [rbp - 133], r14 ; (SET) mov byte [rbp - 134], 47 ; (SET) mov rax, qword [rbp - 125] ; (SET) mov rbx, qword [rbp - 133] ; (SET) mov cl, byte [rbp - 134] ; (SET) lea rsp, [rbp - 117] ; Free stack space (freeing tmp variables) call utils._#Artifact.split_cstr jmp utils._#File.relative#0#loop#0#wrap#end utils._#File.relative#0#loop#0#wrap#0#if#end: utils._#File.relative#0#loop#0#wrap#end: utils._#File.relative#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) cmp r13, qword [rbp - 101] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.relative#0#loop#end jmp utils._#File.relative#0#loop#start utils._#File.relative#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 117] ; initial struct addr move (SET_STR_R) mov qword [rbp - 125], rax ; (SET) mov rax, qword [rbp - 125] ; (SET) lea rsp, [rbp - 117] ; Free stack space (freeing tmp variables) call utils._#Artifact.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 93] ; initial struct addr move (SET_STR_R) mov rcx, 37 ; size of struct [File] in bytes rep movsb ; move struct jmp utils._#File.relative#end utils._#File.relative#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8d, dword [rsi] ; (SET) add r8d, 1 ; (STD_OP) cmp r8d, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.end#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) movsxd rsi, dword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _close_file ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov dword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov ebx, dword [rsi] ; (SET) dec dword dword [rsi] ; (UNARY) jmp utils._#File.end#0#wrap#end utils._#File.end#0#wrap#0#if#end: utils._#File.end#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.end utils._#File.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.open: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov byte [rbp - 65], 47 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.to_cstr mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _open_file mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov dword [rbx], eax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8d, dword [rsi] ; (SET) add r8d, 1 ; (STD_OP) cmp r8d, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.open#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 1 ; (SET) jmp utils._#File.open#0#wrap#end utils._#File.open#0#wrap#0#if#end: utils._#File.open#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete utils._#File.open#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.create: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov byte [rbp - 65], 47 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.to_cstr mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _create_file mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov dword [rbx], eax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8d, dword [rsi] ; (SET) add r8d, 1 ; (STD_OP) cmp r8d, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.create#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 1 ; (SET) jmp utils._#File.create#0#wrap#end utils._#File.create#0#wrap#0#if#end: utils._#File.create#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete utils._#File.create#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.close: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8d, dword [rsi] ; (SET) add r8d, 1 ; (STD_OP) cmp r8d, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.close#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) movsxd rsi, dword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _close_file ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov dword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov ebx, dword [rsi] ; (SET) dec dword dword [rsi] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 0 ; (SET) jmp utils._#File.close#0#wrap#end utils._#File.close#0#wrap#0#if#end: utils._#File.close#0#wrap#end: utils._#File.close#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.read: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.read#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp utils._#File.read#end jmp utils._#File.read#0#wrap#end utils._#File.read#0#wrap#0#if#end: utils._#File.read#0#wrap#end: sub rsp, 1 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) movsxd rsi, dword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) lea rsi, byte [rbp - 57] ; (TAKE_PTR) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call _read_byte mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, 1 ; (STD_OP) mov qword [rbx], r8 ; (SET) cmp r11, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.read#1#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 1 ; (SET) ; STARTING RETURN mov al, 0 ; (SET) jmp utils._#File.read#end jmp utils._#File.read#1#wrap#end utils._#File.read#1#wrap#0#if#end: cmp r11, 1 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.read#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel utils._#File.read#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call _perror sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel utils._#File.read#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) movsxd rsi, dword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call _print_num ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 1 ; (SET) ; STARTING RETURN mov al, 0 ; (SET) jmp utils._#File.read#end jmp utils._#File.read#1#wrap#end utils._#File.read#1#wrap#1#if#end: utils._#File.read#1#wrap#end: ; STARTING RETURN mov al, byte [rbp - 57] ; (SET) jmp utils._#File.read#end utils._#File.read#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.unread: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.unread#0#wrap#0#if#end jmp utils._#File.unread#end jmp utils._#File.unread#0#wrap#end utils._#File.unread#0#wrap#0#if#end: utils._#File.unread#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) sub r8, 1 ; (STD_OP) mov qword [rbx], r8 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) movsxd rsi, dword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 28 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _fseek ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.unread#1#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 0 ; (SET) jmp utils._#File.unread#1#wrap#end utils._#File.unread#1#wrap#0#if#end: utils._#File.unread#1#wrap#end: utils._#File.unread#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.write: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for local variable byte mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) movsxd rsi, dword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) lea rsi, byte [rbp - 57] ; (TAKE_PTR) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call _write_byte mov r11, rax ; (SET) cmp r11, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.write#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 1 ; (SET) jmp utils._#File.write#0#wrap#end utils._#File.write#0#wrap#0#if#end: utils._#File.write#0#wrap#end: utils._#File.write#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#File.write_cstr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils._#File.write_cstr#0#loop#0#bool#end mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils._#File.write_cstr#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.write_cstr#0#loop#end utils._#File.write_cstr#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov sil, byte [r11] ; (SET_PRM_R) mov byte [rbp - 65], sil ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write utils._#File.write_cstr#0#loop#rep: mov rbx, r11 ; (SET) add r11, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je utils._#File.write_cstr#0#loop#1#bool#end mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 utils._#File.write_cstr#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#File.write_cstr#0#loop#end jmp utils._#File.write_cstr#0#loop#start utils._#File.write_cstr#0#loop#end: utils._#File.write_cstr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) utils._#Iterator.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.get: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rax, rax ; (SET) jmp utils._#Iterator.get#end utils._#Iterator.get#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.next: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Iterator.next#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) jmp utils._#Iterator.next#0#wrap#end utils._#Iterator.next#0#wrap#0#if#end: utils._#Iterator.next#0#wrap#end: utils._#Iterator.next#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.at_end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp utils._#Iterator.at_end#end utils._#Iterator.at_end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.prev: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je utils._#Iterator.prev#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) dec qword qword [rsi] ; (UNARY) jmp utils._#Iterator.prev#0#wrap#end utils._#Iterator.prev#0#wrap#0#if#end: utils._#Iterator.prev#0#wrap#end: utils._#Iterator.prev#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.get_pos: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp utils._#Iterator.get_pos#end utils._#Iterator.get_pos#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end utils._#Iterator.set_pos: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) utils._#Iterator.set_pos#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._in_csv: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, 0 ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._in_csv#0#loop#end parse._in_csv#0#loop#start: mov cl, byte [r10] ; (SET) cmp cl, 44 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._in_csv#0#loop#0#wrap#0#if#end cmp r12, 0 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._in_csv#0#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._in_csv#0#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._in_csv#0#loop#0#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._in_csv#end jmp parse._in_csv#0#loop#0#wrap#0#if#0#wrap#end parse._in_csv#0#loop#0#wrap#0#if#0#wrap#0#if#end: parse._in_csv#0#loop#0#wrap#0#if#0#wrap#end: mov r12, 0 ; (SET) jmp parse._in_csv#0#loop#0#wrap#end parse._in_csv#0#loop#0#wrap#0#if#end: cmp r12, 0 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._in_csv#0#loop#0#wrap#1#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, byte [r10] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._in_csv#0#loop#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._in_csv#0#loop#0#wrap#1#if#end mov rbx, r12 ; (SET) inc r12 ; (UNARY) jmp parse._in_csv#0#loop#0#wrap#end parse._in_csv#0#loop#0#wrap#1#if#end: mov r12, 0 ; (SET) mov rbx, r12 ; (SET) dec r12 ; (UNARY) jmp parse._in_csv#0#loop#0#wrap#end parse._in_csv#0#loop#0#wrap#2#if#end: parse._in_csv#0#loop#0#wrap#end: parse._in_csv#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._in_csv#0#loop#end jmp parse._in_csv#0#loop#start parse._in_csv#0#loop#end: ; STARTING RETURN cmp r12, 0 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._in_csv#1#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; Gen index mov rax, r12 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._in_csv#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp parse._in_csv#end parse._in_csv#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._str_contains: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11b, bl ; (SET) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._str_contains#0#loop#end parse._str_contains#0#loop#start: mov cl, byte [r10] ; (SET) cmp cl, r11b mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._str_contains#0#loop#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._str_contains#end jmp parse._str_contains#0#loop#0#wrap#end parse._str_contains#0#loop#0#wrap#0#if#end: parse._str_contains#0#loop#0#wrap#end: parse._str_contains#0#loop#rep: mov rbx, r10 ; (SET) add r10, 1 ; (STD_OP) mov cl, byte [r10] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._str_contains#0#loop#end jmp parse._str_contains#0#loop#start parse._str_contains#0#loop#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._str_contains#end parse._str_contains#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.produce_word_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable prev ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for local variable out mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rel parse.TTYPE_USRWD] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov qword [rbp - 168], 1 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#File.read sub rsp, 1 ; Create stack space for local variable ch mov byte [rbp - 153], al ; (SET) mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse.produce_word_token#0#loop#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 156], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 158], sil ; (SET) mov al, byte [rbp - 158] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse.is_reserved mov r9b, byte [rbp - 157] ; (SET) mov r8b, byte [rbp - 156] ; (SET) mov bl, byte [rbp - 155] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], al ; (SET) mov cl, byte [rbp - 155] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 154], al ; Mov after compare lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 154], 0 parse.produce_word_token#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse.produce_word_token#0#loop#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 156], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 157], sil ; (SET) mov al, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse.is_whitespace mov r9b, byte [rbp - 156] ; (SET) mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], al ; (SET) mov cl, byte [rbp - 154] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse.produce_word_token#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#0#loop#end parse.produce_word_token#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.read mov byte [rbp - 153], al ; (SET) parse.produce_word_token#0#loop#rep: mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse.produce_word_token#0#loop#3#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 156], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 158], sil ; (SET) mov al, byte [rbp - 158] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse.is_reserved mov r9b, byte [rbp - 157] ; (SET) mov r8b, byte [rbp - 156] ; (SET) mov bl, byte [rbp - 155] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], al ; (SET) mov cl, byte [rbp - 155] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 154], al ; Mov after compare lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 154], 0 parse.produce_word_token#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse.produce_word_token#0#loop#2#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 156], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 157], sil ; (SET) mov al, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse.is_whitespace mov r9b, byte [rbp - 156] ; (SET) mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], al ; (SET) mov cl, byte [rbp - 154] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse.produce_word_token#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#0#loop#end jmp parse.produce_word_token#0#loop#start parse.produce_word_token#0#loop#end: mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.unread jmp parse.produce_word_token#1#wrap#end parse.produce_word_token#1#wrap#0#if#end: parse.produce_word_token#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.KEYWORDS] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov rsi, qword [rbp - 112] ; (SET_PRM_R) mov qword [rbp - 170], rsi ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#2#wrap#0#if#end mov rsi, qword [rel parse.TTYPE_KEYWD] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_word_token#2#wrap#end parse.produce_word_token#2#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.KEYTYPES] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov rsi, qword [rbp - 112] ; (SET_PRM_R) mov qword [rbp - 170], rsi ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#2#wrap#1#if#end mov rsi, qword [rel parse.TTYPE_KEYTP] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_word_token#2#wrap#end parse.produce_word_token#2#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.LITERALS] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov rsi, qword [rbp - 112] ; (SET_PRM_R) mov qword [rbp - 170], rsi ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#2#wrap#2#if#end mov rsi, qword [rel parse.TTYPE_LITRL] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_word_token#2#wrap#end parse.produce_word_token#2#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.MULTI_OP_W] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov rsi, qword [rbp - 112] ; (SET_PRM_R) mov qword [rbp - 170], rsi ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_word_token#2#wrap#3#if#end mov rsi, qword [rel parse.TTYPE_AUG] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_word_token#2#wrap#end parse.produce_word_token#2#wrap#3#if#end: parse.produce_word_token#2#wrap#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_word_token#end parse.produce_word_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.produce_string_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable prev ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for local variable out mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rel parse.TTYPE_LITRL] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov qword [rbp - 168], 1 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#File.read sub rsp, 1 ; Create stack space for local variable delim mov byte [rbp - 153], al ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.produce_string_token#0#loop#0#bool#end mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.produce_string_token#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_string_token#0#loop#end parse.produce_string_token#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.read sub rsp, 1 ; Create stack space for local variable ch mov byte [rbp - 154], al ; (SET) mov cl, byte [rbp - 154] ; (SET) cmp cl, 92 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_string_token#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 162], rax ; (SET) lea rsi, byte [rbp - 154] ; (TAKE_PTR) mov qword [rbp - 170], rsi ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call utils._#Vector.push sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 162], r10 ; (SET) mov rax, qword [rbp - 162] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call utils._#File.read mov byte [rbp - 154], al ; (SET) jmp parse.produce_string_token#0#loop#1#wrap#end parse.produce_string_token#0#loop#1#wrap#0#if#end: mov cl, byte [rbp - 154] ; (SET) cmp cl, 10 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_string_token#0#loop#1#wrap#1#if#end mov rbx, qword [rbp - 104] ; (SET) inc qword qword [rbp - 104] ; (UNARY) jmp parse.produce_string_token#0#loop#1#wrap#end parse.produce_string_token#0#loop#1#wrap#1#if#end: mov cl, byte [rbp - 154] ; (SET) cmp cl, byte [rbp - 153] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_string_token#0#loop#1#wrap#2#if#end mov byte [rbp - 153], 0 ; (SET) jmp parse.produce_string_token#0#loop#1#wrap#end parse.produce_string_token#0#loop#1#wrap#2#if#end: parse.produce_string_token#0#loop#1#wrap#end: mov cl, byte [rbp - 154] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_string_token#0#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 162], rax ; (SET) lea rsi, byte [rbp - 154] ; (TAKE_PTR) mov qword [rbp - 170], rsi ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp parse.produce_string_token#0#loop#2#wrap#end parse.produce_string_token#0#loop#2#wrap#0#if#end: parse.produce_string_token#0#loop#2#wrap#end: parse.produce_string_token#0#loop#rep: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.produce_string_token#0#loop#3#bool#end mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.produce_string_token#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_string_token#0#loop#end jmp parse.produce_string_token#0#loop#start parse.produce_string_token#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_string_token#end parse.produce_string_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.comment_line: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.read mov r11b, al ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.comment_line#0#loop#0#bool#end cmp r11b, 10 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.comment_line#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_line#0#loop#end parse.comment_line#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.read mov r11b, al ; (SET) parse.comment_line#0#loop#rep: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.comment_line#0#loop#1#bool#end cmp r11b, 10 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.comment_line#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_line#0#loop#end jmp parse.comment_line#0#loop#start parse.comment_line#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_line#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.unread jmp parse.comment_line#1#wrap#end parse.comment_line#1#wrap#0#if#end: parse.comment_line#1#wrap#end: parse.comment_line#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.comment_block: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12b, 1 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.comment_block#0#loop#0#bool#end cmp r12b, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.comment_block#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_block#0#loop#end parse.comment_block#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.read mov r12b, al ; (SET) cmp r12b, 35 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_block#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.read mov r12b, al ; (SET) cmp r12b, 47 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_block#0#loop#1#wrap#0#if#0#wrap#0#if#end mov r12b, 0 ; (SET) jmp parse.comment_block#0#loop#1#wrap#0#if#0#wrap#end parse.comment_block#0#loop#1#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.comment_line jmp parse.comment_block#0#loop#1#wrap#0#if#0#wrap#end parse.comment_block#0#loop#1#wrap#0#if#0#wrap#1#if#end: parse.comment_block#0#loop#1#wrap#0#if#0#wrap#end: jmp parse.comment_block#0#loop#1#wrap#end parse.comment_block#0#loop#1#wrap#0#if#end: parse.comment_block#0#loop#1#wrap#end: cmp r12b, 10 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_block#0#loop#2#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) jmp parse.comment_block#0#loop#2#wrap#end parse.comment_block#0#loop#2#wrap#0#if#end: parse.comment_block#0#loop#2#wrap#end: parse.comment_block#0#loop#rep: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.comment_block#0#loop#3#bool#end cmp r12b, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.comment_block#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.comment_block#0#loop#end jmp parse.comment_block#0#loop#start parse.comment_block#0#loop#end: parse.comment_block#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.is_comment_block: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel parse.is_comment_block#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcmp mov al, al ; (SET) jmp parse.is_comment_block#end parse.is_comment_block#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.is_multi_delim: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rsi, qword [rel parse.is_multi_delim#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.is_multi_delim#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse.is_multi_delim#end jmp parse.is_multi_delim#0#wrap#end parse.is_multi_delim#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rsi, qword [rel parse.is_multi_delim#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.is_multi_delim#0#wrap#1#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse.is_multi_delim#end jmp parse.is_multi_delim#0#wrap#end parse.is_multi_delim#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rsi, qword [rel parse.is_multi_delim#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.is_multi_delim#0#wrap#2#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse.is_multi_delim#end jmp parse.is_multi_delim#0#wrap#end parse.is_multi_delim#0#wrap#2#if#end: parse.is_multi_delim#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse.is_multi_delim#end parse.is_multi_delim#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.produce_reserved_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable prev ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for local variable out mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rel parse.TTYPE_USRWD] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov qword [rbp - 168], 1 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#File.read sub rsp, 1 ; Create stack space for local variable ch mov byte [rbp - 153], al ; (SET) mov cl, byte [rbp - 153] ; (SET) cmp cl, 35 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push mov rsi, qword [rel parse.TTYPE_COMNT] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call parse.comment_line ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_reserved_token#end jmp parse.produce_reserved_token#0#wrap#end parse.produce_reserved_token#0#wrap#0#if#end: parse.produce_reserved_token#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push mov r11, 1 ; (SET) cmp r11, qword [rel parse.MAX_MULTI] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#1#loop#end parse.produce_reserved_token#1#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.read mov byte [rbp - 153], al ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 155], sil ; (SET) mov al, byte [rbp - 155] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse.is_reserved mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#1#loop#0#wrap#0#if#end mov r11, qword [rel parse.MAX_MULTI] ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.unread jmp parse.produce_reserved_token#1#loop#0#wrap#end parse.produce_reserved_token#1#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp parse.produce_reserved_token#1#loop#0#wrap#end parse.produce_reserved_token#1#loop#0#wrap#1#if#end: parse.produce_reserved_token#1#loop#0#wrap#end: parse.produce_reserved_token#1#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) cmp r11, qword [rel parse.MAX_MULTI] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#1#loop#end jmp parse.produce_reserved_token#1#loop#start parse.produce_reserved_token#1#loop#end: mov r11b, 1 ; (SET) cmp r11b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#end parse.produce_reserved_token#2#loop#start: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r12, rax ; (SET) mov rcx, qword [rbp - 144] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#0#wrap#0#if#end mov cl, byte [r12] ; (SET) cmp cl, 44 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end mov cl, byte [r12] ; (SET) cmp cl, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#0#if#end mov rsi, qword [rel parse.TTYPE_SEP] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov rsi, qword [rel parse.OP] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov sil, byte [r12] ; (SET_PRM_R) mov byte [rbp - 162], sil ; (SET) mov rax, qword [rbp - 161] ; (SET) mov bl, byte [rbp - 162] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call parse._str_contains cmp al, 0 je parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#1#if#end mov rsi, qword [rel parse.TTYPE_AUG] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov rsi, qword [rel parse.DELIMS] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov sil, byte [r12] ; (SET_PRM_R) mov byte [rbp - 162], sil ; (SET) mov rax, qword [rbp - 161] ; (SET) mov bl, byte [rbp - 162] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call parse._str_contains cmp al, 0 je parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#2#if#end mov rsi, qword [rel parse.TTYPE_DELIM] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#2#if#end: mov rsi, qword [rel parse.TTYPE_UNKNOWN] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#3#if#end: parse.produce_reserved_token#2#loop#0#wrap#0#if#0#wrap#end: mov r11b, 0 ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.MULTI_OP] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov qword [rbp - 170], r12 ; (SET) mov rax, qword [rbp - 162] ; (SET) mov rbx, qword [rbp - 170] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#0#wrap#1#if#end mov rsi, qword [rel parse.TTYPE_AUG] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) mov r11b, 0 ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 162], r12 ; (SET) mov rax, qword [rbp - 162] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse.is_comment_block mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#0#wrap#2#if#end mov rsi, qword [rel parse.TTYPE_COMNT] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call parse.comment_block mov r11b, 0 ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 162], r12 ; (SET) mov rax, qword [rbp - 162] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse.is_multi_delim mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#0#wrap#3#if#end mov rsi, qword [rel parse.TTYPE_DELIM] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) mov r11b, 0 ; (SET) jmp parse.produce_reserved_token#2#loop#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#3#if#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.unread jmp parse.produce_reserved_token#2#loop#0#wrap#end parse.produce_reserved_token#2#loop#0#wrap#4#if#end: parse.produce_reserved_token#2#loop#0#wrap#end: parse.produce_reserved_token#2#loop#rep: cmp r11b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_reserved_token#2#loop#end jmp parse.produce_reserved_token#2#loop#start parse.produce_reserved_token#2#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_reserved_token#end parse.produce_reserved_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.produce_numeric_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable prev ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for local variable out mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rel parse.TTYPE_LITRL] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov qword [rbp - 168], 1 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#File.read sub rsp, 1 ; Create stack space for local variable ch mov byte [rbp - 153], al ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push mov r11b, 0 ; (SET) mov cl, byte [rbp - 153] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.read mov byte [rbp - 153], al ; (SET) mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_numeric_token#end jmp parse.produce_numeric_token#0#wrap#0#if#0#wrap#end parse.produce_numeric_token#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 156], sil ; (SET) mov al, byte [rbp - 156] ; (SET) lea rsp, [rbp - 155] ; Free stack space (freeing tmp variables) call parse.is_reserved mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse.produce_numeric_token#0#wrap#0#if#0#wrap#1#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 156], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 157], sil ; (SET) mov al, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse.is_whitespace mov r9b, byte [rbp - 156] ; (SET) mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], al ; (SET) mov cl, byte [rbp - 154] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse.produce_numeric_token#0#wrap#0#if#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#0#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.unread sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_numeric_token#end jmp parse.produce_numeric_token#0#wrap#0#if#0#wrap#end parse.produce_numeric_token#0#wrap#0#if#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 155], sil ; (SET) mov al, byte [rbp - 155] ; (SET) lea rsp, [rbp - 154] ; Free stack space (freeing tmp variables) call parse.is_numeric mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#0#wrap#0#if#0#wrap#2#if#end mov r11b, 1 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp parse.produce_numeric_token#0#wrap#0#if#0#wrap#end parse.produce_numeric_token#0#wrap#0#if#0#wrap#2#if#end: parse.produce_numeric_token#0#wrap#0#if#0#wrap#end: jmp parse.produce_numeric_token#0#wrap#end parse.produce_numeric_token#0#wrap#0#if#end: parse.produce_numeric_token#0#wrap#end: mov r12b, 0 ; (SET) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.produce_numeric_token#1#loop#0#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], rsi ; (SET) mov rdi, [rbp - 161] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse.produce_numeric_token#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#end parse.produce_numeric_token#1#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.read mov byte [rbp - 153], al ; (SET) mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#1#wrap#0#if#end mov r13b, 0 ; (SET) jmp parse.produce_numeric_token#1#loop#1#wrap#end parse.produce_numeric_token#1#loop#1#wrap#0#if#end: cmp r12b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.produce_numeric_token#1#loop#1#wrap#1#if#0#bool#end mov cl, byte [rbp - 153] ; (SET) cmp cl, 46 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.produce_numeric_token#1#loop#1#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#1#wrap#1#if#end mov r12b, 1 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp parse.produce_numeric_token#1#loop#1#wrap#end parse.produce_numeric_token#1#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 156], sil ; (SET) mov al, byte [rbp - 156] ; (SET) lea rsp, [rbp - 155] ; Free stack space (freeing tmp variables) call parse.is_reserved mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse.produce_numeric_token#1#loop#1#wrap#2#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 156], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 157], sil ; (SET) mov al, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse.is_whitespace mov r9b, byte [rbp - 156] ; (SET) mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], al ; (SET) mov cl, byte [rbp - 154] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse.produce_numeric_token#1#loop#1#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.unread mov r13b, 0 ; (SET) jmp parse.produce_numeric_token#1#loop#1#wrap#end parse.produce_numeric_token#1#loop#1#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 154], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 155], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov sil, byte [rbp - 153] ; (SET_PRM_R) mov byte [rbp - 156], sil ; (SET) mov al, byte [rbp - 156] ; (SET) lea rsp, [rbp - 155] ; Free stack space (freeing tmp variables) call parse.is_numeric mov r8b, byte [rbp - 155] ; (SET) mov bl, byte [rbp - 154] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.produce_numeric_token#1#loop#1#wrap#3#if#0#bool#end cmp r11b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.produce_numeric_token#1#loop#1#wrap#3#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#1#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#File.unread mov r13b, 0 ; (SET) jmp parse.produce_numeric_token#1#loop#1#wrap#end parse.produce_numeric_token#1#loop#1#wrap#3#if#end: mov cl, byte [rbp - 153] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#1#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) lea rsi, byte [rbp - 153] ; (TAKE_PTR) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp parse.produce_numeric_token#1#loop#1#wrap#end parse.produce_numeric_token#1#loop#1#wrap#4#if#end: parse.produce_numeric_token#1#loop#1#wrap#end: parse.produce_numeric_token#1#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.produce_numeric_token#1#loop#2#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 36 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], rsi ; (SET) mov rdi, [rbp - 161] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse.produce_numeric_token#1#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_numeric_token#1#loop#end jmp parse.produce_numeric_token#1#loop#start parse.produce_numeric_token#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_numeric_token#end parse.produce_numeric_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.is_whitespace: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 8 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.is_whitespace#0#wrap#0#if#0#bool#end cmp r10b, 14 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.is_whitespace#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.is_whitespace#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse.is_whitespace#end jmp parse.is_whitespace#0#wrap#end parse.is_whitespace#0#wrap#0#if#end: cmp r10b, 32 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.is_whitespace#0#wrap#1#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse.is_whitespace#end jmp parse.is_whitespace#0#wrap#end parse.is_whitespace#0#wrap#1#if#end: parse.is_whitespace#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse.is_whitespace#end parse.is_whitespace#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.is_reserved: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) ; STARTING RETURN sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov rsi, qword [rel parse.RESERVED] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov byte [rbp - 66], r10b ; (SET) mov rax, qword [rbp - 65] ; (SET) mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._str_contains mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp parse.is_reserved#end parse.is_reserved#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.is_numeric: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 48 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse.is_numeric#0#wrap#0#if#0#bool#end cmp r10b, 57 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.is_numeric#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.is_numeric#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse.is_numeric#end jmp parse.is_numeric#0#wrap#end parse.is_numeric#0#wrap#0#if#end: parse.is_numeric#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse.is_numeric#end parse.is_numeric#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.produce_next_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable prev ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#0#wrap#0#if#end mov rbx, qword [rbp - 64] ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 80] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils.strlen mov rbx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) add rbx, rax ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) jmp parse.produce_next_token#0#wrap#end parse.produce_next_token#0#wrap#0#if#end: parse.produce_next_token#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#File.read mov r11b, al ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r11b ; (SET) mov al, byte [rbp - 90] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse.is_whitespace mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#1#loop#end parse.produce_next_token#1#loop#start: cmp r11b, 10 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#1#loop#0#wrap#0#if#end mov rbx, qword [rbp - 72] ; (SET) inc qword qword [rbp - 72] ; (UNARY) mov qword [rbp - 64], 0 ; (SET) jmp parse.produce_next_token#1#loop#0#wrap#end parse.produce_next_token#1#loop#0#wrap#0#if#end: parse.produce_next_token#1#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#File.read mov r11b, al ; (SET) mov rbx, qword [rbp - 64] ; (SET) inc qword qword [rbp - 64] ; (UNARY) parse.produce_next_token#1#loop#rep: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r11b ; (SET) mov al, byte [rbp - 90] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse.is_whitespace mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#1#loop#end jmp parse.produce_next_token#1#loop#start parse.produce_next_token#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#File.unread cmp r11b, 39 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse.produce_next_token#2#wrap#0#if#0#bool#end cmp r11b, 34 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse.produce_next_token#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#2#wrap#0#if#end ; STARTING RETURN sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_string_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_next_token#end jmp parse.produce_next_token#2#wrap#end parse.produce_next_token#2#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r11b ; (SET) mov al, byte [rbp - 90] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse.is_reserved mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#2#wrap#1#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_reserved_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rcx, qword [rbp - 152] ; (SET) cmp rcx, qword [rel parse.TTYPE_COMNT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#2#wrap#1#if#0#loop#end parse.produce_next_token#2#wrap#1#if#0#loop#start: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 224], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 216] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 224] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 216] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rax ; (SET) mov rax, qword [rbp - 224] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 216] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct parse.produce_next_token#2#wrap#1#if#0#loop#rep: mov rcx, qword [rbp - 152] ; (SET) cmp rcx, qword [rel parse.TTYPE_COMNT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#2#wrap#1#if#0#loop#end jmp parse.produce_next_token#2#wrap#1#if#0#loop#start parse.produce_next_token#2#wrap#1#if#0#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_next_token#end jmp parse.produce_next_token#2#wrap#end parse.produce_next_token#2#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r11b ; (SET) mov al, byte [rbp - 90] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse.is_numeric mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#2#wrap#2#if#end ; STARTING RETURN sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_numeric_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_next_token#end jmp parse.produce_next_token#2#wrap#end parse.produce_next_token#2#wrap#2#if#end: cmp r11b, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.produce_next_token#2#wrap#3#if#end ; STARTING RETURN sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_word_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_next_token#end jmp parse.produce_next_token#2#wrap#end parse.produce_next_token#2#wrap#3#if#end: parse.produce_next_token#2#wrap#end: sub rsp, 32 ; Create stack space for local variable out mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rel parse.TTYPE_ERR] ; (SET_PRM_R) mov qword [rbp - 120], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.produce_next_token#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 128], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 112], rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_next_token#end parse.produce_next_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.produce_first_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable tmp mov qword [rbp - 72], 1 ; (SET) mov qword [rbp - 64], 1 ; (SET) mov rsi, qword [rel parse.TTYPE_ERR] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) ; STARTING RETURN sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse.produce_first_token#end parse.produce_first_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.gen_token_list: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov qword [rbp - 136], 32 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#File.open sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) sub rsp, 32 call parse.produce_first_token ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct add rsp, 32 ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.gen_token_list#1#loop#end parse.gen_token_list#1#loop#start: mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_COMNT] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.gen_token_list#1#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) jmp parse.gen_token_list#1#loop#0#wrap#end parse.gen_token_list#1#loop#0#wrap#0#if#end: sub rsp, 32 ; Create stack space for local variable com ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 224], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 216] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 224] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 152] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse._#Token.end jmp parse.gen_token_list#1#loop#0#wrap#end parse.gen_token_list#1#loop#0#wrap#1#if#end: parse.gen_token_list#1#loop#0#wrap#end: parse.gen_token_list#1#loop#rep: mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.gen_token_list#1#loop#end jmp parse.gen_token_list#1#loop#start parse.gen_token_list#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#File.close ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct jmp parse.gen_token_list#end parse.gen_token_list#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_token_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 32 ; Create stack space for local variable t ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#0#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_SEP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#1#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#2#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#3#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#4#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#5#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#6#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#6#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_COMNT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#7#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#7#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_UNKNOWN] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#8#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#8#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#8#if#end: mov rcx, qword [rbp - 88] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_type#0#wrap#9#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token_type#0#wrap#9#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_token_type#0#wrap#end parse.print_token_type#0#wrap#9#if#end: parse.print_token_type#0#wrap#end: parse.print_token_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_token: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 32 ; Create stack space for local variable t ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp + 8] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 80] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 32 ; Create stack space for tmp variable ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct call parse.print_token_type lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_token#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _printf parse.print_token#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_token_list: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_list#0#loop#end parse.print_token_list#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct call parse.print_token lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) parse.print_token_list#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_token_list#0#loop#end jmp parse.print_token_list#0#loop#start parse.print_token_list#0#loop#end: parse.print_token_list#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.end_token_list: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.end_token_list#0#loop#end parse.end_token_list#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._#Token.end parse.end_token_list#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.end_token_list#0#loop#end jmp parse.end_token_list#0#loop#start parse.end_token_list#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end parse.end_token_list#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._get_closing_delim: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10b, al ; (SET) cmp r10b, 47 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._get_closing_delim#0#wrap#0#if#0#bool#end cmp r10b, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._get_closing_delim#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._get_closing_delim#0#wrap#0#if#end ; STARTING RETURN mov al, 59 ; (SET) jmp parse._get_closing_delim#end jmp parse._get_closing_delim#0#wrap#end parse._get_closing_delim#0#wrap#0#if#end: cmp r10b, 40 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._get_closing_delim#0#wrap#1#if#end ; STARTING RETURN mov al, 41 ; (SET) jmp parse._get_closing_delim#end jmp parse._get_closing_delim#0#wrap#end parse._get_closing_delim#0#wrap#1#if#end: cmp r10b, 91 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._get_closing_delim#0#wrap#2#if#end ; STARTING RETURN mov al, 93 ; (SET) jmp parse._get_closing_delim#end jmp parse._get_closing_delim#0#wrap#end parse._get_closing_delim#0#wrap#2#if#end: cmp r10b, 123 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._get_closing_delim#0#wrap#3#if#end ; STARTING RETURN mov al, 125 ; (SET) jmp parse._get_closing_delim#end jmp parse._get_closing_delim#0#wrap#end parse._get_closing_delim#0#wrap#3#if#end: parse._get_closing_delim#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._get_closing_delim#end parse._get_closing_delim#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._is_closing: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._is_closing#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp parse._is_closing#end jmp parse._is_closing#0#wrap#end parse._is_closing#0#wrap#0#if#end: parse._is_closing#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov r11b, byte [rdi] ; (SET) sub rsp, 1 ; Create stack space for tmp variable cmp r11b, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 jne parse._is_closing#1#wrap#0#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r11b, 125 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 58], al ; Mov after compare cmp byte byte [rbp - 58], 0 parse._is_closing#1#wrap#0#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._is_closing#1#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r11b, 93 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 parse._is_closing#1#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._is_closing#1#wrap#0#if#0#bool#end cmp r11b, 41 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._is_closing#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._is_closing#1#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._is_closing#end jmp parse._is_closing#1#wrap#end parse._is_closing#1#wrap#0#if#end: parse._is_closing#1#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._is_closing#end parse._is_closing#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._advance_check: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._advance_check#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r11 ; (SET) mov qword [rbp - 75], r12 ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._advance_check#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._advance_check#0#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r11 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r11] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; STARTING RETURN mov al, 1 ; (SET) jmp parse._advance_check#end jmp parse._advance_check#0#wrap#end parse._advance_check#0#wrap#0#if#end: parse._advance_check#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._advance_check#end parse._advance_check#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_print_err: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_print_err#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_print_err#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov byte [rbp - 65], 47 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Artifact.to_cstr mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_print_err#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 32 ; Create stack space for tmp variable ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct call parse.print_token lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_print_err#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov rcx, qword [rel parse.errors_shown] ; (SET) cmp rcx, qword [rel parse.MAX_ERR_SHOW] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_print_err#4#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_print_err#4#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse._ast_print_err#4#wrap#end parse._ast_print_err#4#wrap#0#if#end: parse._ast_print_err#4#wrap#end: parse._ast_print_err#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_block_pass: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, 1 ; (SET) cmp r12, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_block_pass#0#loop#0#bool#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_block_pass#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_block_pass#0#loop#end parse._ast_block_pass#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) mov rsi, qword [rel parse._ast_block_pass#0#loop#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_block_pass#0#loop#1#wrap#0#if#end mov rbx, r12 ; (SET) sub rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) jmp parse._ast_block_pass#0#loop#1#wrap#end parse._ast_block_pass#0#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) mov rsi, qword [rel parse._ast_block_pass#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_block_pass#0#loop#1#wrap#1#if#end mov rbx, r12 ; (SET) add rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) jmp parse._ast_block_pass#0#loop#1#wrap#end parse._ast_block_pass#0#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r11 ; (SET) mov rsi, qword [rel parse._ast_block_pass#0#loop#1#wrap#2#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 74], rsi ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_block_pass#0#loop#1#wrap#2#if#0#bool#end cmp r12, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._ast_block_pass#0#loop#1#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_block_pass#0#loop#1#wrap#2#if#end mov rbx, r12 ; (SET) sub rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) jmp parse._ast_block_pass#0#loop#1#wrap#end parse._ast_block_pass#0#loop#1#wrap#2#if#end: parse._ast_block_pass#0#loop#1#wrap#end: cmp r12, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_block_pass#0#loop#2#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r11 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r11] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_block_pass#0#loop#2#wrap#end parse._ast_block_pass#0#loop#2#wrap#0#if#end: parse._ast_block_pass#0#loop#2#wrap#end: parse._ast_block_pass#0#loop#rep: cmp r12, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_block_pass#0#loop#3#bool#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_block_pass#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_block_pass#0#loop#end jmp parse._ast_block_pass#0#loop#start parse._ast_block_pass#0#loop#end: parse._ast_block_pass#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._op_prefix: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strlen mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_prefix#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp parse._op_prefix#end jmp parse._op_prefix#0#wrap#end parse._op_prefix#0#wrap#0#if#end: parse._op_prefix#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r10 ; (SET) mov rsi, qword [rel parse._op_prefix#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._op_prefix#1#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 60], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], r10 ; (SET) mov rsi, qword [rel parse._op_prefix#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 76], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 60] ; (SET) mov r8b, byte [rbp - 59] ; (SET) mov bl, byte [rbp - 58] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], al ; (SET) mov cl, byte [rbp - 58] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 57], 0 parse._op_prefix#1#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._op_prefix#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r10 ; (SET) mov rsi, qword [rel parse._op_prefix#1#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._op_prefix#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_prefix#1#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._op_prefix#end jmp parse._op_prefix#1#wrap#end parse._op_prefix#1#wrap#0#if#end: parse._op_prefix#1#wrap#end: cmp r11, 1 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_prefix#2#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp parse._op_prefix#end jmp parse._op_prefix#2#wrap#end parse._op_prefix#2#wrap#0#if#end: parse._op_prefix#2#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 45 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._op_prefix#3#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], rsi ; (SET) mov rdi, [rbp - 65] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 33 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 57], 0 parse._op_prefix#3#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._op_prefix#3#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 126 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._op_prefix#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_prefix#3#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._op_prefix#end jmp parse._op_prefix#3#wrap#end parse._op_prefix#3#wrap#0#if#end: parse._op_prefix#3#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._op_prefix#end parse._op_prefix#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._op_postfix: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r10 ; (SET) mov rsi, qword [rel parse._op_postfix#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._op_postfix#0#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 60], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], r10 ; (SET) mov rsi, qword [rel parse._op_postfix#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 76], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 60] ; (SET) mov r8b, byte [rbp - 59] ; (SET) mov bl, byte [rbp - 58] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], al ; (SET) mov cl, byte [rbp - 58] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 57], 0 parse._op_postfix#0#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._op_postfix#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r10 ; (SET) mov rsi, qword [rel parse._op_postfix#0#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._op_postfix#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_postfix#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._op_postfix#end jmp parse._op_postfix#0#wrap#end parse._op_postfix#0#wrap#0#if#end: parse._op_postfix#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._op_postfix#end parse._op_postfix#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._op_bin: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rsi, qword [rel parse._op_bin#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_bin#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._op_bin#end jmp parse._op_bin#0#wrap#end parse._op_bin#0#wrap#0#if#end: parse._op_bin#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r10 ; (SET) mov rax, qword [rbp - 66] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._op_prefix mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._op_bin#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r10 ; (SET) mov rax, qword [rbp - 67] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._op_postfix mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._op_bin#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_bin#1#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp parse._op_bin#end jmp parse._op_bin#1#wrap#end parse._op_bin#1#wrap#0#if#end: parse._op_bin#1#wrap#end: ; STARTING RETURN mov al, 1 ; (SET) jmp parse._op_bin#end parse._op_bin#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._op_order: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strlen mov r11, rax ; (SET) cmp r11, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#end mov r12b, byte [r10] ; (SET) cmp r12b, 96 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov rax, 0 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#0#if#end: cmp r12b, 46 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#1#if#end ; STARTING RETURN mov rax, 1 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#1#if#end: cmp r12b, 126 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#2#if#end ; STARTING RETURN mov rax, 2 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#2#if#end: cmp r12b, 42 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 jne parse._op_order#0#wrap#0#if#0#wrap#3#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r12b, 47 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 parse._op_order#0#wrap#0#if#0#wrap#3#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._op_order#0#wrap#0#if#0#wrap#3#if#0#bool#end cmp r12b, 37 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._op_order#0#wrap#0#if#0#wrap#3#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#3#if#end ; STARTING RETURN mov rax, 6 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#3#if#end: cmp r12b, 43 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._op_order#0#wrap#0#if#0#wrap#4#if#0#bool#end cmp r12b, 45 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._op_order#0#wrap#0#if#0#wrap#4#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#4#if#end ; STARTING RETURN mov rax, 7 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable cmp r12b, 33 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 jne parse._op_order#0#wrap#0#if#0#wrap#5#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r12b, 38 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 58], al ; Mov after compare cmp byte byte [rbp - 58], 0 parse._op_order#0#wrap#0#if#0#wrap#5#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._op_order#0#wrap#0#if#0#wrap#5#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r12b, 124 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 parse._op_order#0#wrap#0#if#0#wrap#5#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._op_order#0#wrap#0#if#0#wrap#5#if#0#bool#end cmp r12b, 94 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._op_order#0#wrap#0#if#0#wrap#5#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#5#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#5#if#end: cmp r12b, 60 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._op_order#0#wrap#0#if#0#wrap#6#if#0#bool#end cmp r12b, 62 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._op_order#0#wrap#0#if#0#wrap#6#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#6#if#end ; STARTING RETURN mov rax, 9 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#6#if#end: cmp r12b, 61 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#0#if#0#wrap#7#if#end ; STARTING RETURN mov rax, 11 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#0#if#0#wrap#end parse._op_order#0#wrap#0#if#0#wrap#7#if#end: parse._op_order#0#wrap#0#if#0#wrap#end: jmp parse._op_order#0#wrap#end parse._op_order#0#wrap#0#if#end: cmp r11, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel parse._op_order#0#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcmp cmp al, 0 je parse._op_order#0#wrap#1#if#0#wrap#0#if#end ; STARTING RETURN mov rax, 2 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#0#wrap#end parse._op_order#0#wrap#1#if#0#wrap#0#if#end: parse._op_order#0#wrap#1#if#0#wrap#end: mov r8, r10 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov r9, r10 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r9 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov cl, byte [r8] ; (SET) cmp cl, byte [rax] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#1#wrap#0#if#end mov r12b, byte [r10] ; (SET) cmp r12b, 43 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#0#if#0#bool#end cmp r12b, 45 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov rax, 3 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#end parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#0#if#end: cmp r12b, 60 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#1#if#0#bool#end cmp r12b, 62 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#1#if#end ; STARTING RETURN mov rax, 4 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#end parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#1#if#end: cmp r12b, 61 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#2#if#end ; STARTING RETURN mov rax, 9 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#end parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#2#if#end: parse._op_order#0#wrap#1#if#1#wrap#0#if#0#wrap#end: ; STARTING RETURN mov rax, 10 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#1#wrap#end parse._op_order#0#wrap#1#if#1#wrap#0#if#end: parse._op_order#0#wrap#1#if#1#wrap#end: mov r9, r10 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r9 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r9, rax ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 60 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._op_order#0#wrap#1#if#2#wrap#0#if#0#bool#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [rbp - 64] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 62 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._op_order#0#wrap#1#if#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#2#wrap#0#if#end ; STARTING RETURN mov rax, 9 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#2#wrap#end parse._op_order#0#wrap#1#if#2#wrap#0#if#end: mov r8, r10 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 61 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#2#wrap#1#if#end ; STARTING RETURN mov rax, 11 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#2#wrap#end parse._op_order#0#wrap#1#if#2#wrap#1#if#end: mov r8, r10 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 33 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#1#if#2#wrap#2#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#1#if#2#wrap#end parse._op_order#0#wrap#1#if#2#wrap#2#if#end: parse._op_order#0#wrap#1#if#2#wrap#end: jmp parse._op_order#0#wrap#end parse._op_order#0#wrap#1#if#end: cmp r11, 3 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#2#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rsi, qword [rel parse._op_order#0#wrap#2#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#2#if#0#wrap#0#if#end ; STARTING RETURN mov rax, 5 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#2#if#0#wrap#end parse._op_order#0#wrap#2#if#0#wrap#0#if#end: mov r8, r10 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 61 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#2#if#0#wrap#1#if#end ; STARTING RETURN mov rax, 9 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#2#if#0#wrap#end parse._op_order#0#wrap#2#if#0#wrap#1#if#end: mov r8, r10 ; (SET) ; Gen index mov rax, 2 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 61 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._op_order#0#wrap#2#if#0#wrap#2#if#end ; STARTING RETURN mov rax, 11 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#2#if#0#wrap#end parse._op_order#0#wrap#2#if#0#wrap#2#if#end: parse._op_order#0#wrap#2#if#0#wrap#end: ; STARTING RETURN mov rax, 10 ; (SET) jmp parse._op_order#end jmp parse._op_order#0#wrap#end parse._op_order#0#wrap#2#if#end: parse._op_order#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._op_order#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._op_order#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num ; STARTING RETURN mov rax, 999 ; (SET) jmp parse._op_order#end parse._op_order#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._astv_pre_id: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_pre_id#0#loop#end parse._astv_pre_id#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._op_prefix mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_pre_id#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._astv_pre_id#0#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._astv_pre_id#end jmp parse._astv_pre_id#0#loop#0#wrap#end parse._astv_pre_id#0#loop#0#wrap#0#if#end: parse._astv_pre_id#0#loop#0#wrap#end: sub rsp, 50 ; Create stack space for local variable pre sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_PRE_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r11, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) parse._astv_pre_id#0#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_pre_id#0#loop#end jmp parse._astv_pre_id#0#loop#start parse._astv_pre_id#0#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._astv_pre_id#end parse._astv_pre_id#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._astv_cast: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel parse._astv_cast#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._#Token.eq cmp al, 0 je parse._astv_cast#0#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable cast sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_CAST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._astv_cast#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_type mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 122], rbx ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov qword [rbp - 122], r14 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._astv_cast#0#wrap#end parse._astv_cast#0#wrap#0#if#end: parse._astv_cast#0#wrap#end: ; STARTING RETURN mov rax, r13 ; (SET) jmp parse._astv_cast#end parse._astv_cast#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._astv_post_id: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) mov r15b, 1 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._astv_post_id#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._astv_post_id#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#end parse._astv_post_id#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._astv_post_id#0#loop#1#wrap#0#if#0#bool#end cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._astv_post_id#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#0#if#end mov r15b, 0 ; (SET) jmp parse._astv_post_id#0#loop#1#wrap#end parse._astv_post_id#0#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._op_postfix mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#1#if#end sub rsp, 50 ; Create stack space for local variable post sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_POST_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) jmp parse._astv_post_id#0#loop#1#wrap#end parse._astv_post_id#0#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._astv_post_id#0#loop#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_value mov r14, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r12 ; (SET) mov rsi, qword [rel parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 74], rsi ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare cmp byte byte [rbp - 57], 0 jne parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 58], al ; Mov after compare cmp byte byte [rbp - 58], 0 parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_value mov r14, rax ; (SET) mov r15b, 0 ; (SET) jmp parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#end parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#0#if#end: parse._astv_post_id#0#loop#1#wrap#2#if#1#wrap#end: jmp parse._astv_post_id#0#loop#1#wrap#end parse._astv_post_id#0#loop#1#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._astv_post_id#0#loop#1#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#3#if#end sub rsp, 50 ; Create stack space for local variable ind sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_POST_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 123], rsi ; (SET) mov qword [rbp - 131], r12 ; (SET) mov byte [rbp - 132], 1 ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) mov dl, byte [rbp - 132] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._ast_value mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#end parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#0#if#end: parse._astv_post_id#0#loop#1#wrap#3#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r15b, 0 ; (SET) jmp parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#end parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#0#if#end: parse._astv_post_id#0#loop#1#wrap#3#if#2#wrap#end: jmp parse._astv_post_id#0#loop#1#wrap#end parse._astv_post_id#0#loop#1#wrap#3#if#end: mov r15b, 0 ; (SET) jmp parse._astv_post_id#0#loop#1#wrap#end parse._astv_post_id#0#loop#1#wrap#4#if#end: parse._astv_post_id#0#loop#1#wrap#end: parse._astv_post_id#0#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._astv_post_id#0#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._astv_post_id#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._astv_post_id#0#loop#end jmp parse._astv_post_id#0#loop#start parse._astv_post_id#0#loop#end: ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._astv_post_id#end parse._astv_post_id#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_value_bare: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) mov r14, r11 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._astv_pre_id mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_value mov r15, rax ; (SET) jmp parse._ast_value_bare#0#wrap#end parse._ast_value_bare#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov byte [rbp - 81], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov dl, byte [rbp - 81] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_value ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov al, 0 ; (SET) jmp parse._ast_value_bare#end jmp parse._ast_value_bare#0#wrap#1#if#1#wrap#end parse._ast_value_bare#0#wrap#1#if#1#wrap#0#if#end: parse._ast_value_bare#0#wrap#1#if#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_value_bare#0#wrap#1#if#2#wrap#0#if#0#bool#end cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._ast_value_bare#0#wrap#1#if#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#0#wrap#1#if#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._astv_cast mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable tmp mov qword [rbp - 64], rax ; (SET) jmp parse._ast_value_bare#0#wrap#1#if#2#wrap#end parse._ast_value_bare#0#wrap#1#if#2#wrap#0#if#end: parse._ast_value_bare#0#wrap#1#if#2#wrap#end: jmp parse._ast_value_bare#0#wrap#end parse._ast_value_bare#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#0#wrap#2#if#end sub rsp, 50 ; Create stack space for local variable val sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r14 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_value_bare#0#wrap#end parse._ast_value_bare#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#0#wrap#3#if#end sub rsp, 50 ; Create stack space for local variable val sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_LITERAL] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r14 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_value_bare#0#wrap#end parse._ast_value_bare#0#wrap#3#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov al, 0 ; (SET) jmp parse._ast_value_bare#end jmp parse._ast_value_bare#0#wrap#end parse._ast_value_bare#0#wrap#4#if#end: parse._ast_value_bare#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_value_bare#1#wrap#0#if#0#bool#end cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._ast_value_bare#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value_bare#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], rsi ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 97], rbx ; (SET) mov rax, qword [rbp - 89] ; (SET) mov rbx, qword [rbp - 97] ; (SET) lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 72], rax ; (SET) mov qword [rbp - 80], r12 ; (SET) mov byte [rbp - 81], r13b ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov dl, byte [rbp - 81] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._astv_post_id mov r15, rax ; (SET) jmp parse._ast_value_bare#1#wrap#end parse._ast_value_bare#1#wrap#0#if#end: ; STARTING RETURN mov al, 1 ; (SET) jmp parse._ast_value_bare#end jmp parse._ast_value_bare#1#wrap#end parse._ast_value_bare#1#wrap#1#if#end: parse._ast_value_bare#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare sub rsp, 1 ; Create stack space for local variable run mov byte [rbp - 57], bl ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._ast_value_bare#2#loop#0#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 60], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 61], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 69], r10 ; (SET) mov qword [rbp - 77], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#2#loop#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 85], rsi ; (SET) mov rax, qword [rbp - 69] ; (SET) mov rbx, qword [rbp - 77] ; (SET) mov rcx, qword [rbp - 85] ; (SET) lea rsp, [rbp - 61] ; Free stack space (freeing tmp variables) call parse._advance_check mov r9b, byte [rbp - 61] ; (SET) mov r8b, byte [rbp - 60] ; (SET) mov bl, byte [rbp - 59] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], al ; (SET) mov cl, byte [rbp - 59] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 58], al ; Mov after compare lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 58], 0 parse._ast_value_bare#2#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_value_bare#2#loop#end parse._ast_value_bare#2#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_value_bare#2#loop#2#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r10 ; (SET) mov qword [rbp - 74], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#2#loop#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 82], rsi ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) mov rcx, qword [rbp - 82] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov bl, byte [rbp - 58] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) ; STARTING RETURN mov al, 0 ; (SET) jmp parse._ast_value_bare#end jmp parse._ast_value_bare#2#loop#2#wrap#end parse._ast_value_bare#2#loop#2#wrap#0#if#end: parse._ast_value_bare#2#loop#2#wrap#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], rsi ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) sub r8, 1 ; (STD_OP) mov qword [rbp - 74], r8 ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov bl, byte [rbp - 58] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for local variable repl mov qword [rbp - 65], rax ; (SET) sub rsp, 50 ; Create stack space for local variable dot sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 116], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 115] ; initial struct addr move (SET_STR_R) mov qword [rbp - 124], rax ; (SET) mov si, word [rel parse.NTYPE_BIN_OP] ; (SET_PRM_R) mov word [rbp - 126], si ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 135], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_value_bare#2#loop#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 143], rsi ; (SET) mov rax, qword [rbp - 143] ; (SET) lea rsp, [rbp - 135] ; Free stack space (freeing tmp variables) call utils.strcpy mov bl, byte [rbp - 135] ; (SET) lea rsp, [rbp - 134] ; Free stack space (freeing tmp variables) mov qword [rbp - 134], rax ; (SET) mov rax, qword [rbp - 124] ; (SET) mov bx, word [rbp - 126] ; (SET) mov rcx, qword [rbp - 134] ; (SET) lea rsp, [rbp - 116] ; Free stack space (freeing tmp variables) call parse._#Node.init mov bl, byte [rbp - 116] ; (SET) lea rsp, [rbp - 115] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 116], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 115] ; initial struct addr move (SET_STR_R) mov qword [rbp - 124], rax ; (SET) mov rsi, qword [rbp - 65] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 124] ; (SET) mov rbx, qword [rbp - 132] ; (SET) lea rsp, [rbp - 116] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov bl, byte [rbp - 116] ; (SET) lea rsp, [rbp - 115] ; Free stack space (freeing tmp variables) sub rsp, 50 ; Create stack space for local variable val sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 166], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 165] ; initial struct addr move (SET_STR_R) mov qword [rbp - 174], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 176], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 184], rsi ; (SET) mov rax, qword [rbp - 174] ; (SET) mov bx, word [rbp - 176] ; (SET) mov rcx, qword [rbp - 184] ; (SET) lea rsp, [rbp - 166] ; Free stack space (freeing tmp variables) call parse._#Node.init mov bl, byte [rbp - 166] ; (SET) lea rsp, [rbp - 165] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable ln mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 173], rsi ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 206], bl ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 246], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 238] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 246] ; (SET) lea rsp, [rbp - 238] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 205] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 206] ; Free stack space (freeing tmp variables) mov bl, byte [rbp - 206] ; (SET) lea rsp, [rbp - 205] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 205] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 181], rsi ; (SET) mov rdi, [rbp - 181] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rbp - 173] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) cmp r9b, 0 je parse._ast_value_bare#2#loop#4#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 174], al ; Mov after compare cmp byte byte [rbp - 174], 0 parse._ast_value_bare#2#loop#4#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_value_bare#2#loop#4#wrap#0#if#end mov byte [rbp - 57], 0 ; (SET) jmp parse._ast_value_bare#2#loop#4#wrap#end parse._ast_value_bare#2#loop#4#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 174], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 182], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 165] ; initial struct addr move (SET_STR_R) mov qword [rbp - 190], rsi ; (SET) mov qword [rbp - 198], r12 ; (SET) mov byte [rbp - 199], r13b ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) mov rcx, qword [rbp - 198] ; (SET) mov dl, byte [rbp - 199] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._astv_post_id mov bl, byte [rbp - 174] ; (SET) lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) mov qword [rbp - 173], rax ; (SET) jmp parse._ast_value_bare#2#loop#4#wrap#end parse._ast_value_bare#2#loop#4#wrap#1#if#end: parse._ast_value_bare#2#loop#4#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 174], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 115] ; initial struct addr move (SET_STR_R) mov qword [rbp - 182], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 165] ; initial struct addr move (SET_STR_R) mov qword [rbp - 190], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov bl, byte [rbp - 174] ; (SET) lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 174], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils._#Vector.pop mov bl, byte [rbp - 174] ; (SET) lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 174], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 182], r14 ; (SET) ; putting struct address into register lea rsi, [rbp - 115] ; initial struct addr move (SET_STR_R) mov qword [rbp - 190], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov bl, byte [rbp - 174] ; (SET) lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) mov r14, rax ; (SET) parse._ast_value_bare#2#loop#rep: mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._ast_value_bare#2#loop#5#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 175], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 176], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 177], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 185], r10 ; (SET) mov qword [rbp - 193], r12 ; (SET) mov rsi, qword [rel parse._ast_value_bare#2#loop#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 201], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) mov rcx, qword [rbp - 201] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call parse._advance_check mov r9b, byte [rbp - 177] ; (SET) mov r8b, byte [rbp - 176] ; (SET) mov bl, byte [rbp - 175] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 175], al ; (SET) mov cl, byte [rbp - 175] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 174], al ; Mov after compare lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 174], 0 parse._ast_value_bare#2#loop#5#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 173] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_value_bare#2#loop#end jmp parse._ast_value_bare#2#loop#start parse._ast_value_bare#2#loop#end: ; STARTING RETURN mov al, 1 ; (SET) jmp parse._ast_value_bare#end parse._ast_value_bare#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._assoc_right: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._op_order mov r11, rax ; (SET) cmp r11, 11 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._assoc_right#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._assoc_right#end jmp parse._assoc_right#0#wrap#end parse._assoc_right#0#wrap#0#if#end: parse._assoc_right#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._assoc_right#end parse._assoc_right#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._assoc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._op_order mov r12, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._assoc_right mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp al, 0 je parse._assoc#0#wrap#0#if#0#bool#end cmp r11, r12 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 parse._assoc#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._assoc#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp parse._assoc#end jmp parse._assoc#0#wrap#end parse._assoc#0#wrap#0#if#end: parse._assoc#0#wrap#end: ; STARTING RETURN cmp r11, r12 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp parse._assoc#end parse._assoc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) sub rsp, 50 ; Create stack space for local variable val sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_VALUE] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_value#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov r14, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r14 ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], r13b ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_value_bare mov r15b, al ; (SET) sub rsp, 1 ; Create stack space for local variable valid mov byte [rbp - 107], r15b ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_value#1#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_value#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#end parse._ast_value#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_SEP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_value#1#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rax, qword [rbp - 118] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_value#1#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#0#if#end mov r15b, 0 ; (SET) jmp parse._ast_value#1#loop#1#wrap#end parse._ast_value#1#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r12 ; (SET) mov rsi, qword [rel parse._ast_value#1#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 116] ; (SET) mov rbx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#1#if#end mov r15b, 0 ; (SET) mov byte [rbp - 107], 0 ; (SET) jmp parse._ast_value#1#loop#1#wrap#end parse._ast_value#1#loop#1#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_value#1#loop#1#wrap#2#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rax, qword [rbp - 118] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._op_bin mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_value#1#loop#1#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#2#if#end sub rsp, 50 ; Create stack space for local variable bin sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 157] ; initial struct addr move (SET_STR_R) mov qword [rbp - 165], rax ; (SET) mov si, word [rel parse.NTYPE_BIN_OP] ; (SET_PRM_R) mov word [rbp - 167], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 175], rsi ; (SET) mov rax, qword [rbp - 165] ; (SET) mov bx, word [rbp - 167] ; (SET) mov rcx, qword [rbp - 175] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 165], rsi ; (SET) mov rax, qword [rbp - 165] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse._op_order sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 165], rax ; (SET) sub rsp, 1 ; Create stack space for local variable gt mov byte [rbp - 166], 0 ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#2#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rsi, qword [rbp - 165] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 174] ; (SET) mov rbx, qword [rbp - 182] ; (SET) lea rsp, [rbp - 166] ; Free stack space (freeing tmp variables) call parse._assoc mov byte [rbp - 166], al ; (SET) jmp parse._ast_value#1#loop#1#wrap#2#if#1#wrap#end parse._ast_value#1#loop#1#wrap#2#if#1#wrap#0#if#end: parse._ast_value#1#loop#1#wrap#2#if#1#wrap#end: mov cl, byte [rbp - 166] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#2#if#2#loop#end parse._ast_value#1#loop#1#wrap#2#if#2#loop#start: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#2#if#2#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rsi, qword [rbp - 165] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 174] ; (SET) mov rbx, qword [rbp - 182] ; (SET) lea rsp, [rbp - 166] ; Free stack space (freeing tmp variables) call parse._assoc mov byte [rbp - 166], al ; (SET) jmp parse._ast_value#1#loop#1#wrap#2#if#2#loop#0#wrap#end parse._ast_value#1#loop#1#wrap#2#if#2#loop#0#wrap#0#if#end: mov byte [rbp - 166], 0 ; (SET) jmp parse._ast_value#1#loop#1#wrap#2#if#2#loop#0#wrap#end parse._ast_value#1#loop#1#wrap#2#if#2#loop#0#wrap#1#if#end: parse._ast_value#1#loop#1#wrap#2#if#2#loop#0#wrap#end: parse._ast_value#1#loop#1#wrap#2#if#2#loop#rep: mov cl, byte [rbp - 166] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#1#wrap#2#if#2#loop#end jmp parse._ast_value#1#loop#1#wrap#2#if#2#loop#start parse._ast_value#1#loop#1#wrap#2#if#2#loop#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 174], rsi ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 182], rbx ; (SET) mov rax, qword [rbp - 174] ; (SET) mov rbx, qword [rbp - 182] ; (SET) lea rsp, [rbp - 166] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable rhs mov qword [rbp - 174], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 157] ; initial struct addr move (SET_STR_R) mov qword [rbp - 182], rax ; (SET) mov rsi, qword [rbp - 174] ; (SET_PRM_R) mov qword [rbp - 190], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 182], r14 ; (SET) ; putting struct address into register lea rsi, [rbp - 157] ; initial struct addr move (SET_STR_R) mov qword [rbp - 190], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r14, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 246], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 238] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 246] ; (SET) lea rsp, [rbp - 238] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 206] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 206] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 206] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 155] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rsi, qword [rel parse._ast_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 190], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcmp cmp al, 0 je parse._ast_value#1#loop#1#wrap#2#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 182], r10 ; (SET) mov qword [rbp - 190], r14 ; (SET) mov qword [rbp - 198], r12 ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) mov rcx, qword [rbp - 198] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._ast_type jmp parse._ast_value#1#loop#1#wrap#2#if#3#wrap#end parse._ast_value#1#loop#1#wrap#2#if#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 182], r10 ; (SET) mov qword [rbp - 190], r14 ; (SET) mov qword [rbp - 198], r12 ; (SET) mov byte [rbp - 199], r13b ; (SET) mov rax, qword [rbp - 182] ; (SET) mov rbx, qword [rbp - 190] ; (SET) mov rcx, qword [rbp - 198] ; (SET) mov dl, byte [rbp - 199] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call parse._ast_value_bare mov r15b, al ; (SET) mov byte [rbp - 107], r15b ; (SET) jmp parse._ast_value#1#loop#1#wrap#2#if#3#wrap#end parse._ast_value#1#loop#1#wrap#2#if#3#wrap#1#if#end: parse._ast_value#1#loop#1#wrap#2#if#3#wrap#end: jmp parse._ast_value#1#loop#1#wrap#end parse._ast_value#1#loop#1#wrap#2#if#end: mov r15b, 0 ; (SET) jmp parse._ast_value#1#loop#1#wrap#end parse._ast_value#1#loop#1#wrap#3#if#end: parse._ast_value#1#loop#1#wrap#end: parse._ast_value#1#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_value#1#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_value#1#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_value#1#loop#end jmp parse._ast_value#1#loop#start parse._ast_value#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov al, byte [rbp - 107] ; (SET) jmp parse._ast_value#end parse._ast_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_keyword_expr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._ast_keyword_expr#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_keyword_expr#0#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 60], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], r12 ; (SET) mov rsi, qword [rel parse._ast_keyword_expr#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 76], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 60] ; (SET) mov r8b, byte [rbp - 59] ; (SET) mov bl, byte [rbp - 58] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], al ; (SET) mov cl, byte [rbp - 58] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 57], al ; Mov after compare lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 57], 0 parse._ast_keyword_expr#0#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_keyword_expr#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._ast_keyword_expr#0#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_keyword_expr#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_keyword_expr#0#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable ret sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_FLOW_CONTROL] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, r13 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 je parse._ast_keyword_expr#0#wrap#0#if#5#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rax, qword [rbp - 118] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_keyword_expr#0#wrap#0#if#5#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_keyword_expr#0#wrap#0#if#5#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_keyword_expr#0#wrap#0#if#5#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_keyword_expr#0#wrap#0#if#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 0 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._ast_keyword_expr#0#wrap#0#if#5#wrap#end parse._ast_keyword_expr#0#wrap#0#if#5#wrap#0#if#end: parse._ast_keyword_expr#0#wrap#0#if#5#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_keyword_expr#end jmp parse._ast_keyword_expr#0#wrap#end parse._ast_keyword_expr#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_keyword_expr#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_keyword_expr#0#wrap#end parse._ast_keyword_expr#0#wrap#1#if#end: parse._ast_keyword_expr#0#wrap#end: parse._ast_keyword_expr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._type_helper_pre: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, 1 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_pre#0#loop#0#bool#end cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._type_helper_pre#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#end parse._type_helper_pre#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_pre#0#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._type_helper_pre#0#loop#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_pre#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#1#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable ptr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_PRE_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) jmp parse._type_helper_pre#0#loop#1#wrap#end parse._type_helper_pre#0#loop#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_pre#0#loop#1#wrap#1#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._type_helper_pre#0#loop#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#1#wrap#1#if#end sub rsp, 50 ; Create stack space for local variable arr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_PRE_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 110], sil ; (SET) mov al, byte [rbp - 110] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse.is_numeric mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_LITERAL] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 165], r12 ; (SET) mov rsi, qword [rel parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 173], rsi ; (SET) mov rax, qword [rbp - 165] ; (SET) mov rbx, qword [rbp - 173] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#end parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r10 ; (SET) mov qword [rbp - 172], r12 ; (SET) mov rsi, qword [rel parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) mov rcx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r13b, 0 ; (SET) jmp parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#end parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#1#if#end: parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#1#wrap#end: jmp parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#end parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#1#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#end parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r13b, 0 ; (SET) jmp parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#end parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#2#if#end: parse._type_helper_pre#0#loop#1#wrap#1#if#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._type_helper_pre#0#loop#1#wrap#end parse._type_helper_pre#0#loop#1#wrap#1#if#end: mov r13b, 0 ; (SET) jmp parse._type_helper_pre#0#loop#1#wrap#end parse._type_helper_pre#0#loop#1#wrap#2#if#end: parse._type_helper_pre#0#loop#1#wrap#end: parse._type_helper_pre#0#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_pre#0#loop#2#bool#end cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._type_helper_pre#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_pre#0#loop#end jmp parse._type_helper_pre#0#loop#start parse._type_helper_pre#0#loop#end: parse._type_helper_pre#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._type_helper_func: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._type_helper_func#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_func#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_type jmp parse._type_helper_func#0#wrap#end parse._type_helper_func#0#wrap#0#if#end: parse._type_helper_func#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._type_helper_func#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_func#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_type jmp parse._type_helper_func#1#wrap#end parse._type_helper_func#1#wrap#0#if#end: parse._type_helper_func#1#wrap#end: parse._type_helper_func#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._type_helper_usertype: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_usertype#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_usertype#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_usertype#0#loop#end parse._type_helper_usertype#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_usertype#0#loop#1#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable utp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#end mov r13b, 0 ; (SET) jmp parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#end parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#0#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#end parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#1#if#end: parse._type_helper_usertype#0#loop#1#wrap#0#if#0#wrap#end: jmp parse._type_helper_usertype#0#loop#1#wrap#end parse._type_helper_usertype#0#loop#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._type_helper_usertype#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r13b, 0 ; (SET) jmp parse._type_helper_usertype#0#loop#1#wrap#end parse._type_helper_usertype#0#loop#1#wrap#1#if#end: parse._type_helper_usertype#0#loop#1#wrap#end: parse._type_helper_usertype#0#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_usertype#0#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_usertype#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_usertype#0#loop#end jmp parse._type_helper_usertype#0#loop#start parse._type_helper_usertype#0#loop#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._type_helper_usertype#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._type_helper_usertype#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._type_helper_usertype#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._type_helper_usertype#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_type jmp parse._type_helper_usertype#1#wrap#end parse._type_helper_usertype#1#wrap#0#if#end: parse._type_helper_usertype#1#wrap#end: parse._type_helper_usertype#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable typ sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_TYPE] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_type#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._type_helper_pre sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_type#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_type#1#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable ktp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov qword [rbp - 180], r12 ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) mov rcx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._type_helper_func sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_type#end jmp parse._ast_type#1#wrap#end parse._ast_type#1#wrap#0#if#end: parse._ast_type#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_type#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._type_helper_usertype jmp parse._ast_type#2#wrap#end parse._ast_type#2#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_type#2#wrap#1#if#end sub rsp, 50 ; Create stack space for local variable ktp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) jmp parse._ast_type#2#wrap#end parse._ast_type#2#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_type#2#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_type#end jmp parse._ast_type#2#wrap#end parse._ast_type#2#wrap#2#if#end: parse._ast_type#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r12 ; (SET) mov rsi, qword [rel parse._ast_type#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Token.eq cmp al, 0 je parse._ast_type#3#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable post sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_POST_OP] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) jmp parse._ast_type#3#wrap#end parse._ast_type#3#wrap#0#if#end: parse._ast_type#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_list_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable list sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_VLIST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 107], sil ; (SET) mov al, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._get_closing_delim mov r13b, al ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_value#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_value#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_value#0#loop#end parse._ast_list_value#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 1 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_value sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r10 ; (SET) mov qword [rbp - 124], r12 ; (SET) mov rsi, qword [rel parse._ast_list_value#0#loop#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 116] ; (SET) mov rbx, qword [rbp - 124] ; (SET) mov rcx, qword [rbp - 132] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._advance_check mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_value#0#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 jne parse._ast_list_value#0#loop#1#wrap#0#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], rsi ; (SET) mov rdi, [rbp - 116] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 108], al ; Mov after compare lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 108], 0 parse._ast_list_value#0#loop#1#wrap#0#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_value#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_value#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_value#0#loop#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp parse._ast_list_value#end jmp parse._ast_list_value#0#loop#1#wrap#end parse._ast_list_value#0#loop#1#wrap#0#if#end: parse._ast_list_value#0#loop#1#wrap#end: parse._ast_list_value#0#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_value#0#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_value#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_value#0#loop#end jmp parse._ast_list_value#0#loop#start parse._ast_list_value#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable next ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_value#end parse._ast_list_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._maybe_helper_decl: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable next ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._maybe_helper_decl#0#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 122], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 123], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 131], rax ; (SET) mov rsi, qword [rel parse._maybe_helper_decl#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 123] ; (SET) mov r8b, byte [rbp - 122] ; (SET) mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) cmp al, 0 parse._maybe_helper_decl#0#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._maybe_helper_decl#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 122], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 123], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 123] ; (SET) mov r8b, byte [rbp - 122] ; (SET) mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], al ; (SET) mov cl, byte [rbp - 121] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_decl#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#0#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 178], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 180], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 188], rsi ; (SET) mov rax, qword [rbp - 178] ; (SET) mov bx, word [rbp - 180] ; (SET) mov rcx, qword [rbp - 188] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 186], rsi ; (SET) mov rax, qword [rbp - 178] ; (SET) mov rbx, qword [rbp - 186] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._maybe_helper_decl#end jmp parse._maybe_helper_decl#0#wrap#end parse._maybe_helper_decl#0#wrap#0#if#end: parse._maybe_helper_decl#0#wrap#end: sub rsp, 50 ; Create stack space for local variable tp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 178], rax ; (SET) mov si, word [rel parse.NTYPE_TYPE] ; (SET_PRM_R) mov word [rbp - 180], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._maybe_helper_decl#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 196], rsi ; (SET) mov rax, qword [rbp - 196] ; (SET) lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 188], rax ; (SET) mov rax, qword [rbp - 178] ; (SET) mov bx, word [rbp - 180] ; (SET) mov rcx, qword [rbp - 188] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 50 ; Create stack space for local variable utmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 220] ; initial struct addr move (SET_STR_R) mov qword [rbp - 228], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 230], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 238], rsi ; (SET) mov rax, qword [rbp - 228] ; (SET) mov bx, word [rbp - 230] ; (SET) mov rcx, qword [rbp - 238] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 228], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov qword [rbp - 236], rsi ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov r13b, 1 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._maybe_helper_decl#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 221], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 222], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 223], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 231], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_decl#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 239], rsi ; (SET) mov rax, qword [rbp - 231] ; (SET) mov rbx, qword [rbp - 239] ; (SET) lea rsp, [rbp - 223] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 223] ; (SET) mov r8b, byte [rbp - 222] ; (SET) mov bl, byte [rbp - 221] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 221], al ; (SET) mov cl, byte [rbp - 221] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_decl#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#2#wrap#0#if#end mov r13b, 0 ; (SET) jmp parse._maybe_helper_decl#2#wrap#end parse._maybe_helper_decl#2#wrap#0#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 292], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 284] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 292] ; (SET) lea rsp, [rbp - 284] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 252] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 252] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 252] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._maybe_helper_decl#2#wrap#end parse._maybe_helper_decl#2#wrap#1#if#end: parse._maybe_helper_decl#2#wrap#end: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._maybe_helper_decl#3#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], rsi ; (SET) mov rdi, [rbp - 228] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_decl#3#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#3#loop#end parse._maybe_helper_decl#3#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#3#loop#1#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable utp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 270] ; initial struct addr move (SET_STR_R) mov qword [rbp - 278], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 280], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 278] ; (SET) mov bx, word [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 342], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 334] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 342] ; (SET) lea rsp, [rbp - 334] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 302] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 302] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 302] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 278], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 270] ; initial struct addr move (SET_STR_R) mov qword [rbp - 286], rsi ; (SET) mov rax, qword [rbp - 278] ; (SET) mov rbx, qword [rbp - 286] ; (SET) lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 271], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 272], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 273], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 281], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 281] ; (SET) mov rbx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 273] ; (SET) mov r8b, byte [rbp - 272] ; (SET) mov bl, byte [rbp - 271] ; (SET) lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 271], al ; (SET) mov cl, byte [rbp - 271] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#end mov r13b, 0 ; (SET) jmp parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#end parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#0#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 342], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 334] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 342] ; (SET) lea rsp, [rbp - 334] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 302] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 302] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 302] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 278], r12 ; (SET) mov rax, qword [rbp - 278] ; (SET) lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#end parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#1#if#end: parse._maybe_helper_decl#3#loop#1#wrap#0#if#0#wrap#end: jmp parse._maybe_helper_decl#3#loop#1#wrap#end parse._maybe_helper_decl#3#loop#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) mov qword [rbp - 236], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_decl#3#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 244], rsi ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) mov rcx, qword [rbp - 244] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r13b, 0 ; (SET) jmp parse._maybe_helper_decl#3#loop#1#wrap#end parse._maybe_helper_decl#3#loop#1#wrap#1#if#end: parse._maybe_helper_decl#3#loop#1#wrap#end: parse._maybe_helper_decl#3#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._maybe_helper_decl#3#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], rsi ; (SET) mov rdi, [rbp - 228] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_decl#3#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#3#loop#end jmp parse._maybe_helper_decl#3#loop#start parse._maybe_helper_decl#3#loop#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._maybe_helper_decl#4#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 221], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 222], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 223], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 231], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_decl#4#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 239], rsi ; (SET) mov rax, qword [rbp - 231] ; (SET) mov rbx, qword [rbp - 239] ; (SET) lea rsp, [rbp - 223] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 223] ; (SET) mov r8b, byte [rbp - 222] ; (SET) mov bl, byte [rbp - 221] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 221], al ; (SET) mov cl, byte [rbp - 221] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_decl#4#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#4#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 236], rsi ; (SET) mov qword [rbp - 244], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) mov rcx, qword [rbp - 244] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._ast_list_type jmp parse._maybe_helper_decl#4#wrap#end parse._maybe_helper_decl#4#wrap#0#if#end: parse._maybe_helper_decl#4#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 236], rsi ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_decl#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) mov qword [rbp - 236], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_decl#5#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 244], rsi ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) mov rcx, qword [rbp - 244] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._maybe_helper_decl#end jmp parse._maybe_helper_decl#5#wrap#end parse._maybe_helper_decl#5#wrap#0#if#end: parse._maybe_helper_decl#5#wrap#end: sub rsp, 50 ; Create stack space for local variable id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 270] ; initial struct addr move (SET_STR_R) mov qword [rbp - 278], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 280], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 278] ; (SET) mov bx, word [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 278], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 270] ; initial struct addr move (SET_STR_R) mov qword [rbp - 286], rsi ; (SET) mov rax, qword [rbp - 278] ; (SET) mov rbx, qword [rbp - 286] ; (SET) lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 342], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 334] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 342] ; (SET) lea rsp, [rbp - 334] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 302] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 302] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 302] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 270] ; Free stack space (freeing tmp variables) parse._maybe_helper_decl#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_list_decl: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable list sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_DLIST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 107], sil ; (SET) mov al, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._get_closing_delim mov r13b, al ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r14b, 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_decl#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_decl#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#end parse._ast_list_decl#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable cmp r14b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare cmp byte byte [rbp - 107], 0 jne parse._ast_list_decl#0#loop#1#wrap#0#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], rsi ; (SET) mov rdi, [rbp - 116] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 108], al ; Mov after compare lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 108], 0 parse._ast_list_decl#0#loop#1#wrap#0#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_list_decl#0#loop#1#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 126], rsi ; (SET) mov rax, qword [rbp - 118] ; (SET) mov rbx, qword [rbp - 126] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_list_decl#0#loop#1#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_list_decl#0#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#1#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_decl#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_type ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#end cmp r14b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#end parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#end parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#1#if#end: parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp parse._ast_list_decl#end jmp parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#end parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#0#if#end: parse._ast_list_decl#0#loop#1#wrap#0#if#5#wrap#end: mov r14b, 1 ; (SET) sub rsp, 50 ; Create stack space for local variable id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) jmp parse._ast_list_decl#0#loop#1#wrap#end parse._ast_list_decl#0#loop#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._maybe_helper_decl jmp parse._ast_list_decl#0#loop#1#wrap#end parse._ast_list_decl#0#loop#1#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp parse._ast_list_decl#end jmp parse._ast_list_decl#0#loop#1#wrap#end parse._ast_list_decl#0#loop#1#wrap#2#if#end: parse._ast_list_decl#0#loop#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r10 ; (SET) mov qword [rbp - 124], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 116] ; (SET) mov rbx, qword [rbp - 124] ; (SET) mov rcx, qword [rbp - 132] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._advance_check mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_decl#0#loop#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rax, qword [rbp - 117] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_decl#0#loop#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_decl#0#loop#2#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp parse._ast_list_decl#end jmp parse._ast_list_decl#0#loop#2#wrap#end parse._ast_list_decl#0#loop#2#wrap#0#if#end: parse._ast_list_decl#0#loop#2#wrap#end: parse._ast_list_decl#0#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_decl#0#loop#3#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_decl#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_decl#0#loop#end jmp parse._ast_list_decl#0#loop#start parse._ast_list_decl#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable next ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; STARTING RETURN mov rax, r15 ; (SET) jmp parse._ast_list_decl#end parse._ast_list_decl#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_list_enum: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable list sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_ELIST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 107], sil ; (SET) mov al, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._get_closing_delim mov r13b, al ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_enum#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_enum#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_enum#0#loop#end parse._ast_list_enum#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_enum#0#loop#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 50 ; Create stack space for local variable enum_id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r10 ; (SET) mov qword [rbp - 172], r12 ; (SET) mov rsi, qword [rel parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) mov rcx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._advance_check cmp al, 0 je parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 164], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov qword [rbp - 180], r12 ; (SET) mov byte [rbp - 181], 1 ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) mov rcx, qword [rbp - 180] ; (SET) mov dl, byte [rbp - 181] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#end parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#0#if#end: parse._ast_list_enum#0#loop#1#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_list_enum#0#loop#1#wrap#end parse._ast_list_enum#0#loop#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_enum#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_enum#end jmp parse._ast_list_enum#0#loop#1#wrap#end parse._ast_list_enum#0#loop#1#wrap#1#if#end: parse._ast_list_enum#0#loop#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_list_enum#0#loop#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_enum#0#loop#2#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) jmp parse._ast_list_enum#0#loop#2#wrap#end parse._ast_list_enum#0#loop#2#wrap#0#if#end: parse._ast_list_enum#0#loop#2#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r10 ; (SET) mov qword [rbp - 124], r12 ; (SET) mov rsi, qword [rel parse._ast_list_enum#0#loop#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 116] ; (SET) mov rbx, qword [rbp - 124] ; (SET) mov rcx, qword [rbp - 132] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._advance_check mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_enum#0#loop#3#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rax, qword [rbp - 117] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_enum#0#loop#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_enum#0#loop#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_enum#0#loop#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_enum#end jmp parse._ast_list_enum#0#loop#3#wrap#end parse._ast_list_enum#0#loop#3#wrap#0#if#end: parse._ast_list_enum#0#loop#3#wrap#end: parse._ast_list_enum#0#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_enum#0#loop#4#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_enum#0#loop#4#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_enum#0#loop#end jmp parse._ast_list_enum#0#loop#start parse._ast_list_enum#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable next ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_enum#end parse._ast_list_enum#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_list_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable list sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_TLIST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 107], sil ; (SET) mov al, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._get_closing_delim mov r13b, al ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_type#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_type#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_type#0#loop#end parse._ast_list_type#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 jne parse._ast_list_type#0#loop#1#wrap#0#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], rsi ; (SET) mov rdi, [rbp - 116] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 108], al ; Mov after compare lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 108], 0 parse._ast_list_type#0#loop#1#wrap#0#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_list_type#0#loop#1#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rsi, qword [rel parse._ast_list_type#0#loop#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 126], rsi ; (SET) mov rax, qword [rbp - 118] ; (SET) mov rbx, qword [rbp - 126] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_list_type#0#loop#1#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_list_type#0#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_list_type#0#loop#1#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_type#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_type#0#loop#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_type jmp parse._ast_list_type#0#loop#1#wrap#end parse._ast_list_type#0#loop#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_type#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_type#end jmp parse._ast_list_type#0#loop#1#wrap#end parse._ast_list_type#0#loop#1#wrap#1#if#end: parse._ast_list_type#0#loop#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r10 ; (SET) mov qword [rbp - 124], r12 ; (SET) mov rsi, qword [rel parse._ast_list_type#0#loop#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 116] ; (SET) mov rbx, qword [rbp - 124] ; (SET) mov rcx, qword [rbp - 132] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._advance_check mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_type#0#loop#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rax, qword [rbp - 117] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_type#0#loop#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_type#0#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_type#0#loop#2#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_type#end jmp parse._ast_list_type#0#loop#2#wrap#end parse._ast_list_type#0#loop#2#wrap#0#if#end: parse._ast_list_type#0#loop#2#wrap#end: parse._ast_list_type#0#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_list_type#0#loop#3#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_type#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_type#0#loop#end jmp parse._ast_list_type#0#loop#start parse._ast_list_type#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable next ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._ast_list_type#end parse._ast_list_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_list_stmt: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable list sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_SLIST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rdi, [rsi] ; auto deref (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 107], sil ; (SET) mov al, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._get_closing_delim mov r13b, al ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r14b, 1 ; (SET) cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._ast_list_stmt#0#loop#1#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_list_stmt#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_list_stmt#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_stmt#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#end parse._ast_list_stmt#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_asm jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_list_stmt#0#loop#2#wrap#1#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_stmt#0#loop#2#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#2#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_decl jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_list_stmt#0#loop#2#wrap#2#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#2#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_stmt#0#loop#2#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#2#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 1 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._maybe_helper_fun jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_list_stmt#0#loop#2#wrap#3#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#3#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 126], rsi ; (SET) mov rax, qword [rbp - 118] ; (SET) mov rbx, qword [rbp - 126] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_list_stmt#0#loop#2#wrap#3#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_list_stmt#0#loop#2#wrap#3#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r12 ; (SET) mov rax, qword [rbp - 116] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._op_prefix mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp al, 0 parse._ast_list_stmt#0#loop#2#wrap#3#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#2#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 1 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#3#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#2#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_keyword_expr jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#2#wrap#5#if#end sub rsp, 50 ; Create stack space for local variable empty sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_EMPTY] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#5#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 174], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#5#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#2#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r14b, 0 ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_list_stmt#0#loop#2#wrap#end parse._ast_list_stmt#0#loop#2#wrap#6#if#end: parse._ast_list_stmt#0#loop#2#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#0#loop#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#3#wrap#0#if#end mov r14b, 0 ; (SET) jmp parse._ast_list_stmt#0#loop#3#wrap#end parse._ast_list_stmt#0#loop#3#wrap#0#if#end: parse._ast_list_stmt#0#loop#3#wrap#end: parse._ast_list_stmt#0#loop#rep: cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._ast_list_stmt#0#loop#5#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_list_stmt#0#loop#5#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_list_stmt#0#loop#4#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_stmt#0#loop#4#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#0#loop#end jmp parse._ast_list_stmt#0#loop#start parse._ast_list_stmt#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_list_stmt#1#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, r13b mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_list_stmt#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_list_stmt#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_list_stmt#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_list_stmt#1#wrap#end parse._ast_list_stmt#1#wrap#0#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_list_stmt#1#wrap#end parse._ast_list_stmt#1#wrap#1#if#end: parse._ast_list_stmt#1#wrap#end: parse._ast_list_stmt#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._block_helper_method: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 32 ; Create stack space for local variable blf ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#end parse._block_helper_method#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r11 ; (SET) mov qword [rbp - 112], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_function jmp parse._block_helper_method#0#loop#0#wrap#end parse._block_helper_method#0#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._block_helper_method#0#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._block_helper_method#0#loop#0#wrap#end parse._block_helper_method#0#loop#0#wrap#1#if#end: parse._block_helper_method#0#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_block_pass sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rsi, qword [rel parse._block_helper_method#0#loop#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) mov rcx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rdi, [r8] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#0#if#end mov r13b, 0 ; (SET) jmp parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#end parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rsi, qword [rel parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) mov rcx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#end parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#1#if#end: parse._block_helper_method#0#loop#1#wrap#0#if#1#wrap#end: jmp parse._block_helper_method#0#loop#1#wrap#end parse._block_helper_method#0#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rsi, qword [rel parse._block_helper_method#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) mov rcx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rel parse._block_helper_method#0#loop#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r13b, 0 ; (SET) jmp parse._block_helper_method#0#loop#1#wrap#end parse._block_helper_method#0#loop#1#wrap#1#if#end: parse._block_helper_method#0#loop#1#wrap#end: parse._block_helper_method#0#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._block_helper_method#0#loop#end jmp parse._block_helper_method#0#loop#start parse._block_helper_method#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._#Token.end parse._block_helper_method#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_method: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 32 ; Create stack space for local variable blf ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_method#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_method#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_method#end jmp parse._ast_method#0#wrap#end parse._ast_method#0#wrap#0#if#end: parse._ast_method#0#wrap#end: sub rsp, 50 ; Create stack space for local variable mth sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 138] ; initial struct addr move (SET_STR_R) mov qword [rbp - 146], rax ; (SET) mov si, word [rel parse.NTYPE_METHOD] ; (SET_PRM_R) mov word [rbp - 148], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 156], rsi ; (SET) mov rax, qword [rbp - 146] ; (SET) mov bx, word [rbp - 148] ; (SET) mov rcx, qword [rbp - 156] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 210], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 202] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 210] ; (SET) lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_method#1#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], rsi ; (SET) mov rdi, [rbp - 146] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_method#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_method#1#loop#end parse._ast_method#1#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 139], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 147], r12 ; (SET) mov rsi, qword [rel parse._ast_method#1#loop#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 155], rsi ; (SET) mov rax, qword [rbp - 147] ; (SET) mov rbx, qword [rbp - 155] ; (SET) lea rsp, [rbp - 139] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 139] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_method#1#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov qword [rbp - 154], rsi ; (SET) mov qword [rbp - 162], r12 ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) mov rcx, qword [rbp - 162] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._block_helper_method jmp parse._ast_method#1#loop#1#wrap#end parse._ast_method#1#loop#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rdi, [r8] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 59 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_method#1#loop#1#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], r10 ; (SET) mov qword [rbp - 154], r12 ; (SET) mov rsi, qword [rel parse._ast_method#1#loop#1#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) mov rcx, qword [rbp - 162] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_method#1#loop#1#wrap#1#if#0#wrap#end parse._ast_method#1#loop#1#wrap#1#if#0#wrap#0#if#end: parse._ast_method#1#loop#1#wrap#1#if#0#wrap#end: mov r13b, 0 ; (SET) jmp parse._ast_method#1#loop#1#wrap#end parse._ast_method#1#loop#1#wrap#1#if#end: parse._ast_method#1#loop#1#wrap#end: parse._ast_method#1#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_method#1#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], rsi ; (SET) mov rdi, [rbp - 146] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_method#1#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_method#1#loop#end jmp parse._ast_method#1#loop#start parse._ast_method#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], r10 ; (SET) mov qword [rbp - 154], r12 ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._ast_block_pass sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 139], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 147], r12 ; (SET) mov rsi, qword [rel parse._ast_method#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 155], rsi ; (SET) mov rax, qword [rbp - 147] ; (SET) mov rbx, qword [rbp - 155] ; (SET) lea rsp, [rbp - 139] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 139] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_method#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 154], rsi ; (SET) mov rsi, qword [rel parse._ast_method#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 162], rsi ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) mov rcx, qword [rbp - 162] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_method#2#wrap#end parse._ast_method#2#wrap#0#if#end: parse._ast_method#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov qword [rbp - 154], rsi ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_method#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_flow: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) movzx rsi, word [rel parse.NTYPE_IF_BLOCK] ; (SET_PRM_R) mov r13, rsi ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#0#wrap#0#if#1#wrap#0#if#end movzx rsi, word [rel parse.NTYPE_ELIF_BLOCK] ; (SET_PRM_R) mov r13, rsi ; (SET) jmp parse._ast_flow#0#wrap#0#if#1#wrap#end parse._ast_flow#0#wrap#0#if#1#wrap#0#if#end: movzx rsi, word [rel parse.NTYPE_ELSE_BLOCK] ; (SET_PRM_R) mov r13, rsi ; (SET) jmp parse._ast_flow#0#wrap#0#if#1#wrap#end parse._ast_flow#0#wrap#0#if#1#wrap#1#if#end: parse._ast_flow#0#wrap#0#if#1#wrap#end: jmp parse._ast_flow#0#wrap#end parse._ast_flow#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#0#wrap#1#if#end movzx rsi, word [rel parse.NTYPE_LOOP_BLOCK] ; (SET_PRM_R) mov r13, rsi ; (SET) jmp parse._ast_flow#0#wrap#end parse._ast_flow#0#wrap#1#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tok ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_flow#0#wrap#end parse._ast_flow#0#wrap#2#if#end: parse._ast_flow#0#wrap#end: sub rsp, 50 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov word [rbp - 116], r13w ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_flow#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init movzx rsi, word [rel parse.NTYPE_ELSE_BLOCK] ; (SET_PRM_R) cmp r13, rsi mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_flow#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_stmt jmp parse._ast_flow#2#wrap#end parse._ast_flow#2#wrap#0#if#end: parse._ast_flow#2#wrap#end: movzx rsi, word [rel parse.NTYPE_LOOP_BLOCK] ; (SET_PRM_R) cmp r13, rsi mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_flow#3#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_stmt jmp parse._ast_flow#3#wrap#end parse._ast_flow#3#wrap#0#if#end: parse._ast_flow#3#wrap#end: mov r14b, 1 ; (SET) cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_flow#4#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#4#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#end parse._ast_flow#4#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_flow#4#loop#1#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#4#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#0#if#end mov r14b, 0 ; (SET) jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#4#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_asm jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#4#loop#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_fun_block jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_flow#4#loop#1#wrap#3#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#4#loop#1#wrap#3#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#4#loop#1#wrap#3#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_decl jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#3#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_flow#4#loop#1#wrap#4#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#4#loop#1#wrap#4#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#4#loop#1#wrap#4#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 0 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._maybe_helper_fun jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#4#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_flow#4#loop#1#wrap#5#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#4#loop#1#wrap#5#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 126], rsi ; (SET) mov rax, qword [rbp - 118] ; (SET) mov rbx, qword [rbp - 126] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_flow#4#loop#1#wrap#5#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_flow#4#loop#1#wrap#5#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r12 ; (SET) mov rax, qword [rbp - 116] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._op_prefix mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp al, 0 parse._ast_flow#4#loop#1#wrap#5#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 0 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#5#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#1#wrap#6#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_keyword_expr jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#6#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_flow#4#loop#1#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_flow#4#loop#1#wrap#end parse._ast_flow#4#loop#1#wrap#7#if#end: parse._ast_flow#4#loop#1#wrap#end: parse._ast_flow#4#loop#rep: cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_flow#4#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_flow#4#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_flow#4#loop#end jmp parse._ast_flow#4#loop#start parse._ast_flow#4#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_flow#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_fun_block: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 32 ; Create stack space for local variable blf ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_fun_block#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov rdi, [rbp - 96] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_fun_block#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_fun_block#0#loop#end parse._ast_fun_block#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 99], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 107], rsi ; (SET) mov rax, qword [rbp - 99] ; (SET) mov rbx, qword [rbp - 107] ; (SET) lea rsp, [rbp - 91] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 91] ; (SET) mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], al ; (SET) mov cl, byte [rbp - 89] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_fun_block#0#loop#1#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 92], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 100], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 108], rsi ; (SET) mov rax, qword [rbp - 100] ; (SET) mov rbx, qword [rbp - 108] ; (SET) lea rsp, [rbp - 92] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 92] ; (SET) mov r8b, byte [rbp - 91] ; (SET) mov bl, byte [rbp - 90] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], al ; (SET) mov cl, byte [rbp - 90] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 89], al ; Mov after compare lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 89], 0 parse._ast_fun_block#0#loop#1#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_fun_block#0#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 99], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#1#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 107], rsi ; (SET) mov rax, qword [rbp - 99] ; (SET) mov rbx, qword [rbp - 107] ; (SET) lea rsp, [rbp - 91] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 91] ; (SET) mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], al ; (SET) mov cl, byte [rbp - 89] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_fun_block#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_fun_block#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r11 ; (SET) mov qword [rbp - 112], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_flow jmp parse._ast_fun_block#0#loop#1#wrap#end parse._ast_fun_block#0#loop#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_fun_block#0#loop#1#wrap#end parse._ast_fun_block#0#loop#1#wrap#1#if#end: parse._ast_fun_block#0#loop#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._advance_check mov r13b, al ; (SET) cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_fun_block#0#loop#3#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 99], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 107], rsi ; (SET) mov rax, qword [rbp - 99] ; (SET) mov rbx, qword [rbp - 107] ; (SET) lea rsp, [rbp - 91] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 91] ; (SET) mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], al ; (SET) mov cl, byte [rbp - 89] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_fun_block#0#loop#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_fun_block#0#loop#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#0#loop#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_fun_block#0#loop#3#wrap#end parse._ast_fun_block#0#loop#3#wrap#0#if#end: parse._ast_fun_block#0#loop#3#wrap#end: parse._ast_fun_block#0#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_fun_block#0#loop#4#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov rdi, [rbp - 96] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_fun_block#0#loop#4#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_fun_block#0#loop#end jmp parse._ast_fun_block#0#loop#start parse._ast_fun_block#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_block_pass sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rsi, qword [rel parse._ast_fun_block#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) mov rcx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_fun_block#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rel parse._ast_fun_block#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_fun_block#1#wrap#end parse._ast_fun_block#1#wrap#0#if#end: parse._ast_fun_block#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._#Token.end parse._ast_fun_block#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_post_list: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_TLIST] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_list#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_list#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_list#0#loop#end parse._mhf_post_list#0#loop#start: sub rsp, 50 ; Create stack space for local variable _typ sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_TYPE] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_post_list#0#loop#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 174], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov qword [rbp - 180], r12 ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) mov rcx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._type_helper_pre ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._mhf_post_list#0#loop#2#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], rsi ; (SET) mov rdi, [rbp - 164] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_list#0#loop#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_list#0#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 164], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov qword [rbp - 180], r12 ; (SET) mov byte [rbp - 181], 1 ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) mov rcx, qword [rbp - 180] ; (SET) mov dl, byte [rbp - 181] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._mhf_post mov r14, rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) cmp r14, rsi mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 158], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 159], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 167], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 175], rsi ; (SET) mov rax, qword [rbp - 167] ; (SET) mov rbx, qword [rbp - 175] ; (SET) lea rsp, [rbp - 159] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 159] ; (SET) mov r8b, byte [rbp - 158] ; (SET) mov bl, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], al ; (SET) mov cl, byte [rbp - 157] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#end parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#0#if#end: ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) cmp r14, rsi mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 158], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 159], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 167], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 175], rsi ; (SET) mov rax, qword [rbp - 167] ; (SET) mov rbx, qword [rbp - 175] ; (SET) lea rsp, [rbp - 159] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 159] ; (SET) mov r8b, byte [rbp - 158] ; (SET) mov bl, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], al ; (SET) mov cl, byte [rbp - 157] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#end mov r13b, 0 ; (SET) jmp parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#end parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#1#if#end: cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) cmp r14, rsi mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r14, rax ; (SET) jmp parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#end parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#end parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#1#if#end: parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov rax, r14 ; (SET) jmp parse._mhf_post_list#end jmp parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#end parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#2#if#end: parse._mhf_post_list#0#loop#2#wrap#0#if#1#wrap#end: jmp parse._mhf_post_list#0#loop#2#wrap#end parse._mhf_post_list#0#loop#2#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov rax, rax ; (SET) jmp parse._mhf_post_list#end jmp parse._mhf_post_list#0#loop#2#wrap#end parse._mhf_post_list#0#loop#2#wrap#1#if#end: parse._mhf_post_list#0#loop#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._mhf_post_list#0#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_list#0#loop#3#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], rsi ; (SET) mov rdi, [rbp - 164] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_list#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_list#0#loop#end jmp parse._mhf_post_list#0#loop#start parse._mhf_post_list#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post_list#end parse._mhf_post_list#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_post: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#0#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 115], rax ; (SET) mov rsi, qword [rel parse._mhf_post#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r11 ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._type_helper_func jmp parse._mhf_post#0#wrap#0#if#0#wrap#end parse._mhf_post#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._mhf_post#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#0#wrap#0#if#0#wrap#1#if#end sub rsp, 50 ; Create stack space for local variable post sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_POST_OP] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) jmp parse._mhf_post#0#wrap#0#if#0#wrap#end parse._mhf_post#0#wrap#0#if#0#wrap#1#if#end: parse._mhf_post#0#wrap#0#if#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#0#wrap#0#if#1#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#0#wrap#0#if#1#wrap#end parse._mhf_post#0#wrap#0#if#1#wrap#0#if#end: parse._mhf_post#0#wrap#0#if#1#wrap#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#0#wrap#end parse._mhf_post#0#wrap#0#if#end: parse._mhf_post#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) mov r15b, 1 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post#1#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#1#loop#end parse._mhf_post#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#1#loop#1#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) jmp parse._mhf_post#1#loop#1#wrap#end parse._mhf_post#1#loop#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_post#1#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_post#1#loop#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#1#loop#1#wrap#end parse._mhf_post#1#loop#1#wrap#1#if#end: parse._mhf_post#1#loop#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, r14 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post#1#loop#2#wrap#0#if#0#bool#end cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_post#1#loop#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#1#loop#2#wrap#0#if#end ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#1#loop#2#wrap#end parse._mhf_post#1#loop#2#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._mhf_post#1#loop#2#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#1#loop#2#wrap#1#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) jmp parse._mhf_post#1#loop#2#wrap#end parse._mhf_post#1#loop#2#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r12 ; (SET) mov rsi, qword [rel parse._mhf_post#1#loop#2#wrap#2#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 74], rsi ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._mhf_post#1#loop#2#wrap#2#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post#1#loop#2#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#1#loop#2#wrap#2#if#end mov r15b, 0 ; (SET) jmp parse._mhf_post#1#loop#2#wrap#end parse._mhf_post#1#loop#2#wrap#2#if#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#1#loop#2#wrap#end parse._mhf_post#1#loop#2#wrap#3#if#end: parse._mhf_post#1#loop#2#wrap#end: parse._mhf_post#1#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post#1#loop#3#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post#1#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#1#loop#end jmp parse._mhf_post#1#loop#start parse._mhf_post#1#loop#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._mhf_post#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._mhf_post_list mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable ln mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) cmp r15, r11 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post#2#wrap#0#if#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 67], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 75], r10 ; (SET) mov qword [rbp - 83], r12 ; (SET) mov rsi, qword [rel parse._mhf_post#2#wrap#0#if#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 91], rsi ; (SET) mov rax, qword [rbp - 75] ; (SET) mov rbx, qword [rbp - 83] ; (SET) mov rcx, qword [rbp - 91] ; (SET) lea rsp, [rbp - 67] ; Free stack space (freeing tmp variables) call parse._advance_check mov r9b, byte [rbp - 67] ; (SET) mov r8b, byte [rbp - 66] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], al ; (SET) mov cl, byte [rbp - 65] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post#2#wrap#0#if#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#2#wrap#0#if#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 73], rsi ; (SET) mov rdi, [rbp - 73] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rbp - 64] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 65], al ; Mov after compare lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 65], 0 jne parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 66], al ; Mov after compare cmp byte byte [rbp - 66], 0 parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#end parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#0#if#end: parse._mhf_post#2#wrap#0#if#1#wrap#0#if#2#wrap#end: jmp parse._mhf_post#2#wrap#0#if#1#wrap#end parse._mhf_post#2#wrap#0#if#1#wrap#0#if#end: parse._mhf_post#2#wrap#0#if#1#wrap#end: ; STARTING RETURN mov rax, r15 ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#2#wrap#end parse._mhf_post#2#wrap#0#if#end: parse._mhf_post#2#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post#3#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post#end jmp parse._mhf_post#3#wrap#end parse._mhf_post#3#wrap#0#if#end: parse._mhf_post#3#wrap#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post#end parse._mhf_post#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_transform: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 50 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_VALUE] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_transform#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov r13, rsi ; (SET) mov r14, 0 ; (SET) mov r15b, 1 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_transform#1#loop#0#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_transform#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#1#loop#end parse._mhf_transform#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov qword [rbp - 122], r14 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#1#loop#1#wrap#0#if#end mov r15b, 0 ; (SET) jmp parse._mhf_transform#1#loop#1#wrap#end parse._mhf_transform#1#loop#1#wrap#0#if#end: sub rsp, 50 ; Create stack space for local variable new sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_PRE_OP] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 174], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r13, rax ; (SET) mov rbx, r14 ; (SET) inc r14 ; (UNARY) jmp parse._mhf_transform#1#loop#1#wrap#end parse._mhf_transform#1#loop#1#wrap#1#if#end: parse._mhf_transform#1#loop#1#wrap#end: parse._mhf_transform#1#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_transform#1#loop#2#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_transform#1#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#1#loop#end jmp parse._mhf_transform#1#loop#start parse._mhf_transform#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#end parse._mhf_transform#2#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#0#if#end mov r15, 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r13 ; (SET) mov rsi, qword [rel parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#0#if#end mov rbx, r15 ; (SET) inc r15 ; (UNARY) jmp parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#end parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#0#if#end: parse._mhf_transform#2#loop#0#wrap#0#if#0#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, r15 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for local variable mid ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 122], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 130], rbx ; (SET) mov rax, qword [rbp - 122] ; (SET) mov rbx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 114] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 114], rax ; (SET) sub rsp, 50 ; Create stack space for local variable op sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 164] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rax ; (SET) mov si, word [rel parse.NTYPE_BIN_OP] ; (SET_PRM_R) mov word [rbp - 174], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 190], rsi ; (SET) mov rax, qword [rbp - 190] ; (SET) lea rsp, [rbp - 182] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 182], rax ; (SET) mov rax, qword [rbp - 172] ; (SET) mov bx, word [rbp - 174] ; (SET) mov rcx, qword [rbp - 182] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 164] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rax ; (SET) mov rsi, qword [rbp - 114] ; (SET_PRM_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) mov rbx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 172], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 164] ; initial struct addr move (SET_STR_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) mov rbx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r13, rax ; (SET) jmp parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#end parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#0#if#end: parse._mhf_transform#2#loop#0#wrap#0#if#1#wrap#end: sub rsp, 50 ; Create stack space for local variable n sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 174], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._mhf_transform#2#loop#0#wrap#end parse._mhf_transform#2#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov cx, word [r9] ; (SET) cmp cx, word [rel parse.NTYPE_TLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._mhf_transform#2#loop#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_transform#2#loop#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 122], rbx ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) sub rsp, 50 ; Create stack space for local variable lst sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_VLIST] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_transform#2#loop#0#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 174], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 164], 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 164] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#end parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 172], rsi ; (SET) mov rsi, qword [rbp - 164] ; (SET_PRM_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) mov rbx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable lsub mov qword [rbp - 172], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 172] ; (SET_PRM_R) mov qword [rbp - 180], rsi ; (SET) mov qword [rbp - 188], r11 ; (SET) mov rax, qword [rbp - 180] ; (SET) mov rbx, qword [rbp - 188] ; (SET) lea rsp, [rbp - 172] ; Free stack space (freeing tmp variables) call parse._mhf_transform mov r11, rax ; (SET) cmp r11, qword [rbp - 172] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 180], rax ; (SET) mov rsi, qword [rbp - 172] ; (SET_PRM_R) mov qword [rbp - 188], rsi ; (SET) mov rax, qword [rbp - 180] ; (SET) mov rbx, qword [rbp - 188] ; (SET) lea rsp, [rbp - 172] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r11, rax ; (SET) jmp parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#0#wrap#end parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 180], rax ; (SET) mov rsi, qword [rbp - 172] ; (SET_PRM_R) mov qword [rbp - 188], rsi ; (SET) mov rax, qword [rbp - 180] ; (SET) mov rbx, qword [rbp - 188] ; (SET) lea rsp, [rbp - 172] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#0#wrap#end parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#0#wrap#1#if#end: parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#0#wrap#end: parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#rep: mov rbx, qword [rbp - 164] ; (SET) inc qword qword [rbp - 164] ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 164] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#end jmp parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#start parse._mhf_transform#2#loop#0#wrap#1#if#3#loop#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#4#loop#end parse._mhf_transform#2#loop#0#wrap#1#if#4#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call utils._#Vector.pop parse._mhf_transform#2#loop#0#wrap#1#if#4#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#4#loop#end jmp parse._mhf_transform#2#loop#0#wrap#1#if#4#loop#start parse._mhf_transform#2#loop#0#wrap#1#if#4#loop#end: cmp r11, r12 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#0#wrap#1#if#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r15 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r11, rax ; (SET) jmp parse._mhf_transform#2#loop#0#wrap#1#if#5#wrap#end parse._mhf_transform#2#loop#0#wrap#1#if#5#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r15 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._mhf_transform#2#loop#0#wrap#1#if#5#wrap#end parse._mhf_transform#2#loop#0#wrap#1#if#5#wrap#1#if#end: parse._mhf_transform#2#loop#0#wrap#1#if#5#wrap#end: jmp parse._mhf_transform#2#loop#0#wrap#end parse._mhf_transform#2#loop#0#wrap#1#if#end: parse._mhf_transform#2#loop#0#wrap#end: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#1#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov qword [rbp - 122], r14 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) jmp parse._mhf_transform#2#loop#1#wrap#end parse._mhf_transform#2#loop#1#wrap#0#if#end: parse._mhf_transform#2#loop#1#wrap#end: parse._mhf_transform#2#loop#rep: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_transform#2#loop#end jmp parse._mhf_transform#2#loop#start parse._mhf_transform#2#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.end ; putting struct address into register lea rdi, [r10] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.update_children ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_transform#end parse._mhf_transform#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_escape: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) mov r14, 0 ; (SET) mov r15, r13 ; (SET) sub rsp, 8 ; Create stack space for local variable p2 mov qword [rbp - 64], r11 ; (SET) sub rsp, 1 ; Create stack space for local variable run mov byte [rbp - 65], 1 ; (SET) mov cl, byte [rbp - 65] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._mhf_escape#0#loop#1#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r15, qword [rbp - 64] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 66], al ; Mov after compare cmp byte byte [rbp - 66], 0 parse._mhf_escape#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._mhf_escape#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 73], rsi ; (SET) mov rdi, [rbp - 73] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_escape#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#end parse._mhf_escape#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 74], r12 ; (SET) mov rsi, qword [rel parse._mhf_escape#0#loop#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 82], rsi ; (SET) mov rax, qword [rbp - 74] ; (SET) mov rbx, qword [rbp - 82] ; (SET) lea rsp, [rbp - 66] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#end cmp r14, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#0#if#end mov rbx, r14 ; (SET) sub rbx, 1 ; (STD_OP) mov r14, rbx ; (SET) jmp parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#end parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 74], r13 ; (SET) mov rsi, qword [rel parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 82], rsi ; (SET) mov rax, qword [rbp - 74] ; (SET) mov rbx, qword [rbp - 82] ; (SET) lea rsp, [rbp - 66] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#1#if#end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) mov r15, r13 ; (SET) jmp parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#end parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#1#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 67], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 68], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 76], r13 ; (SET) mov rsi, qword [rel parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 84], rsi ; (SET) mov rax, qword [rbp - 76] ; (SET) mov rbx, qword [rbp - 84] ; (SET) lea rsp, [rbp - 68] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov r9b, byte [rbp - 68] ; (SET) mov r8b, byte [rbp - 67] ; (SET) mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], al ; (SET) mov cl, byte [rbp - 66] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#end parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#start: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#rep: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#2#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 67], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 68], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 76], r13 ; (SET) mov rsi, qword [rel parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 84], rsi ; (SET) mov rax, qword [rbp - 76] ; (SET) mov rbx, qword [rbp - 84] ; (SET) lea rsp, [rbp - 68] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov r9b, byte [rbp - 68] ; (SET) mov r8b, byte [rbp - 67] ; (SET) mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], al ; (SET) mov cl, byte [rbp - 66] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#end jmp parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#start parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#0#loop#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#1#wrap#0#if#end jmp parse._mhf_escape#end jmp parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#1#wrap#end parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#1#wrap#0#if#end: parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#1#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) mov r15, r13 ; (SET) jmp parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#end parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#2#if#end: parse._mhf_escape#0#loop#2#wrap#0#if#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 74], r13 ; (SET) mov rsi, qword [rel parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 82], rsi ; (SET) mov rax, qword [rbp - 74] ; (SET) mov rbx, qword [rbp - 82] ; (SET) lea rsp, [rbp - 66] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#0#if#end mov byte [rbp - 65], 0 ; (SET) jmp parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#end parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#0#if#end: parse._mhf_escape#0#loop#2#wrap#0#if#2#wrap#end: jmp parse._mhf_escape#0#loop#2#wrap#end parse._mhf_escape#0#loop#2#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 74], r12 ; (SET) mov rsi, qword [rel parse._mhf_escape#0#loop#2#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 82], rsi ; (SET) mov rax, qword [rbp - 74] ; (SET) mov rbx, qword [rbp - 82] ; (SET) lea rsp, [rbp - 66] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 66] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#2#wrap#1#if#end mov rbx, r14 ; (SET) add rbx, 1 ; (STD_OP) mov r14, rbx ; (SET) jmp parse._mhf_escape#0#loop#2#wrap#end parse._mhf_escape#0#loop#2#wrap#1#if#end: parse._mhf_escape#0#loop#2#wrap#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 129] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 137] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 97] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 97] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 129] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 97] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r12 ; (SET) mov rax, qword [rbp - 137] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 129] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct parse._mhf_escape#0#loop#rep: mov cl, byte [rbp - 65] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._mhf_escape#0#loop#4#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r15, qword [rbp - 64] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 130], al ; Mov after compare cmp byte byte [rbp - 130], 0 parse._mhf_escape#0#loop#4#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._mhf_escape#0#loop#3#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], rsi ; (SET) mov rdi, [rbp - 137] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_escape#0#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_escape#0#loop#end jmp parse._mhf_escape#0#loop#start parse._mhf_escape#0#loop#end: parse._mhf_escape#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_up_to_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, r10 ; (SET) cmp r11, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_up_to_value#0#loop#end parse._mhf_up_to_value#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_up_to_value#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r10 ; (SET) jmp parse._mhf_up_to_value#end jmp parse._mhf_up_to_value#0#loop#0#wrap#end parse._mhf_up_to_value#0#loop#0#wrap#0#if#end: parse._mhf_up_to_value#0#loop#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r10, qword [rsi] ; (SET) mov r11, r10 ; (SET) parse._mhf_up_to_value#0#loop#rep: cmp r11, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_up_to_value#0#loop#end jmp parse._mhf_up_to_value#0#loop#start parse._mhf_up_to_value#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_up_to_value#end parse._mhf_up_to_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_lower: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11b, 1 ; (SET) cmp r11b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_lower#0#loop#end parse._mhf_lower#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_lower#0#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) mov rbx, r12 ; (SET) sub rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r10, rax ; (SET) jmp parse._mhf_lower#0#loop#0#wrap#end parse._mhf_lower#0#loop#0#wrap#0#if#end: ; STARTING RETURN mov rax, r10 ; (SET) jmp parse._mhf_lower#end jmp parse._mhf_lower#0#loop#0#wrap#end parse._mhf_lower#0#loop#0#wrap#1#if#end: parse._mhf_lower#0#loop#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_lower#0#loop#1#wrap#0#if#end ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp parse._mhf_lower#end jmp parse._mhf_lower#0#loop#1#wrap#end parse._mhf_lower#0#loop#1#wrap#0#if#end: parse._mhf_lower#0#loop#1#wrap#end: parse._mhf_lower#0#loop#rep: cmp r11b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_lower#0#loop#end jmp parse._mhf_lower#0#loop#start parse._mhf_lower#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_lower#end parse._mhf_lower#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_post_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) mov r15b, 1 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_value#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_value#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#end parse._mhf_post_value#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_value#0#loop#1#wrap#0#if#0#bool#end cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_post_value#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#0#if#end mov r15b, 0 ; (SET) jmp parse._mhf_post_value#0#loop#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#1#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable op sub rsp, 50 ; Create stack space for local variable id sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_BIN_OP] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 182], rsi ; (SET) mov rax, qword [rbp - 182] ; (SET) lea rsp, [rbp - 174] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 174], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 172], rbx ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable sub mov qword [rbp - 164], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rax ; (SET) mov rsi, qword [rbp - 164] ; (SET_PRM_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) mov rbx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) mov rbx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 172], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 180], rsi ; (SET) mov rax, qword [rbp - 172] ; (SET) mov rbx, qword [rbp - 180] ; (SET) lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r11, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 236], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 228] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 236] ; (SET) lea rsp, [rbp - 228] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 196] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 196] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 196] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 164] ; Free stack space (freeing tmp variables) jmp parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post_value#end jmp parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#1#if#end: parse._mhf_post_value#0#loop#1#wrap#1#if#1#wrap#end: jmp parse._mhf_post_value#0#loop#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._op_postfix mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#2#if#end sub rsp, 50 ; Create stack space for local variable op sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_POST_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#end parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 122], rbx ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) jmp parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#end parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post_value#end jmp parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#end parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#2#if#end: parse._mhf_post_value#0#loop#1#wrap#2#if#0#wrap#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) jmp parse._mhf_post_value#0#loop#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#3#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_value mov r14, rax ; (SET) jmp parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_list_value mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) jmp parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post_value#end jmp parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#2#if#end: parse._mhf_post_value#0#loop#1#wrap#3#if#1#wrap#end: jmp parse._mhf_post_value#0#loop#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#4#if#end sub rsp, 50 ; Create stack space for local variable ind sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_POST_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 123], rsi ; (SET) mov qword [rbp - 131], r12 ; (SET) mov byte [rbp - 132], 1 ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) mov dl, byte [rbp - 132] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._ast_value mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#0#if#end: parse._mhf_post_value#0#loop#1#wrap#4#if#1#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#end parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#0#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 122], rbx ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) jmp parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#end parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post_value#end jmp parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#end parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#2#if#end: parse._mhf_post_value#0#loop#1#wrap#4#if#2#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_post_value#end jmp parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#end parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#0#if#end: parse._mhf_post_value#0#loop#1#wrap#4#if#3#wrap#end: jmp parse._mhf_post_value#0#loop#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#4#if#end: mov r15b, 0 ; (SET) jmp parse._mhf_post_value#0#loop#1#wrap#end parse._mhf_post_value#0#loop#1#wrap#5#if#end: parse._mhf_post_value#0#loop#1#wrap#end: parse._mhf_post_value#0#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_post_value#0#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_post_value#0#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_post_value#0#loop#end jmp parse._mhf_post_value#0#loop#start parse._mhf_post_value#0#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_post_value#end parse._mhf_post_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_inner_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._mhf_lower mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov byte [rbp - 81], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov dl, byte [rbp - 81] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._mhf_post_value mov r11, rax ; (SET) cmp r11, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#0#wrap#0#if#end ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_inner_value#end jmp parse._mhf_inner_value#0#wrap#end parse._mhf_inner_value#0#wrap#0#if#end: parse._mhf_inner_value#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._mhf_up_to_value mov r11, rax ; (SET) mov r14b, 0 ; (SET) mov r15b, 1 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_inner_value#1#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_inner_value#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#end parse._mhf_inner_value#1#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#1#loop#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 74], rsi ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._mhf_inner_value#1#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#1#loop#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_inner_value#1#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#0#if#end mov r15b, 0 ; (SET) jmp parse._mhf_inner_value#1#loop#1#wrap#end parse._mhf_inner_value#1#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#1#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#1#loop#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_inner_value#end jmp parse._mhf_inner_value#1#loop#1#wrap#end parse._mhf_inner_value#1#loop#1#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rax, qword [rbp - 67] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._op_bin mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_inner_value#1#loop#1#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#end mov r14b, 1 ; (SET) sub rsp, 50 ; Create stack space for local variable bin sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_BIN_OP] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 114], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._op_order sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 114], rax ; (SET) sub rsp, 1 ; Create stack space for local variable gt mov byte [rbp - 115], 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rsi, qword [rbp - 114] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 123] ; (SET) mov rbx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 115] ; Free stack space (freeing tmp variables) call parse._assoc mov byte [rbp - 115], al ; (SET) jmp parse._mhf_inner_value#1#loop#1#wrap#2#if#1#wrap#end parse._mhf_inner_value#1#loop#1#wrap#2#if#1#wrap#0#if#end: parse._mhf_inner_value#1#loop#1#wrap#2#if#1#wrap#end: mov cl, byte [rbp - 115] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#end parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rsi, qword [rbp - 114] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 123] ; (SET) mov rbx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 115] ; Free stack space (freeing tmp variables) call parse._assoc mov byte [rbp - 115], al ; (SET) jmp parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#0#wrap#end parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#0#wrap#0#if#end: mov byte [rbp - 115], 0 ; (SET) jmp parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#0#wrap#end parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#0#wrap#1#if#end: parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#0#wrap#end: parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#rep: mov cl, byte [rbp - 115] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#end jmp parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#start parse._mhf_inner_value#1#loop#1#wrap#2#if#2#loop#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 123], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 131], rbx ; (SET) mov rax, qword [rbp - 123] ; (SET) mov rbx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 115] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable lhs mov qword [rbp - 123], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 131], rax ; (SET) mov rsi, qword [rbp - 123] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 131], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 139], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r11, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 195], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 187] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 195] ; (SET) lea rsp, [rbp - 187] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 155] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 155] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 155] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 104] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rsi, qword [rel parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call utils.strcmp cmp al, 0 je parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 131], r10 ; (SET) mov qword [rbp - 139], r11 ; (SET) mov qword [rbp - 147], r12 ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) mov rcx, qword [rbp - 147] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._ast_type jmp parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#end parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 131], r10 ; (SET) mov qword [rbp - 139], r11 ; (SET) mov qword [rbp - 147], r12 ; (SET) mov byte [rbp - 148], 1 ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) mov rcx, qword [rbp - 147] ; (SET) mov dl, byte [rbp - 148] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._ast_value_bare mov r15b, al ; (SET) jmp parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#end parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#1#if#end: parse._mhf_inner_value#1#loop#1#wrap#2#if#3#wrap#end: jmp parse._mhf_inner_value#1#loop#1#wrap#end parse._mhf_inner_value#1#loop#1#wrap#2#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#1#loop#1#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_inner_value#end jmp parse._mhf_inner_value#1#loop#1#wrap#end parse._mhf_inner_value#1#loop#1#wrap#3#if#end: parse._mhf_inner_value#1#loop#1#wrap#end: parse._mhf_inner_value#1#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_inner_value#1#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_inner_value#1#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#1#loop#end jmp parse._mhf_inner_value#1#loop#start parse._mhf_inner_value#1#loop#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#2#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) jmp parse._mhf_inner_value#2#wrap#end parse._mhf_inner_value#2#wrap#0#if#end: parse._mhf_inner_value#2#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [r13], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._advance_check cmp al, 0 je parse._mhf_inner_value#3#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#3#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._#Node.eq mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#3#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._mhf_up_to_value mov r11, rax ; (SET) jmp parse._mhf_inner_value#3#wrap#0#if#1#wrap#end parse._mhf_inner_value#3#wrap#0#if#1#wrap#0#if#end: parse._mhf_inner_value#3#wrap#0#if#1#wrap#end: jmp parse._mhf_inner_value#3#wrap#end parse._mhf_inner_value#3#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#3#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_inner_value#3#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_inner_value#3#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_inner_value#end jmp parse._mhf_inner_value#3#wrap#end parse._mhf_inner_value#3#wrap#1#if#end: parse._mhf_inner_value#3#wrap#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_inner_value#end parse._mhf_inner_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_outer_list: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_outer_list#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov r14, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov cx, word [r9] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_outer_list#0#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_outer_list#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call parse._#Node.end mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.pop mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) jmp parse._mhf_outer_list#0#wrap#0#if#0#wrap#0#if#0#wrap#end parse._mhf_outer_list#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: parse._mhf_outer_list#0#wrap#0#if#0#wrap#0#if#0#wrap#end: jmp parse._mhf_outer_list#0#wrap#0#if#0#wrap#end parse._mhf_outer_list#0#wrap#0#if#0#wrap#0#if#end: parse._mhf_outer_list#0#wrap#0#if#0#wrap#end: jmp parse._mhf_outer_list#0#wrap#end parse._mhf_outer_list#0#wrap#0#if#end: parse._mhf_outer_list#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_outer_list#1#loop#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._mhf_outer_list#1#loop#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_outer_list#1#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_outer_list#1#loop#end parse._mhf_outer_list#1#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov byte [rbp - 81], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov dl, byte [rbp - 81] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_value sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 66], r10 ; (SET) mov qword [rbp - 74], r12 ; (SET) mov rsi, qword [rel parse._mhf_outer_list#1#loop#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 82], rsi ; (SET) mov rax, qword [rbp - 66] ; (SET) mov rbx, qword [rbp - 74] ; (SET) mov rcx, qword [rbp - 82] ; (SET) lea rsp, [rbp - 58] ; Free stack space (freeing tmp variables) call parse._advance_check mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_outer_list#1#loop#2#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._mhf_outer_list#1#loop#2#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_outer_list#1#loop#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_outer_list#1#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._mhf_outer_list#1#loop#2#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp parse._mhf_outer_list#end jmp parse._mhf_outer_list#1#loop#2#wrap#end parse._mhf_outer_list#1#loop#2#wrap#0#if#end: parse._mhf_outer_list#1#loop#2#wrap#end: parse._mhf_outer_list#1#loop#rep: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_outer_list#1#loop#3#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 58], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 59], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 67], r12 ; (SET) mov rsi, qword [rel parse._mhf_outer_list#1#loop#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 75], rsi ; (SET) mov rax, qword [rbp - 67] ; (SET) mov rbx, qword [rbp - 75] ; (SET) lea rsp, [rbp - 59] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 59] ; (SET) mov r8b, byte [rbp - 58] ; (SET) mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], al ; (SET) mov cl, byte [rbp - 57] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_outer_list#1#loop#3#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_outer_list#1#loop#end jmp parse._mhf_outer_list#1#loop#start parse._mhf_outer_list#1#loop#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [r13], rsi ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable next ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r11 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._mhf_up_to_value mov r11, rax ; (SET) ; STARTING RETURN mov rax, r11 ; (SET) jmp parse._mhf_outer_list#end parse._mhf_outer_list#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_finish_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) mov r14b, sil ; (SET) mov r15, r13 ; (SET) sub rsp, 8 ; Create stack space for local variable p2 mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable ln mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) sub rsp, 1 ; Create stack space for local variable run mov byte [rbp - 73], 1 ; (SET) mov cl, byte [rbp - 73] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._mhf_finish_value#0#loop#1#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r15, qword [rbp - 64] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 74], al ; Mov after compare cmp byte byte [rbp - 74], 0 parse._mhf_finish_value#0#loop#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._mhf_finish_value#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 81], rsi ; (SET) mov rdi, [rbp - 81] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#0#loop#end parse._mhf_finish_value#0#loop#start: sub rsp, 8 ; Create stack space for local variable tmp mov qword [rbp - 81], r13 ; (SET) ; putting struct address into register mov rsi, [rbp - 81] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#0#loop#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], r10 ; (SET) mov rsi, qword [rbp - 81] ; (SET_PRM_R) mov qword [rbp - 97], rsi ; (SET) mov qword [rbp - 105], r12 ; (SET) lea rsi, qword [rbp - 72] ; (TAKE_PTR) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 89] ; (SET) mov rbx, qword [rbp - 97] ; (SET) mov rcx, qword [rbp - 105] ; (SET) mov rdx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) call parse._mhf_inner_value mov qword [rbp - 81], rax ; (SET) jmp parse._mhf_finish_value#0#loop#2#wrap#end parse._mhf_finish_value#0#loop#2#wrap#0#if#end: parse._mhf_finish_value#0#loop#2#wrap#end: mov rcx, qword [rbp - 81] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_finish_value#0#loop#3#wrap#0#if#0#bool#end ; putting struct address into register mov rsi, [rbp - 81] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], rsi ; (SET) mov rdi, [rbp - 89] ; (SET_PRM_L) mov cx, word [rdi] ; (SET) cmp cx, word [rel parse.NTYPE_VLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#0#loop#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#0#loop#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], r10 ; (SET) mov rsi, qword [rbp - 81] ; (SET_PRM_R) mov qword [rbp - 97], rsi ; (SET) mov qword [rbp - 105], r12 ; (SET) lea rsi, qword [rbp - 72] ; (TAKE_PTR) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 89] ; (SET) mov rbx, qword [rbp - 97] ; (SET) mov rcx, qword [rbp - 105] ; (SET) mov rdx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) call parse._mhf_outer_list mov qword [rbp - 81], rax ; (SET) jmp parse._mhf_finish_value#0#loop#3#wrap#end parse._mhf_finish_value#0#loop#3#wrap#0#if#end: parse._mhf_finish_value#0#loop#3#wrap#end: mov rcx, qword [rbp - 81] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._mhf_finish_value#0#loop#4#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 81] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 90], rsi ; (SET) mov rdi, [rbp - 90] ; (SET_PRM_L) mov cx, word [rdi] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 82], al ; Mov after compare lea rsp, [rbp - 82] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 82], 0 parse._mhf_finish_value#0#loop#4#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._mhf_finish_value#0#loop#4#wrap#0#if#0#bool#end ; putting struct address into register mov rsi, [rbp - 81] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], rsi ; (SET) mov rdi, [rbp - 89] ; (SET_PRM_L) mov cx, word [rdi] ; (SET) cmp cx, word [rel parse.NTYPE_VLIST] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#0#loop#4#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#0#loop#4#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], r10 ; (SET) mov qword [rbp - 97], r12 ; (SET) mov rsi, qword [rel parse._mhf_finish_value#0#loop#4#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 89] ; (SET) mov rbx, qword [rbp - 97] ; (SET) mov rcx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 81] ; (SET_PRM_R) mov qword [rbp - 89], rsi ; (SET) mov rax, qword [rbp - 89] ; (SET) lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) call parse.print_ast jmp parse._mhf_finish_value#end jmp parse._mhf_finish_value#0#loop#4#wrap#end parse._mhf_finish_value#0#loop#4#wrap#0#if#end: parse._mhf_finish_value#0#loop#4#wrap#end: mov rcx, qword [rbp - 81] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#0#loop#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], r10 ; (SET) mov qword [rbp - 97], r11 ; (SET) mov qword [rbp - 105], r12 ; (SET) mov qword [rbp - 113], r13 ; (SET) mov rax, qword [rbp - 89] ; (SET) mov rbx, qword [rbp - 97] ; (SET) mov rcx, qword [rbp - 105] ; (SET) mov rdx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) call parse._mhf_escape jmp parse._mhf_finish_value#end jmp parse._mhf_finish_value#0#loop#5#wrap#end parse._mhf_finish_value#0#loop#5#wrap#0#if#end: parse._mhf_finish_value#0#loop#5#wrap#end: mov r13, qword [rbp - 81] ; (SET) mov r15, r13 ; (SET) parse._mhf_finish_value#0#loop#rep: mov cl, byte [rbp - 73] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._mhf_finish_value#0#loop#7#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r15, qword [rbp - 64] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov byte [rbp - 82], al ; Mov after compare cmp byte byte [rbp - 82], 0 parse._mhf_finish_value#0#loop#7#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._mhf_finish_value#0#loop#6#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 89], rsi ; (SET) mov rdi, [rbp - 89] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 81] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#0#loop#6#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#0#loop#end jmp parse._mhf_finish_value#0#loop#start parse._mhf_finish_value#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call parse._mhf_lower mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._mhf_finish_value#1#wrap#0#if#0#bool#end cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_finish_value#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov qword [rbp - 96], r12 ; (SET) mov byte [rbp - 97], r14b ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) mov rcx, qword [rbp - 96] ; (SET) mov dl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call parse._mhf_post_value sub rsp, 8 ; Create stack space for local variable tmp mov qword [rbp - 80], rax ; (SET) mov rcx, qword [rbp - 80] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 88], r10 ; (SET) mov qword [rbp - 96], r12 ; (SET) mov rsi, qword [rel parse._mhf_finish_value#1#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 88] ; (SET) mov rbx, qword [rbp - 96] ; (SET) mov rcx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 80] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 88], r10 ; (SET) mov qword [rbp - 96], r11 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov qword [rbp - 112], r13 ; (SET) mov rax, qword [rbp - 88] ; (SET) mov rbx, qword [rbp - 96] ; (SET) mov rcx, qword [rbp - 104] ; (SET) mov rdx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 80] ; Free stack space (freeing tmp variables) call parse._mhf_escape jmp parse._mhf_finish_value#end jmp parse._mhf_finish_value#1#wrap#0#if#1#wrap#end parse._mhf_finish_value#1#wrap#0#if#1#wrap#0#if#end: parse._mhf_finish_value#1#wrap#0#if#1#wrap#end: mov r13, qword [rbp - 80] ; (SET) jmp parse._mhf_finish_value#1#wrap#end parse._mhf_finish_value#1#wrap#0#if#end: parse._mhf_finish_value#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call parse._mhf_up_to_value mov r13, rax ; (SET) sub rsp, 1 ; Create stack space for local variable run mov byte [rbp - 73], 1 ; (SET) mov cl, byte [rbp - 73] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_finish_value#2#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 81], rsi ; (SET) mov rdi, [rbp - 81] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#2#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#end parse._mhf_finish_value#2#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rbp - 72] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_finish_value#2#loop#1#wrap#0#if#0#bool#end cmp r14b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_finish_value#2#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#0#if#end mov byte [rbp - 73], 0 ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#end parse._mhf_finish_value#2#loop#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_SEP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._mhf_finish_value#2#loop#1#wrap#1#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 75], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 76], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 84], r12 ; (SET) mov rax, qword [rbp - 84] ; (SET) lea rsp, [rbp - 76] ; Free stack space (freeing tmp variables) call parse._is_closing mov r9b, byte [rbp - 76] ; (SET) mov r8b, byte [rbp - 75] ; (SET) mov bl, byte [rbp - 74] ; (SET) lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], al ; (SET) mov cl, byte [rbp - 74] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#2#loop#1#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#1#if#end mov byte [rbp - 73], 0 ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#end parse._mhf_finish_value#2#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 82], r12 ; (SET) mov rsi, qword [rel parse._mhf_finish_value#2#loop#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 90], rsi ; (SET) mov rax, qword [rbp - 82] ; (SET) mov rbx, qword [rbp - 90] ; (SET) lea rsp, [rbp - 74] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 74] ; (SET) lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#2#if#end mov byte [rbp - 73], 0 ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#end parse._mhf_finish_value#2#loop#1#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_AUG] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 75], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 76], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 84], r12 ; (SET) mov rax, qword [rbp - 84] ; (SET) lea rsp, [rbp - 76] ; Free stack space (freeing tmp variables) call parse._op_bin mov r9b, byte [rbp - 76] ; (SET) mov r8b, byte [rbp - 75] ; (SET) mov bl, byte [rbp - 74] ; (SET) lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], al ; (SET) mov cl, byte [rbp - 74] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#2#loop#1#wrap#3#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#end sub rsp, 50 ; Create stack space for local variable bin sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 123] ; initial struct addr move (SET_STR_R) mov qword [rbp - 131], rax ; (SET) mov si, word [rel parse.NTYPE_BIN_OP] ; (SET_PRM_R) mov word [rbp - 133], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 141], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) mov bx, word [rbp - 133] ; (SET) mov rcx, qword [rbp - 141] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._op_order sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 131], rax ; (SET) sub rsp, 1 ; Create stack space for local variable gt mov byte [rbp - 132], 0 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 140], rsi ; (SET) mov rsi, qword [rbp - 131] ; (SET_PRM_R) mov qword [rbp - 148], rsi ; (SET) mov rax, qword [rbp - 140] ; (SET) mov rbx, qword [rbp - 148] ; (SET) lea rsp, [rbp - 132] ; Free stack space (freeing tmp variables) call parse._assoc mov byte [rbp - 132], al ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#3#if#1#wrap#end parse._mhf_finish_value#2#loop#1#wrap#3#if#1#wrap#0#if#end: parse._mhf_finish_value#2#loop#1#wrap#3#if#1#wrap#end: mov cl, byte [rbp - 132] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#end parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#start: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 140], rsi ; (SET) mov rsi, qword [rbp - 131] ; (SET_PRM_R) mov qword [rbp - 148], rsi ; (SET) mov rax, qword [rbp - 140] ; (SET) mov rbx, qword [rbp - 148] ; (SET) lea rsp, [rbp - 132] ; Free stack space (freeing tmp variables) call parse._assoc mov byte [rbp - 132], al ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#0#wrap#end parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#0#wrap#0#if#end: mov byte [rbp - 132], 0 ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#0#wrap#end parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#0#wrap#1#if#end: parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#0#wrap#end: parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#rep: mov cl, byte [rbp - 132] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#end jmp parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#start parse._mhf_finish_value#2#loop#1#wrap#3#if#2#loop#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 140], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 148], rbx ; (SET) mov rax, qword [rbp - 140] ; (SET) mov rbx, qword [rbp - 148] ; (SET) lea rsp, [rbp - 132] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable lhs mov qword [rbp - 140], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 123] ; initial struct addr move (SET_STR_R) mov qword [rbp - 148], rax ; (SET) mov rsi, qword [rbp - 140] ; (SET_PRM_R) mov qword [rbp - 156], rsi ; (SET) mov rax, qword [rbp - 148] ; (SET) mov rbx, qword [rbp - 156] ; (SET) lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) call parse._#Node.add_child ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 148], rsi ; (SET) mov rax, qword [rbp - 148] ; (SET) lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) call utils._#Vector.pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 148], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 123] ; initial struct addr move (SET_STR_R) mov qword [rbp - 156], rsi ; (SET) mov rax, qword [rbp - 148] ; (SET) mov rbx, qword [rbp - 156] ; (SET) lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r13, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 212], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 204] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 212] ; (SET) lea rsp, [rbp - 204] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 172] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 172] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 172] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 121] ; (SET_PRM_R) mov qword [rbp - 148], rsi ; (SET) mov rsi, qword [rel parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 156], rsi ; (SET) mov rax, qword [rbp - 148] ; (SET) mov rbx, qword [rbp - 156] ; (SET) lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) call utils.strcmp cmp al, 0 je parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 148], r10 ; (SET) mov qword [rbp - 156], r13 ; (SET) mov qword [rbp - 164], r12 ; (SET) mov rax, qword [rbp - 148] ; (SET) mov rbx, qword [rbp - 156] ; (SET) mov rcx, qword [rbp - 164] ; (SET) lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) call parse._ast_type jmp parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#end parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 148], r10 ; (SET) mov qword [rbp - 156], r13 ; (SET) mov qword [rbp - 164], r12 ; (SET) mov byte [rbp - 165], r14b ; (SET) mov rax, qword [rbp - 148] ; (SET) mov rbx, qword [rbp - 156] ; (SET) mov rcx, qword [rbp - 164] ; (SET) mov dl, byte [rbp - 165] ; (SET) lea rsp, [rbp - 140] ; Free stack space (freeing tmp variables) call parse._ast_value_bare mov byte [rbp - 73], al ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#end parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#1#if#end: parse._mhf_finish_value#2#loop#1#wrap#3#if#3#wrap#end: jmp parse._mhf_finish_value#2#loop#1#wrap#end parse._mhf_finish_value#2#loop#1#wrap#3#if#end: mov byte [rbp - 73], 0 ; (SET) jmp parse._mhf_finish_value#2#loop#1#wrap#end parse._mhf_finish_value#2#loop#1#wrap#4#if#end: parse._mhf_finish_value#2#loop#1#wrap#end: parse._mhf_finish_value#2#loop#rep: mov cl, byte [rbp - 73] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_finish_value#2#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 81], rsi ; (SET) mov rdi, [rbp - 81] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._mhf_finish_value#2#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_value#2#loop#end jmp parse._mhf_finish_value#2#loop#start parse._mhf_finish_value#2#loop#end: parse._mhf_finish_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._mhf_finish_decl: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) sub rsp, 50 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_DECL] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._mhf_finish_decl#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov qword [rbp - 122], r11 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child mov r14b, 1 ; (SET) cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#end parse._mhf_finish_decl#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable var sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 165], r12 ; (SET) mov rsi, qword [rel parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 173], rsi ; (SET) mov rax, qword [rbp - 165] ; (SET) mov rbx, qword [rbp - 173] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp al, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], rsi ; (SET) mov rdi, [rbp - 164] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, r15 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 157], al ; Mov after compare cmp byte byte [rbp - 157], 0 parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) cmp r8b, 0 parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 236], rsi ; (SET) mov qword [rbp - 244], r12 ; (SET) mov byte [rbp - 245], 0 ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) mov rcx, qword [rbp - 244] ; (SET) mov dl, byte [rbp - 245] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#end parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, r15 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#1#if#0#bool#end cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#1#if#end mov r14b, 0 ; (SET) jmp parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#end parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#1#if#end: parse._mhf_finish_decl#1#loop#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 165], r12 ; (SET) mov rsi, qword [rel parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 173], rsi ; (SET) mov rax, qword [rbp - 165] ; (SET) mov rbx, qword [rbp - 173] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#0#if#end mov r14b, 0 ; (SET) jmp parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#end parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#0#if#end: cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#1#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#end parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#1#if#end: parse._mhf_finish_decl#1#loop#0#wrap#0#if#1#wrap#end: jmp parse._mhf_finish_decl#1#loop#0#wrap#end parse._mhf_finish_decl#1#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._mhf_finish_decl#1#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r14b, 0 ; (SET) jmp parse._mhf_finish_decl#1#loop#0#wrap#end parse._mhf_finish_decl#1#loop#0#wrap#1#if#end: parse._mhf_finish_decl#1#loop#0#wrap#end: parse._mhf_finish_decl#1#loop#rep: cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._mhf_finish_decl#1#loop#end jmp parse._mhf_finish_decl#1#loop#start parse._mhf_finish_decl#1#loop#end: ; putting struct address into register lea rdi, [r11] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct parse._mhf_finish_decl#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._maybe_helper_fun: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13b, dl ; (SET) sub rsp, 50 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_TYPE] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._maybe_helper_fun#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._type_helper_pre sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_fun#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Token.eq cmp al, 0 je parse._maybe_helper_fun#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._mhf_transform mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov qword [rbp - 138], r14 ; (SET) mov byte [rbp - 139], r13b ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov rdx, qword [rbp - 138] ; (SET) mov sil, byte [rbp - 139] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._mhf_finish_value jmp parse._maybe_helper_fun#1#wrap#end parse._maybe_helper_fun#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._maybe_helper_fun#1#wrap#1#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._maybe_helper_fun#1#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_fun#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._maybe_helper_fun#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._maybe_helper_fun#1#wrap#end parse._maybe_helper_fun#1#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], r13b ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._mhf_post mov r14, rax ; (SET) cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._maybe_helper_fun#1#wrap#2#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], r13b ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._mhf_finish_decl jmp parse._maybe_helper_fun#1#wrap#2#if#0#wrap#end parse._maybe_helper_fun#1#wrap#2#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rsi ; (SET) mov qword [rbp - 122], r14 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._mhf_transform mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov qword [rbp - 138], r14 ; (SET) mov byte [rbp - 139], r13b ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov rdx, qword [rbp - 138] ; (SET) mov sil, byte [rbp - 139] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._mhf_finish_value jmp parse._maybe_helper_fun#1#wrap#2#if#0#wrap#end parse._maybe_helper_fun#1#wrap#2#if#0#wrap#1#if#end: parse._maybe_helper_fun#1#wrap#2#if#0#wrap#end: jmp parse._maybe_helper_fun#1#wrap#end parse._maybe_helper_fun#1#wrap#2#if#end: parse._maybe_helper_fun#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._maybe_helper_fun#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_function: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_function#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_function#end jmp parse._ast_function#0#wrap#end parse._ast_function#0#wrap#0#if#end: parse._ast_function#0#wrap#end: sub rsp, 50 ; Create stack space for local variable fn sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_FUNCTION] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_function#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_decl jmp parse._ast_function#1#wrap#end parse._ast_function#1#wrap#0#if#end: parse._ast_function#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_function#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_type jmp parse._ast_function#2#wrap#end parse._ast_function#2#wrap#0#if#end: parse._ast_function#2#wrap#end: mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_function#3#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_function#3#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#end parse._ast_function#3#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_function#3#loop#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_asm jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_function#3#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_fun_block jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_function#3#loop#1#wrap#2#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_function#3#loop#1#wrap#2#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_function#3#loop#1#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_decl jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_function#3#loop#1#wrap#3#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_function#3#loop#1#wrap#3#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_function#3#loop#1#wrap#3#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 0 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._maybe_helper_fun jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#3#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_function#3#loop#1#wrap#4#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rsi, qword [rel parse._ast_function#3#loop#1#wrap#4#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 126], rsi ; (SET) mov rax, qword [rbp - 118] ; (SET) mov rbx, qword [rbp - 126] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_function#3#loop#1#wrap#4#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_function#3#loop#1#wrap#4#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], r12 ; (SET) mov rax, qword [rbp - 116] ; (SET) lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) call parse._op_prefix mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp al, 0 parse._ast_function#3#loop#1#wrap#4#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov byte [rbp - 131], 0 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) mov dl, byte [rbp - 131] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#4#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_keyword_expr jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#5#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_function#3#loop#1#wrap#6#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_function#3#loop#1#wrap#6#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#1#wrap#6#if#end mov r13b, 0 ; (SET) jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#6#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_function#3#loop#1#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_function#3#loop#1#wrap#end parse._ast_function#3#loop#1#wrap#7#if#end: parse._ast_function#3#loop#1#wrap#end: parse._ast_function#3#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_function#3#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_function#3#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_function#3#loop#end jmp parse._ast_function#3#loop#start parse._ast_function#3#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_function#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_import: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_import#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_import#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_import#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_import#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_import#end jmp parse._ast_import#0#wrap#end parse._ast_import#0#wrap#0#if#end: parse._ast_import#0#wrap#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call utils.unquote_str ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable relv ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r13, rax ; (SET) sub rsp, 37 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 165], r10 ; (SET) mov qword [rbp - 173], r13 ; (SET) mov rax, qword [rbp - 165] ; (SET) mov rbx, qword [rbp - 173] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) sub rsp, 37 call utils._#File.relative ; putting struct address into register lea rdi, [rbp - 157] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 37 ; size of struct [File] in bytes rep movsb ; move struct add rsp, 37 sub rsp, 37 ; Create stack space for local variable imp ; putting struct address into register lea rdi, [rbp - 194] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 157] ; initial struct addr move (SET_STR_R) mov rcx, 37 ; size of struct [File] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 202], r13 ; (SET) mov rax, qword [rbp - 202] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 194] ; initial struct addr move (SET_STR_R) mov qword [rbp - 202], rax ; (SET) mov byte [rbp - 203], 47 ; (SET) mov rax, qword [rbp - 202] ; (SET) mov bl, byte [rbp - 203] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call utils._#Artifact.to_cstr mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_import#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 202], rsi ; (SET) mov rax, qword [rbp - 202] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 202], r13 ; (SET) mov rax, qword [rbp - 202] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_import#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 202], rsi ; (SET) mov rax, qword [rbp - 202] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 202], r13 ; (SET) mov rax, qword [rbp - 202] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 194] ; initial struct addr move (SET_STR_R) mov qword [rbp - 202], rsi ; (SET) mov qword [rbp - 210], r11 ; (SET) mov rax, qword [rbp - 202] ; (SET) mov rbx, qword [rbp - 210] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call parse._ast_file sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 194] ; initial struct addr move (SET_STR_R) mov qword [rbp - 202], rax ; (SET) mov rax, qword [rbp - 202] ; (SET) lea rsp, [rbp - 194] ; Free stack space (freeing tmp variables) call utils._#File.end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 266], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 258] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 266] ; (SET) lea rsp, [rbp - 258] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 226] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 226] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 258] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 226] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 266], r12 ; (SET) mov rax, qword [rbp - 266] ; (SET) lea rsp, [rbp - 258] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 258] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct parse._ast_import#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_asm: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_LITRL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_asm#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_asm#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_asm#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_asm#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_asm#end jmp parse._ast_asm#0#wrap#end parse._ast_asm#0#wrap#0#if#end: parse._ast_asm#0#wrap#end: sub rsp, 50 ; Create stack space for local variable an sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 146], rsi ; (SET) mov rax, qword [rbp - 146] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 call utils.unquote_str ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable asmv ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 178], rax ; (SET) mov si, word [rel parse.NTYPE_ASM] ; (SET_PRM_R) mov word [rbp - 180], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 170] ; initial struct addr move (SET_STR_R) mov qword [rbp - 196], rax ; (SET) mov rax, qword [rbp - 196] ; (SET) lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 188], rax ; (SET) mov rax, qword [rbp - 178] ; (SET) mov bx, word [rbp - 180] ; (SET) mov rcx, qword [rbp - 188] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 186], rsi ; (SET) mov rax, qword [rbp - 178] ; (SET) mov rbx, qword [rbp - 186] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 242], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 234] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 242] ; (SET) lea rsp, [rbp - 234] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 202] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 234] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 202] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 242], r12 ; (SET) mov rax, qword [rbp - 242] ; (SET) lea rsp, [rbp - 234] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 234] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct parse._ast_asm#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_struct#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_struct#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_struct#end jmp parse._ast_struct#0#wrap#end parse._ast_struct#0#wrap#0#if#end: parse._ast_struct#0#wrap#end: sub rsp, 50 ; Create stack space for local variable sct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_STRUCT] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_struct#1#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 123 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_struct#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_struct#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_struct#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_struct#end jmp parse._ast_struct#1#wrap#end parse._ast_struct#1#wrap#0#if#end: parse._ast_struct#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_decl sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_enum: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_enum#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_enum#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_enum#end jmp parse._ast_enum#0#wrap#end parse._ast_enum#0#wrap#0#if#end: parse._ast_enum#0#wrap#end: sub rsp, 50 ; Create stack space for local variable sct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_ENUM] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rdi, [r8] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 91 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_enum#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_type jmp parse._ast_enum#1#wrap#end parse._ast_enum#1#wrap#0#if#end: parse._ast_enum#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_enum#2#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 123 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_enum#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_enum#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_enum#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child jmp parse._ast_enum#end jmp parse._ast_enum#2#wrap#end parse._ast_enum#2#wrap#0#if#end: parse._ast_enum#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_list_enum sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_enum#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_decl: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable decl sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov si, word [rel parse.NTYPE_DECL] ; (SET_PRM_R) mov word [rbp - 116], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_decl#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 132], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 124], rax ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_type mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_decl#1#loop#end parse._ast_decl#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_decl#1#loop#0#wrap#0#if#end sub rsp, 50 ; Create stack space for local variable var sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov si, word [rel parse.NTYPE_ID] ; (SET_PRM_R) mov word [rbp - 166], si ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 174], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov bx, word [rbp - 166] ; (SET) mov rcx, qword [rbp - 174] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 164], r12 ; (SET) mov rsi, qword [rel parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Token.eq cmp al, 0 je parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 236], rsi ; (SET) mov qword [rbp - 244], r12 ; (SET) mov byte [rbp - 245], 0 ; (SET) mov rax, qword [rbp - 228] ; (SET) mov rbx, qword [rbp - 236] ; (SET) mov rcx, qword [rbp - 244] ; (SET) mov dl, byte [rbp - 245] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._ast_value jmp parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#end parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#0#if#end: parse._ast_decl#1#loop#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 172], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) mov rbx, qword [rbp - 172] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.add_child sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 157], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 165], r12 ; (SET) mov rsi, qword [rel parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 173], rsi ; (SET) mov rax, qword [rbp - 165] ; (SET) mov rbx, qword [rbp - 173] ; (SET) lea rsp, [rbp - 157] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 157] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#0#if#end mov r13b, 0 ; (SET) jmp parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#end parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#0#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 188] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 188] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 220] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 188] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 228], r12 ; (SET) mov rax, qword [rbp - 228] ; (SET) lea rsp, [rbp - 220] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 220] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#end parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#1#if#end: parse._ast_decl#1#loop#0#wrap#0#if#1#wrap#end: jmp parse._ast_decl#1#loop#0#wrap#end parse._ast_decl#1#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_decl#1#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err mov r13b, 0 ; (SET) jmp parse._ast_decl#1#loop#0#wrap#end parse._ast_decl#1#loop#0#wrap#1#if#end: parse._ast_decl#1#loop#0#wrap#end: parse._ast_decl#1#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_decl#1#loop#end jmp parse._ast_decl#1#loop#start parse._ast_decl#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_decl#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_top_block: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 32 ; Create stack space for local variable blf ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_top_block#0#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov rdi, [rbp - 96] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_top_block#0#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#0#loop#end parse._ast_top_block#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 98], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 106], rsi ; (SET) mov rax, qword [rbp - 98] ; (SET) mov rbx, qword [rbp - 106] ; (SET) lea rsp, [rbp - 90] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne parse._ast_top_block#0#loop#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 99], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 107], rsi ; (SET) mov rax, qword [rbp - 99] ; (SET) mov rbx, qword [rbp - 107] ; (SET) lea rsp, [rbp - 91] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 91] ; (SET) mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], al ; (SET) mov cl, byte [rbp - 89] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_top_block#0#loop#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#0#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r11 ; (SET) mov qword [rbp - 112], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_module jmp parse._ast_top_block#0#loop#1#wrap#end parse._ast_top_block#0#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 113], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) mov rcx, qword [rbp - 113] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#0#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r11 ; (SET) mov qword [rbp - 112], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_method jmp parse._ast_top_block#0#loop#1#wrap#end parse._ast_top_block#0#loop#1#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#0#loop#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r11 ; (SET) mov qword [rbp - 112], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_function jmp parse._ast_top_block#0#loop#1#wrap#end parse._ast_top_block#0#loop#1#wrap#2#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#1#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_top_block#0#loop#1#wrap#end parse._ast_top_block#0#loop#1#wrap#3#if#end: parse._ast_top_block#0#loop#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._advance_check mov r13b, al ; (SET) cmp r13b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je parse._ast_top_block#0#loop#3#wrap#0#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 92], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 100], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 108], rsi ; (SET) mov rax, qword [rbp - 100] ; (SET) mov rbx, qword [rbp - 108] ; (SET) lea rsp, [rbp - 92] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 92] ; (SET) mov r8b, byte [rbp - 91] ; (SET) mov bl, byte [rbp - 90] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], al ; (SET) mov cl, byte [rbp - 90] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 89], al ; Mov after compare lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 89], 0 parse._ast_top_block#0#loop#3#wrap#0#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r8b, 0 je parse._ast_top_block#0#loop#3#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 99], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#3#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 107], rsi ; (SET) mov rax, qword [rbp - 99] ; (SET) mov rbx, qword [rbp - 107] ; (SET) lea rsp, [rbp - 91] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 91] ; (SET) mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], al ; (SET) mov cl, byte [rbp - 89] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_top_block#0#loop#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#0#loop#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#0#loop#3#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_top_block#0#loop#3#wrap#end parse._ast_top_block#0#loop#3#wrap#0#if#end: parse._ast_top_block#0#loop#3#wrap#end: parse._ast_top_block#0#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_top_block#0#loop#4#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov rdi, [rbp - 96] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_top_block#0#loop#4#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#0#loop#end jmp parse._ast_top_block#0#loop#start parse._ast_top_block#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_block_pass sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 98], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 106], rsi ; (SET) mov rax, qword [rbp - 98] ; (SET) mov rbx, qword [rbp - 106] ; (SET) lea rsp, [rbp - 90] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_top_block#1#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 90], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 91], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 99], r12 ; (SET) mov rsi, qword [rel parse._ast_top_block#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 107], rsi ; (SET) mov rax, qword [rbp - 99] ; (SET) mov rbx, qword [rbp - 107] ; (SET) lea rsp, [rbp - 91] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 91] ; (SET) mov r8b, byte [rbp - 90] ; (SET) mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], al ; (SET) mov cl, byte [rbp - 89] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_top_block#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_top_block#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rel parse._ast_top_block#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_top_block#1#wrap#end parse._ast_top_block#1#wrap#0#if#end: sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r12 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_top_block#1#wrap#end parse._ast_top_block#1#wrap#1#if#end: parse._ast_top_block#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call parse._#Token.end parse._ast_top_block#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_module: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13w, word [rel parse.NTYPE_MODULE] ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_module#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_module#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_module#0#wrap#0#if#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_module#end jmp parse._ast_module#0#wrap#0#if#1#wrap#end parse._ast_module#0#wrap#0#if#1#wrap#0#if#end: parse._ast_module#0#wrap#0#if#1#wrap#end: mov r13w, word [rel parse.NTYPE_EXPORT] ; (SET) jmp parse._ast_module#0#wrap#end parse._ast_module#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rsi, qword [rel parse._ast_module#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov rcx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_module#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse._ast_module#0#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_module#0#wrap#1#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_module#0#wrap#end parse._ast_module#0#wrap#1#if#end: parse._ast_module#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rel parse._ast_module#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._ast_print_err jmp parse._ast_module#1#wrap#end parse._ast_module#1#wrap#0#if#end: parse._ast_module#1#wrap#end: sub rsp, 50 ; Create stack space for local variable nmod sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 114], rax ; (SET) mov word [rbp - 116], r13w ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 124], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov bx, word [rbp - 116] ; (SET) mov rcx, qword [rbp - 124] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r14b, 1 ; (SET) cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_module#2#loop#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_module#2#loop#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#end parse._ast_module#2#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_import jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_struct jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_enum jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r10 ; (SET) mov qword [rbp - 123], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 131], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) mov rcx, qword [rbp - 131] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_asm jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 123], rsi ; (SET) mov rax, qword [rbp - 115] ; (SET) mov rbx, qword [rbp - 123] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_top_block jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 115], rsi ; (SET) mov rdi, [rbp - 115] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 jne parse._ast_module#2#loop#1#wrap#5#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 116], rsi ; (SET) mov rdi, [rbp - 116] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 108], al ; Mov after compare lea rsp, [rbp - 108] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 108], 0 parse._ast_module#2#loop#1#wrap#5#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_module#2#loop#1#wrap#5#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 110], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 118], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#5#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 126], rsi ; (SET) mov rax, qword [rbp - 118] ; (SET) mov rbx, qword [rbp - 126] ; (SET) lea rsp, [rbp - 110] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 110] ; (SET) mov r8b, byte [rbp - 109] ; (SET) mov bl, byte [rbp - 108] ; (SET) lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], al ; (SET) mov cl, byte [rbp - 108] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 107], al ; Mov after compare lea rsp, [rbp - 107] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 107], 0 parse._ast_module#2#loop#1#wrap#5#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_module#2#loop#1#wrap#5#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 108], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 109], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 117], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#5#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 125], rsi ; (SET) mov rax, qword [rbp - 117] ; (SET) mov rbx, qword [rbp - 125] ; (SET) lea rsp, [rbp - 109] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 109] ; (SET) mov r8b, byte [rbp - 108] ; (SET) mov bl, byte [rbp - 107] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 107], al ; (SET) mov cl, byte [rbp - 107] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_module#2#loop#1#wrap#5#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov qword [rbp - 130], r12 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_decl jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#5#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel parse.TTYPE_DELIM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_module#2#loop#1#wrap#6#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rdi, [rdi] ; auto deref (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 59 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_module#2#loop#1#wrap#6#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#1#wrap#6#if#end mov r14b, 0 ; (SET) jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#6#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov qword [rbp - 122], r12 ; (SET) mov rsi, qword [rel parse._ast_module#2#loop#1#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) mov rcx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 138] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 170] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 138] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 178], r12 ; (SET) mov rax, qword [rbp - 178] ; (SET) lea rsp, [rbp - 170] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [r12] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 170] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_module#2#loop#1#wrap#end parse._ast_module#2#loop#1#wrap#7#if#end: parse._ast_module#2#loop#1#wrap#end: parse._ast_module#2#loop#rep: cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je parse._ast_module#2#loop#2#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov rdi, [rbp - 114] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_module#2#loop#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_module#2#loop#end jmp parse._ast_module#2#loop#start parse._ast_module#2#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 122], rsi ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call parse._#Node.add_child parse._ast_module#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._ast_file: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.open sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call parse.produce_first_token ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable first ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#end parse._ast_file#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 129], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 137], rsi ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 145], rsi ; (SET) mov rax, qword [rbp - 129] ; (SET) mov rbx, qword [rbp - 137] ; (SET) mov rcx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov qword [rbp - 136], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_import jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 129], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 137], rsi ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 145], rsi ; (SET) mov rax, qword [rbp - 129] ; (SET) mov rbx, qword [rbp - 137] ; (SET) mov rcx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov qword [rbp - 136], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_struct jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 129], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 137], rsi ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 145], rsi ; (SET) mov rax, qword [rbp - 129] ; (SET) mov rbx, qword [rbp - 137] ; (SET) mov rcx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov qword [rbp - 136], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_enum jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 129], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 137], rsi ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 145], rsi ; (SET) mov rax, qword [rbp - 129] ; (SET) mov rbx, qword [rbp - 137] ; (SET) mov rcx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) call parse._advance_check mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov qword [rbp - 136], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_asm jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 129], rax ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 137], rsi ; (SET) mov rax, qword [rbp - 129] ; (SET) mov rbx, qword [rbp - 137] ; (SET) lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov qword [rbp - 136], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_top_block jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_KEYTP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 121], al ; Mov after compare cmp byte byte [rbp - 121], 0 jne parse._ast_file#0#loop#0#wrap#5#if#2#bool#end sub rsp, 1 ; Create stack space for tmp variable mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_USRWD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 122], al ; Mov after compare cmp byte byte [rbp - 122], 0 parse._ast_file#0#loop#0#wrap#5#if#2#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) cmp r9b, 0 jne parse._ast_file#0#loop#0#wrap#5#if#1#bool#end sub rsp, 1 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 122], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 123], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 124], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 132], rax ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#5#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 140], rsi ; (SET) mov rax, qword [rbp - 132] ; (SET) mov rbx, qword [rbp - 140] ; (SET) lea rsp, [rbp - 124] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 124] ; (SET) mov r8b, byte [rbp - 123] ; (SET) mov bl, byte [rbp - 122] ; (SET) lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 122], al ; (SET) mov cl, byte [rbp - 122] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 121], al ; Mov after compare lea rsp, [rbp - 121] ; Free stack space (freeing tmp variables) cmp byte byte [rbp - 121], 0 parse._ast_file#0#loop#0#wrap#5#if#1#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) cmp r8b, 0 jne parse._ast_file#0#loop#0#wrap#5#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 122], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 123], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 131], rax ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#5#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 139], rsi ; (SET) mov rax, qword [rbp - 131] ; (SET) mov rbx, qword [rbp - 139] ; (SET) lea rsp, [rbp - 123] ; Free stack space (freeing tmp variables) call parse._#Token.eq mov r9b, byte [rbp - 123] ; (SET) mov r8b, byte [rbp - 122] ; (SET) mov bl, byte [rbp - 121] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 121], al ; (SET) mov cl, byte [rbp - 121] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) cmp r9b, 0 parse._ast_file#0#loop#0#wrap#5#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov qword [rbp - 136], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_decl jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#5#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rsi ; (SET) mov rsi, qword [rel parse._ast_file#0#loop#0#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._ast_print_err sub rsp, 32 ; Create stack space for tmp variable sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], r10 ; (SET) ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call parse.produce_next_token ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) sub rsp, 32 ; Create stack space for local variable tmp ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rax ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call parse._#Token.end ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Token] in bytes rep movsb ; move struct jmp parse._ast_file#0#loop#0#wrap#end parse._ast_file#0#loop#0#wrap#6#if#end: parse._ast_file#0#loop#0#wrap#end: parse._ast_file#0#loop#rep: mov rcx, qword [rbp - 120] ; (SET) cmp rcx, qword [rel parse.TTYPE_ERR] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._ast_file#0#loop#end jmp parse._ast_file#0#loop#start parse._ast_file#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call parse._#Token.end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#File.close parse._ast_file#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.generate_ast: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 50 ; Create stack space for local variable out sub rsp, 32 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 138] ; initial struct addr move (SET_STR_R) mov qword [rbp - 146], rax ; (SET) mov qword [rbp - 154], 1 ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 2 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 146], rax ; (SET) mov si, word [rel parse.NTYPE_EXPORT] ; (SET_PRM_R) mov word [rbp - 148], si ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 138] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 156], rax ; (SET) mov rax, qword [rbp - 146] ; (SET) mov bx, word [rbp - 148] ; (SET) mov rcx, qword [rbp - 156] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._#Node.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 146], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 154], rsi ; (SET) mov rax, qword [rbp - 146] ; (SET) mov rbx, qword [rbp - 154] ; (SET) lea rsp, [rbp - 138] ; Free stack space (freeing tmp variables) call parse._ast_file ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct jmp parse.generate_ast#end parse.generate_ast#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_node_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_MODULE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_EXPORT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_STRUCT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TYPE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#4#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#5#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#6#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#6#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_POST_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#7#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#7#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FUNCTION] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#8#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#8#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#8#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_METHOD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#9#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#9#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#9#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#10#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#10#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#10#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#11#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#11#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#11#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ELIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#12#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#12#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#12#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_SLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#13#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#13#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#13#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LITERAL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#14#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#14#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#14#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ENUM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#15#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#15#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#15#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DECL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#16#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#16#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#16#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#17#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#17#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#17#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#18#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#18#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#18#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_CAST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#19#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#19#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#19#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FLOW_CONTROL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#20#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#20#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#20#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_IF_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#21#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#21#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#21#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ELIF_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#22#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#22#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#22#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ELSE_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#23#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#23#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#23#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LOOP_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#24#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#24#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#24#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ASM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#25#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#25#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#25#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_EMPTY] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_node_type#0#wrap#26#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_type#0#wrap#26#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_node_type#0#wrap#end parse.print_node_type#0#wrap#26#if#end: parse.print_node_type#0#wrap#end: parse.print_node_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_node_head: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_head#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_node_type sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_head#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_node_head#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf parse.print_node_head#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_ast_rec: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, 0 ; (SET) cmp r12, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast_rec#0#loop#end parse.print_ast_rec#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_ast_rec#0#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf parse.print_ast_rec#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast_rec#0#loop#end jmp parse.print_ast_rec#0#loop#start parse.print_ast_rec#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_node_head mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast_rec#1#loop#end parse.print_ast_rec#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_ast_rec parse.print_ast_rec#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast_rec#1#loop#end jmp parse.print_ast_rec#1#loop#start parse.print_ast_rec#1#loop#end: mov r12, 0 ; (SET) cmp r12, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast_rec#2#loop#end parse.print_ast_rec#2#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_ast_rec#2#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf parse.print_ast_rec#2#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast_rec#2#loop#end jmp parse.print_ast_rec#2#loop#start parse.print_ast_rec#2#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_ast_rec#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf parse.print_ast_rec#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.print_ast: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_ast_rec sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse.verify_ast_integrity mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.print_ast#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_ast#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_ast#0#wrap#end parse.print_ast#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.print_ast#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp parse.print_ast#0#wrap#end parse.print_ast#0#wrap#1#if#end: parse.print_ast#0#wrap#end: parse.print_ast#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse.verify_ast_integrity: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.verify_ast_integrity#0#loop#end parse.verify_ast_integrity#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, r10 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.verify_ast_integrity#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.verify_ast_integrity#0#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_node_head sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.verify_ast_integrity#0#loop#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.verify_ast_integrity#0#loop#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_node_head sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.verify_ast_integrity#0#loop#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, r10 ; (SET) mov r14, r13 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.verify_ast_integrity#0#loop#0#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) mov r14, r13 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel parse.verify_ast_integrity#0#loop#0#wrap#0#if#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num ; STARTING RETURN mov al, 0 ; (SET) jmp parse.verify_ast_integrity#end jmp parse.verify_ast_integrity#0#loop#0#wrap#end parse.verify_ast_integrity#0#loop#0#wrap#0#if#end: parse.verify_ast_integrity#0#loop#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r12 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse.verify_ast_integrity mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.verify_ast_integrity#0#loop#1#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp parse.verify_ast_integrity#end jmp parse.verify_ast_integrity#0#loop#1#wrap#end parse.verify_ast_integrity#0#loop#1#wrap#0#if#end: parse.verify_ast_integrity#0#loop#1#wrap#end: parse.verify_ast_integrity#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse.verify_ast_integrity#0#loop#end jmp parse.verify_ast_integrity#0#loop#start parse.verify_ast_integrity#0#loop#end: ; STARTING RETURN mov al, 1 ; (SET) jmp parse.verify_ast_integrity#end parse.verify_ast_integrity#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Token.eq: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcmp mov al, al ; (SET) jmp parse._#Token.eq#end parse._#Token.eq#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Token.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete parse._#Token.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Node.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11w, bx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r12 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) mov word [rbx], r11w ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) sub rsp, 50 ; Create stack space for local variable n ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], rsi ; (SET) mov qword [rbp - 122], 50 ; (SET) mov rax, qword [rbp - 114] ; (SET) mov rbx, qword [rbp - 122] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) parse._#Node.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Node.eq: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r11 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.eq#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp parse._#Node.eq#end jmp parse._#Node.eq#0#wrap#end parse._#Node.eq#0#wrap#0#if#end: parse._#Node.eq#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp parse._#Node.eq#end parse._#Node.eq#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Node.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.end#0#loop#end parse._#Node.end#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse._#Node.end parse._#Node.end#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.end#0#loop#end jmp parse._#Node.end#0#loop#start parse._#Node.end#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end parse._#Node.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Node.update_children: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r10, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.update_children#0#loop#end parse._#Node.update_children#0#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) parse._#Node.update_children#0#loop#rep: mov rbx, r10 ; (SET) inc r10 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r10, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.update_children#0#loop#end jmp parse._#Node.update_children#0#loop#start parse._#Node.update_children#0#loop#end: parse._#Node.update_children#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end parse._#Node.add_child: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 42 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) mov r11, qword [rsi] ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) mov r12, qword [rsi] ; (SET) mov r13, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.add_child#0#loop#end parse._#Node.add_child#0#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call parse._#Node.update_children parse._#Node.add_child#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je parse._#Node.add_child#0#loop#end jmp parse._#Node.add_child#0#loop#start parse._#Node.add_child#0#loop#end: ; STARTING RETURN mov rax, r10 ; (SET) jmp parse._#Node.add_child#end parse._#Node.add_child#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._is_primitive: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.PRIMITIVE_1] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._is_primitive#0#wrap#0#if#end ; STARTING RETURN mov rax, 1 ; (SET) jmp compile._is_primitive#end jmp compile._is_primitive#0#wrap#end compile._is_primitive#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.PRIMITIVE_2] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._is_primitive#0#wrap#1#if#end ; STARTING RETURN mov rax, 2 ; (SET) jmp compile._is_primitive#end jmp compile._is_primitive#0#wrap#end compile._is_primitive#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.PRIMITIVE_4] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._is_primitive#0#wrap#2#if#end ; STARTING RETURN mov rax, 4 ; (SET) jmp compile._is_primitive#end jmp compile._is_primitive#0#wrap#end compile._is_primitive#0#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.PRIMITIVE_8] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._is_primitive#0#wrap#3#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile._is_primitive#end jmp compile._is_primitive#0#wrap#end compile._is_primitive#0#wrap#3#if#end: compile._is_primitive#0#wrap#end: ; STARTING RETURN mov rax, 0 ; (SET) jmp compile._is_primitive#end compile._is_primitive#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.is_primitive: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.is_primitive#0#wrap#0#if#end ; STARTING RETURN mov rax, 0 ; (SET) jmp compile.is_primitive#end jmp compile.is_primitive#0#wrap#end compile.is_primitive#0#wrap#0#if#end: compile.is_primitive#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.is_primitive#1#wrap#0#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile.is_primitive#end jmp compile.is_primitive#1#wrap#end compile.is_primitive#1#wrap#0#if#end: compile.is_primitive#1#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_POST_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.is_primitive#2#wrap#0#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile.is_primitive#end jmp compile.is_primitive#2#wrap#end compile.is_primitive#2#wrap#0#if#end: compile.is_primitive#2#wrap#end: mov rbx, 0 ; (SET) sub rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile.is_primitive#3#loop#end compile.is_primitive#3#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov cx, word [r9] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile.is_primitive#3#loop#0#wrap#0#if#end cmp r12, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile.is_primitive#3#loop#0#wrap#0#if#0#wrap#0#if#end mov r12, r13 ; (SET) jmp compile.is_primitive#3#loop#0#wrap#0#if#0#wrap#end compile.is_primitive#3#loop#0#wrap#0#if#0#wrap#0#if#end: ; STARTING RETURN mov rax, 0 ; (SET) jmp compile.is_primitive#end jmp compile.is_primitive#3#loop#0#wrap#0#if#0#wrap#end compile.is_primitive#3#loop#0#wrap#0#if#0#wrap#1#if#end: compile.is_primitive#3#loop#0#wrap#0#if#0#wrap#end: jmp compile.is_primitive#3#loop#0#wrap#end compile.is_primitive#3#loop#0#wrap#0#if#end: compile.is_primitive#3#loop#0#wrap#end: compile.is_primitive#3#loop#rep: mov r8, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile.is_primitive#3#loop#end jmp compile.is_primitive#3#loop#start compile.is_primitive#3#loop#end: cmp r12, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile.is_primitive#4#wrap#0#if#end ; STARTING RETURN mov rax, 0 ; (SET) jmp compile.is_primitive#end jmp compile.is_primitive#4#wrap#end compile.is_primitive#4#wrap#0#if#end: compile.is_primitive#4#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r11, rax ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._is_primitive mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov rax, rax ; (SET) jmp compile.is_primitive#end compile.is_primitive#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._print_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r12b, 0 ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._print_type#0#loop#end compile._print_type#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._print_type#0#loop#0#wrap#0#if#end cmp r12b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._print_type#0#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._print_type#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._print_type#0#loop#0#wrap#0#if#0#wrap#end compile._print_type#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._print_type#0#loop#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r12b, 1 ; (SET) jmp compile._print_type#0#loop#0#wrap#end compile._print_type#0#loop#0#wrap#0#if#end: jmp compile._print_type#end jmp compile._print_type#0#loop#0#wrap#end compile._print_type#0#loop#0#wrap#1#if#end: compile._print_type#0#loop#0#wrap#end: compile._print_type#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._print_type#0#loop#end jmp compile._print_type#0#loop#start compile._print_type#0#loop#end: compile._print_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._type_is_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._type_is_ptr#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._type_is_ptr#end jmp compile._type_is_ptr#0#wrap#end compile._type_is_ptr#0#wrap#0#if#end: compile._type_is_ptr#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._type_is_ptr#1#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._type_is_ptr#end jmp compile._type_is_ptr#1#wrap#end compile._type_is_ptr#1#wrap#0#if#end: compile._type_is_ptr#1#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_POST_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._type_is_ptr#2#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._type_is_ptr#end jmp compile._type_is_ptr#2#wrap#end compile._type_is_ptr#2#wrap#0#if#end: compile._type_is_ptr#2#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp compile._type_is_ptr#end compile._type_is_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.reg_string: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 1 ; Create stack space for local variable add cmp r10, 9 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#end cmp r11, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#0#wrap#0#if#end mov byte [rbp - 89], 101 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#0#if#0#wrap#end compile.reg_string#0#wrap#0#if#0#wrap#0#if#end: cmp r11, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#0#wrap#1#if#end mov byte [rbp - 89], 114 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#0#if#0#wrap#end compile.reg_string#0#wrap#0#if#0#wrap#1#if#end: compile.reg_string#0#wrap#0#if#0#wrap#end: mov byte [rbp - 89], 97 ; (SET) cmp r10, 5 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#1#wrap#0#if#end mov bl, byte [rbp - 89] ; (SET) add bl, r10b ; (STD_OP) sub bl, 1 ; (STD_OP) mov byte [rbp - 89], bl ; (SET) jmp compile.reg_string#0#wrap#0#if#1#wrap#end compile.reg_string#0#wrap#0#if#1#wrap#0#if#end: cmp r10, 5 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile.reg_string#0#wrap#0#if#1#wrap#1#if#0#bool#end cmp r10, 7 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile.reg_string#0#wrap#0#if#1#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#1#wrap#1#if#end mov byte [rbp - 89], 115 ; (SET) jmp compile.reg_string#0#wrap#0#if#1#wrap#end compile.reg_string#0#wrap#0#if#1#wrap#1#if#end: cmp r10, 6 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#1#wrap#2#if#end mov byte [rbp - 89], 100 ; (SET) jmp compile.reg_string#0#wrap#0#if#1#wrap#end compile.reg_string#0#wrap#0#if#1#wrap#2#if#end: cmp r10, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#1#wrap#3#if#end mov byte [rbp - 89], 98 ; (SET) jmp compile.reg_string#0#wrap#0#if#1#wrap#end compile.reg_string#0#wrap#0#if#1#wrap#3#if#end: compile.reg_string#0#wrap#0#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push cmp r10, 5 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile.reg_string#0#wrap#0#if#2#wrap#0#if#0#bool#end cmp r10, 6 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile.reg_string#0#wrap#0#if#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#2#wrap#0#if#end mov byte [rbp - 89], 105 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#0#if#2#wrap#end compile.reg_string#0#wrap#0#if#2#wrap#0#if#end: cmp r10, 7 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile.reg_string#0#wrap#0#if#2#wrap#1#if#0#bool#end cmp r10, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile.reg_string#0#wrap#0#if#2#wrap#1#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#2#wrap#1#if#end mov byte [rbp - 89], 112 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#0#if#2#wrap#end compile.reg_string#0#wrap#0#if#2#wrap#1#if#end: cmp r11, 1 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#2#wrap#2#if#end mov byte [rbp - 89], 120 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#0#if#2#wrap#end compile.reg_string#0#wrap#0#if#2#wrap#2#if#end: compile.reg_string#0#wrap#0#if#2#wrap#end: cmp r11, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#0#if#3#wrap#0#if#end mov byte [rbp - 89], 108 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#0#if#3#wrap#end compile.reg_string#0#wrap#0#if#3#wrap#0#if#end: compile.reg_string#0#wrap#0#if#3#wrap#end: jmp compile.reg_string#0#wrap#end compile.reg_string#0#wrap#0#if#end: cmp r10, 17 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#1#if#end mov byte [rbp - 89], 114 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push sub rsp, 8 ; Create stack space for tmp variable mov rbx, r10 ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 97], rbx ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r12 ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call _delete cmp r11, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#1#if#0#wrap#0#if#end mov byte [rbp - 89], 98 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#1#if#0#wrap#end compile.reg_string#0#wrap#1#if#0#wrap#0#if#end: cmp r11, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#1#if#0#wrap#1#if#end mov byte [rbp - 89], 119 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#1#if#0#wrap#end compile.reg_string#0#wrap#1#if#0#wrap#1#if#end: cmp r11, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#1#if#0#wrap#2#if#end mov byte [rbp - 89], 100 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) lea rsi, byte [rbp - 89] ; (TAKE_PTR) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile.reg_string#0#wrap#1#if#0#wrap#end compile.reg_string#0#wrap#1#if#0#wrap#2#if#end: compile.reg_string#0#wrap#1#if#0#wrap#end: jmp compile.reg_string#0#wrap#end compile.reg_string#0#wrap#1#if#end: cmp r10, 33 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile.reg_string#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) mov rsi, qword [rel compile.reg_string#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 105], rsi ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov rbx, r10 ; (SET) sub rbx, 17 ; (STD_OP) mov qword [rbp - 97], rbx ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) mov qword [rbp - 105], r12 ; (SET) mov rax, qword [rbp - 97] ; (SET) mov rbx, qword [rbp - 105] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r12 ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call _delete jmp compile.reg_string#0#wrap#end compile.reg_string#0#wrap#2#if#end: compile.reg_string#0#wrap#end: ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 97], rax ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile.reg_string#end compile.reg_string#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.var_test_mov: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_mov#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r12, rax ; (SET) sub rsp, 88 ; Create stack space for local variable a sub rsp, 88 ; Create stack space for local variable b sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile.var_test_mov#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 96], 1 ; (SET) mov qword [rbp - 184], 2 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile.var_test_mov#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov rbx, qword [rbp - 176] ; (SET) sub rbx, 56 ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile.var_test_mov#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile.var_test_mov#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 96] ; (SET) sub rbx, 2 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov qword [rbp - 88], 56 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile.var_test_mov#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.end compile.var_test_mov#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.var_test_movsx: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movsx#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movsx#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movsx#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r14, rax ; (SET) sub rsp, 88 ; Create stack space for local variable a sub rsp, 88 ; Create stack space for local variable b sub rsp, 88 ; Create stack space for local variable c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r12 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r14 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._init mov qword [rbp - 96], 1 ; (SET) mov qword [rbp - 184], 2 ; (SET) mov qword [rbp - 272], 3 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov qword [rbp - 176], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set mov qword [rbp - 184], 2 ; (SET) mov qword [rbp - 176], 0 ; (SET) mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#10#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) mov rbx, qword [rbp - 96] ; (SET) sub rbx, 2 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov qword [rbp - 88], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#11#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set mov qword [rbp - 96], 1 ; (SET) mov qword [rbp - 88], 0 ; (SET) mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#12#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov qword [rbp - 176], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#13#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 184], 2 ; (SET) mov qword [rbp - 176], 0 ; (SET) mov rbx, qword [rbp - 96] ; (SET) sub rbx, 2 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov qword [rbp - 88], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#14#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov qword [rbp - 176], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movsx#15#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end compile.var_test_movsx#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.var_test_movzx: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movzx#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movzx#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movzx#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r14, rax ; (SET) sub rsp, 88 ; Create stack space for local variable a sub rsp, 88 ; Create stack space for local variable b sub rsp, 88 ; Create stack space for local variable c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r12 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r14 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._init mov qword [rbp - 96], 1 ; (SET) mov qword [rbp - 184], 2 ; (SET) mov qword [rbp - 272], 3 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov qword [rbp - 176], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set mov qword [rbp - 184], 2 ; (SET) mov qword [rbp - 176], 0 ; (SET) mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#10#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) mov rbx, qword [rbp - 96] ; (SET) sub rbx, 2 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov qword [rbp - 88], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#11#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 272] ; (SET) sub rbx, 4 ; (STD_OP) mov qword [rbp - 272], rbx ; (SET) mov qword [rbp - 264], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set mov qword [rbp - 96], 1 ; (SET) mov qword [rbp - 88], 0 ; (SET) mov qword [rbp - 272], 3 ; (SET) mov qword [rbp - 264], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#12#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov qword [rbp - 176], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#13#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 184], 2 ; (SET) mov qword [rbp - 176], 0 ; (SET) mov rbx, qword [rbp - 96] ; (SET) sub rbx, 2 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov qword [rbp - 88], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#14#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 184] ; (SET) sub rbx, 3 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) mov qword [rbp - 176], 4 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov rsi, qword [rel compile.var_test_movzx#15#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end compile.var_test_movzx#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.var_test_movref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movref#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile.var_test_movref#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r13, rax ; (SET) compile.var_test_movref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._gen_test_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [rel compile._gen_test_struct#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._create_methods mov r11, rax ; (SET) sub rsp, 88 ; Create stack space for local variable t sub rsp, 64 ; Create stack space for local variable s mov qword [rbp - 160], 9 ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 192] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov qword [rbp - 224], 88 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._gen_test_struct#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 216], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 208], rax ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._gen_test_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.var_tests: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 145 ; Create stack space for local variable mod sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rax ; (SET) mov rax, qword [rbp - 209] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile._#Module._init sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.var_tests#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 209], rsi ; (SET) mov rax, qword [rbp - 209] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 201], rax ; (SET) mov byte [rbp - 65], 1 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rsi ; (SET) mov rax, qword [rbp - 209] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile._gen_prims sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rsi ; (SET) mov rax, qword [rbp - 209] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile._gen_test_struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rsi ; (SET) mov qword [rbp - 217], r10 ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile.var_test_mov sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rsi ; (SET) mov qword [rbp - 217], r10 ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile.var_test_movsx sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rsi ; (SET) mov qword [rbp - 217], r10 ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile.var_test_movzx sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rsi ; (SET) mov qword [rbp - 217], r10 ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile.var_test_movref sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rax ; (SET) mov rax, qword [rbp - 209] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile._#Module.end compile.var_tests#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._indent: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) cmp r11, r10 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._indent#0#loop#end compile._indent#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._indent#0#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf compile._indent#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) cmp r11, r10 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._indent#0#loop#end jmp compile._indent#0#loop#start compile._indent#0#loop#end: compile._indent#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.parse_tree: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 50 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 50 call parse.generate_ast ; putting struct address into register lea rdi, [rbp - 106] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct add rsp, 50 sub rsp, 50 ; Create stack space for local variable ast ; putting struct address into register lea rdi, [rbp - 156] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.update_children sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rsi ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse.print_ast sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.end compile.parse_tree#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.mod_tree: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 50 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 50 call parse.generate_ast ; putting struct address into register lea rdi, [rbp - 106] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct add rsp, 50 sub rsp, 50 ; Create stack space for local variable ast ; putting struct address into register lea rdi, [rbp - 156] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.update_children sub rsp, 96 ; Create stack space for local variable buffer sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 260], rax ; (SET) mov rax, qword [rbp - 260] ; (SET) lea rsp, [rbp - 252] ; Free stack space (freeing tmp variables) call compile._#CompBuf.init sub rsp, 145 ; Create stack space for local variable mod sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 413], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 421], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) mov rcx, qword [rbp - 421] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._gen_prims sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.update_children sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 413], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.collect_methods sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 413], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.compile sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.print sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#CompBuf.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call parse._#Node.end compile.mod_tree#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile.generate: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 50 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 114], r10 ; (SET) mov rax, qword [rbp - 114] ; (SET) lea rsp, [rbp - 106] ; Free stack space (freeing tmp variables) sub rsp, 50 call parse.generate_ast ; putting struct address into register lea rdi, [rbp - 106] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct add rsp, 50 sub rsp, 50 ; Create stack space for local variable ast ; putting struct address into register lea rdi, [rbp - 156] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov rcx, 50 ; size of struct [Node] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 164], rax ; (SET) mov rax, qword [rbp - 164] ; (SET) lea rsp, [rbp - 156] ; Free stack space (freeing tmp variables) call parse._#Node.update_children sub rsp, 96 ; Create stack space for local variable buffer sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 260], rax ; (SET) mov rax, qword [rbp - 260] ; (SET) lea rsp, [rbp - 252] ; Free stack space (freeing tmp variables) call compile._#CompBuf.init sub rsp, 145 ; Create stack space for local variable mod sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 413], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 421], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) mov rcx, qword [rbp - 421] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._gen_prims sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.update_children sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 413], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.collect_methods sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 413], rsi ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.compile sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 405], r11 ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call utils._#File.create sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov qword [rbp - 413], r11 ; (SET) mov rax, qword [rbp - 405] ; (SET) mov rbx, qword [rbp - 413] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#CompBuf.write_to sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 405], r11 ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call utils._#File.close sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 397] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#Module.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 252] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call compile._#CompBuf.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 156] ; initial struct addr move (SET_STR_R) mov qword [rbp - 405], rax ; (SET) mov rax, qword [rbp - 405] ; (SET) lea rsp, [rbp - 397] ; Free stack space (freeing tmp variables) call parse._#Node.end compile.generate#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._gen_prim: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._create_methods mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for local variable t sub rsp, 64 ; Create stack space for local variable s mov qword [rbp - 160], r11 ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 192] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov qword [rbp - 224], 88 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r12 ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 208], rax ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._gen_prim#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._gen_prims: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rsi, qword [rel compile._gen_prims#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rsi, qword [rel compile._gen_prims#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rsi, qword [rel compile._gen_prims#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 2 ; (SET) mov rsi, qword [rel compile._gen_prims#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 2 ; (SET) mov rsi, qword [rel compile._gen_prims#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 4 ; (SET) mov rsi, qword [rel compile._gen_prims#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 4 ; (SET) mov rsi, qword [rel compile._gen_prims#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 4 ; (SET) mov rsi, qword [rel compile._gen_prims#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rsi, qword [rel compile._gen_prims#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rsi, qword [rel compile._gen_prims#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rsi, qword [rel compile._gen_prims#10#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rsi, qword [rel compile._gen_prims#11#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rsi, qword [rel compile._gen_prims#12#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rsi, qword [rel compile._gen_prims#13#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rsi, qword [rel compile._gen_prims#14#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._gen_prim compile._gen_prims#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._recursive_mod_name: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._recursive_mod_name#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._recursive_mod_name ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._recursive_mod_name#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov byte [rbp - 65], 46 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char jmp compile._recursive_mod_name#0#wrap#0#if#0#wrap#end compile._recursive_mod_name#0#wrap#0#if#0#wrap#0#if#end: compile._recursive_mod_name#0#wrap#0#if#0#wrap#end: jmp compile._recursive_mod_name#0#wrap#end compile._recursive_mod_name#0#wrap#0#if#end: compile._recursive_mod_name#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr compile._recursive_mod_name#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._recursive_scope_name: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._recursive_scope_name#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._recursive_scope_name#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._recursive_mod_name ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._recursive_scope_name#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov byte [rbp - 65], 46 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char jmp compile._recursive_scope_name#0#wrap#0#if#0#wrap#0#if#0#wrap#end compile._recursive_scope_name#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: compile._recursive_scope_name#0#wrap#0#if#0#wrap#0#if#0#wrap#end: jmp compile._recursive_scope_name#0#wrap#0#if#0#wrap#end compile._recursive_scope_name#0#wrap#0#if#0#wrap#0#if#end: compile._recursive_scope_name#0#wrap#0#if#0#wrap#end: jmp compile._recursive_scope_name#0#wrap#end compile._recursive_scope_name#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._recursive_scope_name jmp compile._recursive_scope_name#0#wrap#end compile._recursive_scope_name#0#wrap#1#if#end: compile._recursive_scope_name#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr compile._recursive_scope_name#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.init compile._#CompBuf.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.add_h: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr compile._#CompBuf.add_h#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.add_d: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr compile._#CompBuf.add_d#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.add_c: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr compile._#CompBuf.add_c#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.write_to: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#CompBuf.write_to#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 72], rax ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#CompBuf.write_to#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 72], rax ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#CompBuf.write_to#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 72], rax ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#File.write_cstr compile._#CompBuf.write_to#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#CompBuf.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#CompBuf.append: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_h ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c compile._#CompBuf.append#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.strcpy mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 88 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.init compile._#Struct.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct._print: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._print#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._print#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._print#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._print#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._print#4#loop#end compile._#Struct._print#4#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rbx, r11 ; (SET) add rbx, 2 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print compile._#Struct._print#4#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._print#4#loop#end jmp compile._#Struct._print#4#loop#start compile._#Struct._print#4#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._print#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf compile._#Struct._print#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct.add_member: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 88 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._resolve_type mov qword [rbp - 88], r13 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._#Struct.add_member#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct.get_member: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, qword [rel NULL] ; (SET) mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct.get_member#0#loop#end compile._#Struct.get_member#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r11 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct.get_member#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Struct.get_member#end jmp compile._#Struct.get_member#0#loop#0#wrap#end compile._#Struct.get_member#0#loop#0#wrap#0#if#end: compile._#Struct.get_member#0#loop#0#wrap#end: compile._#Struct.get_member#0#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct.get_member#0#loop#end jmp compile._#Struct.get_member#0#loop#start compile._#Struct.get_member#0#loop#end: ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Struct.get_member#end compile._#Struct.get_member#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct._dlist: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._dlist#0#loop#end compile._#Struct._dlist#0#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._dlist#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Struct._dlist#end jmp compile._#Struct._dlist#0#loop#0#wrap#end compile._#Struct._dlist#0#loop#0#wrap#0#if#end: compile._#Struct._dlist#0#loop#0#wrap#end: compile._#Struct._dlist#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._dlist#0#loop#end jmp compile._#Struct._dlist#0#loop#start compile._#Struct._dlist#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Struct._dlist#end compile._#Struct._dlist#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct._compute_size: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#0#wrap#0#if#end jmp compile._#Struct._compute_size#end jmp compile._#Struct._compute_size#0#wrap#end compile._#Struct._compute_size#0#wrap#0#if#end: compile._#Struct._compute_size#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) sub r8, 1 ; (STD_OP) mov qword [rbx], r8 ; (SET) mov r11, 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Struct._dlist mov r12, rax ; (SET) mov r13, qword [rel NULL] ; (SET) mov r14, qword [rel NULL] ; (SET) mov r15, 0 ; (SET) sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 64], 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 64] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#1#loop#end compile._#Struct._compute_size#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TYPE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#1#loop#0#wrap#0#if#end mov r13, r14 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Struct._compute_type_size mov r15, rax ; (SET) cmp r15, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#1#loop#0#wrap#0#if#0#wrap#0#if#end jmp compile._#Struct._compute_size#end jmp compile._#Struct._compute_size#1#loop#0#wrap#0#if#0#wrap#end compile._#Struct._compute_size#1#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Struct._compute_size#1#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Struct._compute_size#1#loop#0#wrap#end compile._#Struct._compute_size#1#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#1#loop#0#wrap#1#if#end cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Struct._compute_size#end jmp compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#end compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#0#if#end: compile._#Struct._compute_size#1#loop#0#wrap#1#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov qword [rbp - 88], r14 ; (SET) mov qword [rbp - 96], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) mov rdx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Struct.add_member mov rbx, r11 ; (SET) add rbx, r15 ; (STD_OP) mov r11, rbx ; (SET) jmp compile._#Struct._compute_size#1#loop#0#wrap#end compile._#Struct._compute_size#1#loop#0#wrap#1#if#end: compile._#Struct._compute_size#1#loop#0#wrap#end: compile._#Struct._compute_size#1#loop#rep: mov rbx, qword [rbp - 64] ; (SET) inc qword qword [rbp - 64] ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 64] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_size#1#loop#end jmp compile._#Struct._compute_size#1#loop#start compile._#Struct._compute_size#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) compile._#Struct._compute_size#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct._compute_type_size: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Struct._find_type mov r12, rax ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_type_size#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_type_size#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._print_type sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_type_size#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_type_size#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, 0 ; (SET) jmp compile._#Struct._compute_type_size#end jmp compile._#Struct._compute_type_size#0#wrap#end compile._#Struct._compute_type_size#0#wrap#0#if#end: compile._#Struct._compute_type_size#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._type_is_ptr mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_type_size#1#wrap#0#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile._#Struct._compute_type_size#end jmp compile._#Struct._compute_type_size#1#wrap#end compile._#Struct._compute_type_size#1#wrap#0#if#end: compile._#Struct._compute_type_size#1#wrap#end: cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Struct._compute_type_size#2#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Struct._compute_type_size#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_type_size#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Struct._compute_size jmp compile._#Struct._compute_type_size#2#wrap#end compile._#Struct._compute_type_size#2#wrap#0#if#end: compile._#Struct._compute_type_size#2#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._compute_type_size#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_type_size#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_type_size#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Struct._compute_type_size#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, 0 ; (SET) jmp compile._#Struct._compute_type_size#end jmp compile._#Struct._compute_type_size#3#wrap#end compile._#Struct._compute_type_size#3#wrap#0#if#end: compile._#Struct._compute_type_size#3#wrap#end: ; STARTING RETURN ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp compile._#Struct._compute_type_size#end compile._#Struct._compute_type_size#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct._find_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 32 ; Create stack space for local variable sv sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 8 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for local variable str mov r13b, 0 ; (SET) mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._find_type#0#loop#end compile._#Struct._find_type#0#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], rsi ; (SET) mov qword [rbp - 112], r14 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._find_type#0#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) lea rsi, qword [rbp - 96] ; (TAKE_PTR) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push mov r13b, 1 ; (SET) jmp compile._#Struct._find_type#0#loop#0#wrap#end compile._#Struct._find_type#0#loop#0#wrap#0#if#end: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._find_type#0#loop#0#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) jmp compile._#Struct._find_type#0#loop#0#wrap#end compile._#Struct._find_type#0#loop#0#wrap#1#if#end: compile._#Struct._find_type#0#loop#0#wrap#end: compile._#Struct._find_type#0#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct._find_type#0#loop#end jmp compile._#Struct._find_type#0#loop#start compile._#Struct._find_type#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rel compile.SEARCH_STRUCT] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 120], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) mov rcx, qword [rbp - 120] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call compile._#Module.find mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; STARTING RETURN mov rax, r14 ; (SET) jmp compile._#Struct._find_type#end compile._#Struct._find_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Struct.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct.end#0#loop#end compile._#Struct.end#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Struct.end#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Struct.end#0#loop#end jmp compile._#Struct.end#0#loop#start compile._#Struct.end#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Struct.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._init#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.strcpy mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 4 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) compile._#Var._init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.strcpy mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 4 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r12 ; (SET) compile._#Var.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.copy: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.shallow_copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.copy#0#loop#end compile._#Var.copy#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], rsi ; (SET) mov qword [rbp - 248], r11 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 216] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._#Var.copy#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.copy#0#loop#end jmp compile._#Var.copy#0#loop#start compile._#Var.copy#0#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.copy#end compile._#Var.copy#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.shallow_copy: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.shallow_copy#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) jmp compile._#Var.shallow_copy#0#wrap#end compile._#Var.shallow_copy#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 144] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 144], rax ; (SET) jmp compile._#Var.shallow_copy#0#wrap#end compile._#Var.shallow_copy#0#wrap#1#if#end: compile._#Var.shallow_copy#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.shallow_copy#end compile._#Var.shallow_copy#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.top_ptrc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.top_ptrc#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Var.top_ptrc#end jmp compile._#Var.top_ptrc#0#wrap#end compile._#Var.top_ptrc#0#wrap#0#if#end: compile._#Var.top_ptrc#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Var.top_ptrc#end compile._#Var.top_ptrc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_ptrc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12d, ecx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_ptrc#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.is_ptrc#end jmp compile._#Var.is_ptrc#0#wrap#end compile._#Var.is_ptrc#0#wrap#0#if#end: compile._#Var.is_ptrc#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, r11 ; (STD_OP) mov r11, rbx ; (SET) mov rbx, r11 ; (SET) sub rbx, 1 ; (STD_OP) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; STARTING RETURN mov ecx, dword [r13] ; (SET) cmp ecx, r12d mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.is_ptrc#end compile._#Var.is_ptrc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.strip_refs: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], 0 ; (SET) mov dword [rbp - 77], 0 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov ecx, dword [rbp - 77] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.strip_refs#0#loop#end compile._#Var.strip_refs#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop compile._#Var.strip_refs#0#loop#rep: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], 0 ; (SET) mov dword [rbp - 77], 0 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov ecx, dword [rbp - 77] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.strip_refs#0#loop#end jmp compile._#Var.strip_refs#0#loop#start compile._#Var.strip_refs#0#loop#end: compile._#Var.strip_refs#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov dword [rbp - 76], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov ecx, dword [rbp - 76] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov al, al ; (SET) jmp compile._#Var.is_ref#end compile._#Var.is_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.double_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.double_ref#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.double_ref#end jmp compile._#Var.double_ref#0#wrap#end compile._#Var.double_ref#0#wrap#0#if#end: compile._#Var.double_ref#0#wrap#end: ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 1 ; (SET) mov dword [rbp - 76], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov ecx, dword [rbp - 76] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov al, al ; (SET) jmp compile._#Var.double_ref#end compile._#Var.double_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.max_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.max_ref#0#loop#end compile._#Var.max_ref#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov dword [rbp - 77], 0 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov ecx, dword [rbp - 77] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.max_ref#0#loop#0#wrap#0#if#end mov rbx, r11 ; (SET) inc r11 ; (UNARY) jmp compile._#Var.max_ref#0#loop#0#wrap#end compile._#Var.max_ref#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) jmp compile._#Var.max_ref#0#loop#0#wrap#end compile._#Var.max_ref#0#loop#0#wrap#1#if#end: compile._#Var.max_ref#0#loop#0#wrap#end: compile._#Var.max_ref#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.max_ref#0#loop#end jmp compile._#Var.max_ref#0#loop#start compile._#Var.max_ref#0#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Var.max_ref#end compile._#Var.max_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_signed: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._is_primitive mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8, rax ; (SET) cmp r8, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_signed#0#wrap#0#if#end ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 105 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.is_signed#end jmp compile._#Var.is_signed#0#wrap#end compile._#Var.is_signed#0#wrap#0#if#end: compile._#Var.is_signed#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.is_signed#end compile._#Var.is_signed#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.top_ptrc mov r11, rax ; (SET) cmp r11, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_ptr#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.is_ptr#end jmp compile._#Var.is_ptr#0#wrap#end compile._#Var.is_ptr#0#wrap#0#if#end: compile._#Var.is_ptr#0#wrap#end: ; STARTING RETURN mov ecx, dword [r11] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.is_ptr#end compile._#Var.is_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.first_non_ref_idx: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) mov rbx, r11 ; (SET) sub rbx, 1 ; (STD_OP) mov r11, rbx ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.first_non_ref_idx#0#loop#end compile._#Var.first_non_ref_idx#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov dword [rbp - 77], 0 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov ecx, dword [rbp - 77] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.first_non_ref_idx#0#loop#0#wrap#0#if#end mov r11, r12 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) jmp compile._#Var.first_non_ref_idx#0#loop#0#wrap#end compile._#Var.first_non_ref_idx#0#loop#0#wrap#0#if#end: compile._#Var.first_non_ref_idx#0#loop#0#wrap#end: compile._#Var.first_non_ref_idx#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.first_non_ref_idx#0#loop#end jmp compile._#Var.first_non_ref_idx#0#loop#start compile._#Var.first_non_ref_idx#0#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Var.first_non_ref_idx#end compile._#Var.first_non_ref_idx#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.first_non_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref_idx mov r11, rax ; (SET) cmp r11, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.first_non_ref#0#wrap#0#if#end ; STARTING RETURN mov eax, 0 ; (SET) jmp compile._#Var.first_non_ref#end jmp compile._#Var.first_non_ref#0#wrap#end compile._#Var.first_non_ref#0#wrap#0#if#end: compile._#Var.first_non_ref#0#wrap#end: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, r11 ; (STD_OP) mov r12, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r13, rax ; (SET) ; STARTING RETURN mov eax, dword [r13] ; (SET) jmp compile._#Var.first_non_ref#end compile._#Var.first_non_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_arr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.top_ptrc mov r11, rax ; (SET) cmp r11, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_arr#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.is_arr#end jmp compile._#Var.is_arr#0#wrap#end compile._#Var.is_arr#0#wrap#0#if#end: compile._#Var.is_arr#0#wrap#end: ; STARTING RETURN mov ecx, dword [r11] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.is_arr#end compile._#Var.is_arr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.regable: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.regable#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Var.regable#end jmp compile._#Var.regable#0#wrap#end compile._#Var.regable#0#wrap#0#if#end: compile._#Var.regable#0#wrap#end: ; STARTING RETURN sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._is_primitive mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8, rax ; (SET) cmp r8, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.regable#end compile._#Var.regable#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_struct#0#loop#end compile._#Var.is_struct#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) mov ecx, dword [r11] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_struct#0#loop#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.is_struct#end jmp compile._#Var.is_struct#0#loop#0#wrap#end compile._#Var.is_struct#0#loop#0#wrap#0#if#end: compile._#Var.is_struct#0#loop#0#wrap#end: compile._#Var.is_struct#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_struct#0#loop#end jmp compile._#Var.is_struct#0#loop#start compile._#Var.is_struct#0#loop#end: ; STARTING RETURN sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._is_primitive mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8, rax ; (SET) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.is_struct#end compile._#Var.is_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.is_bool: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_bool#0#loop#end compile._#Var.is_bool#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) mov ecx, dword [r11] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_bool#0#loop#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.is_bool#end jmp compile._#Var.is_bool#0#loop#0#wrap#end compile._#Var.is_bool#0#loop#0#wrap#0#if#end: compile._#Var.is_bool#0#loop#0#wrap#end: compile._#Var.is_bool#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.is_bool#0#loop#end jmp compile._#Var.is_bool#0#loop#start compile._#Var.is_bool#0#loop#end: ; STARTING RETURN sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Var.is_bool#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var.is_bool#end compile._#Var.is_bool#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._arr_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 4 ; Create stack space for local variable ptr mov dword [rbp - 60], 1 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._arr_ptr#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], rsi ; (SET) mov qword [rbp - 76], 0 ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 68], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call utils.cstr_to_int mov dword [rbp - 60], eax ; (SET) mov ecx, dword [rbp - 60] ; (SET) cmp ecx, 2 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._arr_ptr#0#wrap#0#if#0#wrap#0#if#end jmp compile._#Var._arr_ptr#end jmp compile._#Var._arr_ptr#0#wrap#0#if#0#wrap#end compile._#Var._arr_ptr#0#wrap#0#if#0#wrap#0#if#end: compile._#Var._arr_ptr#0#wrap#0#if#0#wrap#end: jmp compile._#Var._arr_ptr#0#wrap#end compile._#Var._arr_ptr#0#wrap#0#if#end: compile._#Var._arr_ptr#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], rsi ; (SET) lea rsi, dword [rbp - 60] ; (TAKE_PTR) mov qword [rbp - 76], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._#Var._arr_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.actual_size: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.actual_size#0#wrap#0#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile._#Var.actual_size#end jmp compile._#Var.actual_size#0#wrap#end compile._#Var.actual_size#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.actual_size#0#wrap#1#if#end ; STARTING RETURN mov rax, 0 ; (SET) jmp compile._#Var.actual_size#end jmp compile._#Var.actual_size#0#wrap#end compile._#Var.actual_size#0#wrap#1#if#end: compile._#Var.actual_size#0#wrap#end: ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp compile._#Var.actual_size#end compile._#Var.actual_size#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.type_size: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.type_size#0#loop#end compile._#Var.type_size#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) mov ecx, dword [r12] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.type_size#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile._#Var.type_size#end jmp compile._#Var.type_size#0#loop#0#wrap#end compile._#Var.type_size#0#loop#0#wrap#0#if#end: compile._#Var.type_size#0#loop#0#wrap#end: compile._#Var.type_size#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.type_size#0#loop#end jmp compile._#Var.type_size#0#loop#start compile._#Var.type_size#0#loop#end: ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp compile._#Var.type_size#end compile._#Var.type_size#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.find_method: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.find_method#0#loop#end compile._#Var.find_method#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) mov ecx, dword [r12] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.find_method#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.find_method#0#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.find_method#0#loop#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.find_method#0#loop#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print ; STARTING RETURN mov rax, 0 ; (SET) jmp compile._#Var.find_method#end jmp compile._#Var.find_method#0#loop#0#wrap#end compile._#Var.find_method#0#loop#0#wrap#0#if#end: compile._#Var.find_method#0#loop#0#wrap#end: compile._#Var.find_method#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.find_method#0#loop#end jmp compile._#Var.find_method#0#loop#start compile._#Var.find_method#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_func mov r14, rax ; (SET) ; STARTING RETURN mov rax, r14 ; (SET) jmp compile._#Var.find_method#end compile._#Var.find_method#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._reverse_ptrc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) mov rcx, 2 ; (DIV) mov rax, rbx ; (DIV) xor rdx, rdx div rcx mov rbx, rax ; (DIV) mov r11, rbx ; (SET) mov r14, 0 ; (SET) cmp r14, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._reverse_ptrc#0#loop#end compile._#Var._reverse_ptrc#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) mov r9, r14 ; (SET) add r9, 1 ; (STD_OP) sub r8, r9 ; (STD_OP) mov qword [rbp - 80], r8 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r13, rax ; (SET) mov r15d, dword [r12] ; (SET) mov esi, dword [r13] ; (SET_PRM_R) mov dword [r12], esi ; (SET) mov dword [r13], r15d ; (SET) compile._#Var._reverse_ptrc#0#loop#rep: mov r8, r14 ; (SET) inc r14 ; (UNARY) cmp r14, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._reverse_ptrc#0#loop#end jmp compile._#Var._reverse_ptrc#0#loop#start compile._#Var._reverse_ptrc#0#loop#end: compile._#Var._reverse_ptrc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._resolve_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, 0 ; (SET) mov r13b, 1 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#0#loop#end compile._#Var._resolve_type#0#loop#start: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#0#loop#0#wrap#0#if#end mov r13b, 0 ; (SET) jmp compile._#Var._resolve_type#0#loop#0#wrap#end compile._#Var._resolve_type#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 4 ; Create stack space for local variable ptr mov dword [rbp - 60], 0 ; (SET) mov ebx, dword [rbp - 60] ; (SET) sub ebx, dword [rel compile.PTYPE_PTR] ; (STD_OP) mov dword [rbp - 60], ebx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], rsi ; (SET) lea rsi, dword [rbp - 60] ; (TAKE_PTR) mov qword [rbp - 76], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#end compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._arr_ptr jmp compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#end compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#0#wrap#end: jmp compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#end compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#0#if#end: mov r13b, 0 ; (SET) jmp compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#end compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#1#if#end: compile._#Var._resolve_type#0#loop#0#wrap#1#if#0#wrap#end: jmp compile._#Var._resolve_type#0#loop#0#wrap#end compile._#Var._resolve_type#0#loop#0#wrap#1#if#end: compile._#Var._resolve_type#0#loop#0#wrap#end: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#0#loop#1#wrap#0#if#end mov rbx, r12 ; (SET) inc r12 ; (UNARY) jmp compile._#Var._resolve_type#0#loop#1#wrap#end compile._#Var._resolve_type#0#loop#1#wrap#0#if#end: compile._#Var._resolve_type#0#loop#1#wrap#end: compile._#Var._resolve_type#0#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#0#loop#end jmp compile._#Var._resolve_type#0#loop#start compile._#Var._resolve_type#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._reverse_ptrc sub rsp, 32 ; Create stack space for local variable strv sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 8 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#1#loop#end compile._#Var._resolve_type#1#loop#start: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#1#loop#0#wrap#0#if#end mov r13b, 0 ; (SET) jmp compile._#Var._resolve_type#1#loop#0#wrap#end compile._#Var._resolve_type#1#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#1#loop#0#wrap#1#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable str mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) lea rsi, qword [rbp - 96] ; (TAKE_PTR) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Var._resolve_type#1#loop#0#wrap#1#if#0#wrap#end compile._#Var._resolve_type#1#loop#0#wrap#1#if#0#wrap#0#if#end: mov r13b, 0 ; (SET) jmp compile._#Var._resolve_type#1#loop#0#wrap#1#if#0#wrap#end compile._#Var._resolve_type#1#loop#0#wrap#1#if#0#wrap#1#if#end: compile._#Var._resolve_type#1#loop#0#wrap#1#if#0#wrap#end: jmp compile._#Var._resolve_type#1#loop#0#wrap#end compile._#Var._resolve_type#1#loop#0#wrap#1#if#end: compile._#Var._resolve_type#1#loop#0#wrap#end: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#1#loop#1#wrap#0#if#end mov rbx, r12 ; (SET) inc r12 ; (UNARY) jmp compile._#Var._resolve_type#1#loop#1#wrap#end compile._#Var._resolve_type#1#loop#1#wrap#0#if#end: compile._#Var._resolve_type#1#loop#1#wrap#end: compile._#Var._resolve_type#1#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#1#loop#end jmp compile._#Var._resolve_type#1#loop#start compile._#Var._resolve_type#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], r11 ; (SET) mov rsi, qword [rel compile.SEARCH_STRUCT] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 120], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) mov rcx, qword [rbp - 120] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call compile._#Module.find mov rbx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.end mov r13b, 1 ; (SET) cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#2#loop#end compile._#Var._resolve_type#2#loop#start: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#2#loop#0#wrap#0#if#end mov r13b, 0 ; (SET) jmp compile._#Var._resolve_type#2#loop#0#wrap#end compile._#Var._resolve_type#2#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_POST_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#2#loop#0#wrap#1#if#0#wrap#0#if#end sub rsp, 4 ; Create stack space for local variable ptr mov dword [rbp - 92], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 100], rsi ; (SET) lea rsi, dword [rbp - 92] ; (TAKE_PTR) mov qword [rbp - 108], rsi ; (SET) mov rax, qword [rbp - 100] ; (SET) mov rbx, qword [rbp - 108] ; (SET) lea rsp, [rbp - 92] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Var._resolve_type#2#loop#0#wrap#1#if#0#wrap#end compile._#Var._resolve_type#2#loop#0#wrap#1#if#0#wrap#0#if#end: compile._#Var._resolve_type#2#loop#0#wrap#1#if#0#wrap#end: jmp compile._#Var._resolve_type#2#loop#0#wrap#end compile._#Var._resolve_type#2#loop#0#wrap#1#if#end: compile._#Var._resolve_type#2#loop#0#wrap#end: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#2#loop#1#wrap#0#if#end mov rbx, r12 ; (SET) inc r12 ; (UNARY) jmp compile._#Var._resolve_type#2#loop#1#wrap#end compile._#Var._resolve_type#2#loop#1#wrap#0#if#end: compile._#Var._resolve_type#2#loop#1#wrap#end: compile._#Var._resolve_type#2#loop#rep: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._resolve_type#2#loop#end jmp compile._#Var._resolve_type#2#loop#start compile._#Var._resolve_type#2#loop#end: compile._#Var._resolve_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_compile_arr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile_arr#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcpy mov rax, rax ; (SET) jmp compile._#Var._static_compile_arr#end compile._#Var._static_compile_arr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_compile_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile_ptr mov rax, rax ; (SET) jmp compile._#Var._static_compile_ptr#end jmp compile._#Var._static_compile_ptr#0#wrap#end compile._#Var._static_compile_ptr#0#wrap#0#if#end: compile._#Var._static_compile_ptr#0#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LITERAL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._global_ptr mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call utils.unquote_str ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable vout ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 112] ; (SET_PRM_R) mov qword [rbp - 128], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov qword [rbp - 136], r14 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r14 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call _delete mov rcx, qword [rbp - 112] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#end compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#0#if#end: compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#3#wrap#end: mov r15, 1 ; (SET) cmp r15, qword [rbp - 112] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#end compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rbx, r15 ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 136], rbx ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable uptr mov qword [rbp - 128], rax ; (SET) sub rsp, 1 ; Create stack space for local variable utmp mov rdi, [rbp - 128] ; (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 129], sil ; (SET) sub rsp, 8 ; Create stack space for tmp variable movzx rsi, byte [rbp - 129] ; (SET_PRM_R) mov qword [rbp - 137], rsi ; (SET) mov rax, qword [rbp - 137] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r12 ; (SET) mov qword [rbp - 145], r14 ; (SET) mov rax, qword [rbp - 137] ; (SET) mov rbx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r12 ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 145], rsi ; (SET) mov rax, qword [rbp - 137] ; (SET) mov rbx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r14 ; (SET) mov rax, qword [rbp - 137] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call _delete compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) cmp r15, qword [rbp - 112] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#end jmp compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#start compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#4#loop#end: mov rcx, qword [rbp - 112] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#5#wrap#0#if#end mov r15, qword [rbp - 112] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rbx, r15 ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 136], rbx ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable uptr mov qword [rbp - 128], rax ; (SET) sub rsp, 1 ; Create stack space for local variable utmp mov rdi, [rbp - 128] ; (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 129], sil ; (SET) sub rsp, 8 ; Create stack space for tmp variable movzx rsi, byte [rbp - 129] ; (SET_PRM_R) mov qword [rbp - 137], rsi ; (SET) mov rax, qword [rbp - 137] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r12 ; (SET) mov qword [rbp - 145], r14 ; (SET) mov rax, qword [rbp - 137] ; (SET) mov rbx, qword [rbp - 145] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 137], r14 ; (SET) mov rax, qword [rbp - 137] ; (SET) lea rsp, [rbp - 129] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#5#wrap#end compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#5#wrap#0#if#end: compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#5#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r12 ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call compile._#Var._global_ptr mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov qword [rbp - 136], r14 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r14 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call _delete ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov r15, rbx ; (SET) mov r8, r15 ; (SET) sub r8, r13 ; (STD_OP) mov r15, r8 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 136], rsi ; (SET) mov qword [rbp - 144], r15 ; (SET) mov rax, qword [rbp - 136] ; (SET) mov rbx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for local variable pc mov qword [rbp - 128], rax ; (SET) mov rdi, [rbp - 128] ; (SET_PRM_L) mov ecx, dword [rdi] ; (SET) cmp ecx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 136], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 144] ; (SET) mov rbx, qword [rbp - 152] ; (SET) lea rsp, [rbp - 136] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) jmp compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#end compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#0#if#end: compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#8#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 136], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 144] ; (SET) mov rbx, qword [rbp - 152] ; (SET) lea rsp, [rbp - 136] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 136], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rax ; (SET) mov rax, qword [rbp - 144] ; (SET) lea rsp, [rbp - 136] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) mov rax, rax ; (SET) jmp compile._#Var._static_compile_ptr#end jmp compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#end compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#0#if#end: compile._#Var._static_compile_ptr#1#wrap#0#if#0#wrap#end: sub rsp, 32 ; Create stack space for local variable vout sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_ptr#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Var._static_compile_ptr#end jmp compile._#Var._static_compile_ptr#1#wrap#end compile._#Var._static_compile_ptr#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_ptr#1#wrap#1#if#end ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile_arr mov rax, rax ; (SET) jmp compile._#Var._static_compile_ptr#end jmp compile._#Var._static_compile_ptr#1#wrap#end compile._#Var._static_compile_ptr#1#wrap#1#if#end: compile._#Var._static_compile_ptr#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile_ptr#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile_ptr#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcpy mov rax, rax ; (SET) jmp compile._#Var._static_compile_ptr#end compile._#Var._static_compile_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_compile_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile_struct#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcpy mov rax, rax ; (SET) jmp compile._#Var._static_compile_struct#end compile._#Var._static_compile_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_comp_prim_r_dot: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_dot#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_dot#end compile._#Var._static_comp_prim_r_dot#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_comp_prim_r_bin: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 46 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#0#wrap#0#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r_dot ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_bin#end jmp compile._#Var._static_comp_prim_r_bin#0#wrap#end compile._#Var._static_comp_prim_r_bin#0#wrap#0#if#end: compile._#Var._static_comp_prim_r_bin#0#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable a ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable b ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 416], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_bin#end jmp compile._#Var._static_comp_prim_r_bin#1#wrap#end compile._#Var._static_comp_prim_r_bin#1#wrap#0#if#end: mov rcx, qword [rbp - 360] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 416], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_bin#end jmp compile._#Var._static_comp_prim_r_bin#1#wrap#end compile._#Var._static_comp_prim_r_bin#1#wrap#1#if#end: compile._#Var._static_comp_prim_r_bin#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#2#wrap#0#if#end mov rbx, qword [rbp - 176] ; (SET) imul rbx, qword [rbp - 352] ; (MUL) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Var._static_comp_prim_r_bin#2#wrap#end compile._#Var._static_comp_prim_r_bin#2#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#2#wrap#1#if#end mov rbx, qword [rbp - 176] ; (SET) mov rax, rbx ; (DIV) cqo idiv qword [rbp - 352] mov rbx, rax ; (DIV) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Var._static_comp_prim_r_bin#2#wrap#end compile._#Var._static_comp_prim_r_bin#2#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#2#wrap#2#if#end mov rbx, qword [rbp - 176] ; (SET) mov rax, rbx ; (DIV) cqo idiv qword [rbp - 352] mov rbx, rdx ; (DIV) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Var._static_comp_prim_r_bin#2#wrap#end compile._#Var._static_comp_prim_r_bin#2#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#2#wrap#3#if#end mov rbx, qword [rbp - 176] ; (SET) add rbx, qword [rbp - 352] ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Var._static_comp_prim_r_bin#2#wrap#end compile._#Var._static_comp_prim_r_bin#2#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_bin#2#wrap#4#if#end mov rbx, qword [rbp - 176] ; (SET) sub rbx, qword [rbp - 352] ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Var._static_comp_prim_r_bin#2#wrap#end compile._#Var._static_comp_prim_r_bin#2#wrap#4#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 416], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 416], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 416], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._static_comp_prim_r_bin#2#wrap#end compile._#Var._static_comp_prim_r_bin#2#wrap#5#if#end: compile._#Var._static_comp_prim_r_bin#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_bin#end compile._#Var._static_comp_prim_r_bin#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_comp_prim_r_pre: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_pre#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_pre#end compile._#Var._static_comp_prim_r_pre#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_comp_prim_r_post: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_post#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_post#end compile._#Var._static_comp_prim_r_post#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_comp_prim_r_id: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable name mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) sub rsp, 32 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov qword [rbp - 112], 8 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) lea rsi, qword [rbp - 64] ; (TAKE_PTR) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rel compile.SEARCH_VAR] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 120], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) mov rcx, qword [rbp - 120] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call compile._#Module.find mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.end cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 184] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end jmp compile._#Var._static_comp_prim_r_id#0#wrap#end compile._#Var._static_comp_prim_r_id#0#wrap#0#if#end: compile._#Var._static_comp_prim_r_id#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 184] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end jmp compile._#Var._static_comp_prim_r_id#1#wrap#end compile._#Var._static_comp_prim_r_id#1#wrap#0#if#end: compile._#Var._static_comp_prim_r_id#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 97], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 105], r12 ; (SET) mov rax, qword [rbp - 105] ; (SET) lea rsp, [rbp - 97] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#2#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 184] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end jmp compile._#Var._static_comp_prim_r_id#2#wrap#end compile._#Var._static_comp_prim_r_id#2#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#2#wrap#1#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], r12 ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.as_global ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end jmp compile._#Var._static_comp_prim_r_id#2#wrap#end compile._#Var._static_comp_prim_r_id#2#wrap#1#if#end: compile._#Var._static_comp_prim_r_id#2#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#3#wrap#0#if#end mov r13, qword [rel NULL] ; (SET) jmp compile._#Var._static_comp_prim_r_id#3#wrap#end compile._#Var._static_comp_prim_r_id#3#wrap#0#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], rsi ; (SET) mov qword [rbp - 112], 0 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 184] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end jmp compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#end compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#1#if#end mov r13, qword [rel NULL] ; (SET) jmp compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#end compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], rsi ; (SET) mov qword [rbp - 112], 0 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) jmp compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#end compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#2#if#end: compile._#Var._static_comp_prim_r_id#3#wrap#1#if#0#wrap#end: jmp compile._#Var._static_comp_prim_r_id#3#wrap#end compile._#Var._static_comp_prim_r_id#3#wrap#1#if#end: compile._#Var._static_comp_prim_r_id#3#wrap#end: cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r_id#4#wrap#0#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], r12 ; (SET) mov qword [rbp - 200], r13 ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r ; putting struct address into register lea rdi, [rbp - 184] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end jmp compile._#Var._static_comp_prim_r_id#4#wrap#end compile._#Var._static_comp_prim_r_id#4#wrap#0#if#end: compile._#Var._static_comp_prim_r_id#4#wrap#end: sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 184] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r_id#end compile._#Var._static_comp_prim_r_id#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_comp_prim_r: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end jmp compile._#Var._static_comp_prim_r#0#wrap#end compile._#Var._static_comp_prim_r#0#wrap#0#if#end: compile._#Var._static_comp_prim_r#0#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LITERAL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#end mov r12, 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#0#if#end mov r12, 1 ; (SET) jmp compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r9] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r9, rax ; (SET) mov cl, byte [r9] ; (SET) cmp cl, 48 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#2#if#0#bool#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rsi, qword [rdi] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rax ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cl, byte [rdi] ; (SET) cmp cl, 57 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#2#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.cstr_to_int mov r12, rax ; (SET) jmp compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 39 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#3#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) mov rbx, r13 ; (SET) add r13, 1 ; (STD_OP) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.unquote_cha mov r14b, al ; (SET) movzx rsi, r14b ; (SET_PRM_R) mov r12, rsi ; (SET) jmp compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#4#if#end: compile._#Var._static_comp_prim_r#1#wrap#0#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init mov qword [rbp - 88], r12 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end jmp compile._#Var._static_comp_prim_r#1#wrap#end compile._#Var._static_comp_prim_r#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#1#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r_bin ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end jmp compile._#Var._static_comp_prim_r#1#wrap#end compile._#Var._static_comp_prim_r#1#wrap#1#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#2#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r_pre ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end jmp compile._#Var._static_comp_prim_r#1#wrap#end compile._#Var._static_comp_prim_r#1#wrap#2#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_POST_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#3#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r_post ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end jmp compile._#Var._static_comp_prim_r#1#wrap#end compile._#Var._static_comp_prim_r#1#wrap#3#if#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_comp_prim_r#1#wrap#4#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r_id ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end jmp compile._#Var._static_comp_prim_r#1#wrap#end compile._#Var._static_comp_prim_r#1#wrap#4#if#end: compile._#Var._static_comp_prim_r#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_comp_prim_r#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._static_comp_prim_r#end compile._#Var._static_comp_prim_r#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_compile_prim: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._static_comp_prim_r ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable vout ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov qword [rbp - 280], 1 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r12, rax ; (SET) cmp r12, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_prim#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_prim#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._static_compile_prim#0#wrap#end compile._#Var._static_compile_prim#0#wrap#0#if#end: cmp r12, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_prim#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_prim#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._static_compile_prim#0#wrap#end compile._#Var._static_compile_prim#0#wrap#1#if#end: cmp r12, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_prim#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_prim#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._static_compile_prim#0#wrap#end compile._#Var._static_compile_prim#0#wrap#2#if#end: cmp r12, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_prim#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_prim#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._static_compile_prim#0#wrap#end compile._#Var._static_compile_prim#0#wrap#3#if#end: compile._#Var._static_compile_prim#0#wrap#end: mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_prim#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 176] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov qword [rbp - 280], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_prim#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var._static_compile_prim#1#wrap#end compile._#Var._static_compile_prim#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile_prim#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rsi, qword [rbp - 184] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call _print_num jmp compile._#Var._static_compile_prim#1#wrap#end compile._#Var._static_compile_prim#1#wrap#1#if#end: compile._#Var._static_compile_prim#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Var.end ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Var._static_compile_prim#end compile._#Var._static_compile_prim#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_compile_zero: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable zero sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_zero#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r11, rax ; (SET) mov r12, 1 ; (SET) cmp r12, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_zero#1#loop#end compile._#Var._static_compile_zero#1#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_zero#1#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr compile._#Var._static_compile_zero#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile_zero#1#loop#end jmp compile._#Var._static_compile_zero#1#loop#start compile._#Var._static_compile_zero#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile_zero#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Var._static_compile_zero#end compile._#Var._static_compile_zero#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._static_compile: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 1 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile#0#wrap#0#if#end mov r12, qword [rel NULL] ; (SET) jmp compile._#Var._static_compile#0#wrap#end compile._#Var._static_compile#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._static_compile#end jmp compile._#Var._static_compile#0#wrap#1#if#0#wrap#end compile._#Var._static_compile#0#wrap#1#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile#0#wrap#1#if#0#wrap#1#if#end mov r12, qword [rel NULL] ; (SET) jmp compile._#Var._static_compile#0#wrap#1#if#0#wrap#end compile._#Var._static_compile#0#wrap#1#if#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) jmp compile._#Var._static_compile#0#wrap#1#if#0#wrap#end compile._#Var._static_compile#0#wrap#1#if#0#wrap#2#if#end: compile._#Var._static_compile#0#wrap#1#if#0#wrap#end: jmp compile._#Var._static_compile#0#wrap#end compile._#Var._static_compile#0#wrap#1#if#end: compile._#Var._static_compile#0#wrap#end: sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile_zero mov r13, rax ; (SET) jmp compile._#Var._static_compile#1#wrap#end compile._#Var._static_compile#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 112], rsi ; (SET) mov qword [rbp - 120], 0 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) mov rdx, qword [rbp - 120] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile_ptr mov r13, rax ; (SET) jmp compile._#Var._static_compile#1#wrap#end compile._#Var._static_compile#1#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._static_compile#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) mov rcx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile_struct mov r13, rax ; (SET) jmp compile._#Var._static_compile#1#wrap#end compile._#Var._static_compile#1#wrap#2#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile_prim mov r13, rax ; (SET) jmp compile._#Var._static_compile#1#wrap#end compile._#Var._static_compile#1#wrap#3#if#end: compile._#Var._static_compile#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#Var._global_base mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r14 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._static_compile#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r14 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r11 ; (SET) mov qword [rbp - 104], r15 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r11 ; (SET) mov rsi, qword [rel compile._#Var._static_compile#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) compile._#Var._static_compile#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._global_base: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable name sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._recursive_mod_name mov rcx, qword [rbp - 80] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._global_base#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 46 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char jmp compile._#Var._global_base#0#wrap#end compile._#Var._global_base#0#wrap#0#if#end: compile._#Var._global_base#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Var._global_base#end compile._#Var._global_base#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._global_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for local variable name sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._recursive_mod_name mov rcx, qword [rbp - 80] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._global_ptr#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 46 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char jmp compile._#Var._global_ptr#0#wrap#end compile._#Var._global_ptr#0#wrap#0#if#end: compile._#Var._global_ptr#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._global_ptr#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Var._global_ptr#end compile._#Var._global_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.as_global: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._global_base mov qword [rbp - 232], rax ; (SET) mov r11, 0 ; (SET) mov rbx, r11 ; (SET) sub rbx, 2 ; (STD_OP) mov r11, rbx ; (SET) mov qword [rbp - 184], r11 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.as_global#end compile._#Var.as_global#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.ptr_push: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 4 ; Create stack space for local variable p mov dword [rbp - 60], ebx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 68], rsi ; (SET) lea rsi, dword [rbp - 60] ; (TAKE_PTR) mov qword [rbp - 76], rsi ; (SET) mov rax, qword [rbp - 68] ; (SET) mov rbx, qword [rbp - 76] ; (SET) lea rsp, [rbp - 60] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._#Var.ptr_push#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.ptr_pop: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.pop compile._#Var.ptr_pop#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Var.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.in_mem: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.in_mem#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Var.in_mem#end jmp compile._#Var.in_mem#0#wrap#end compile._#Var.in_mem#0#wrap#0#if#end: compile._#Var.in_mem#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.top_ptrc mov r11, rax ; (SET) cmp r11, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.in_mem#1#wrap#0#if#end mov ecx, dword [r11] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.in_mem#1#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Var.in_mem#end jmp compile._#Var.in_mem#1#wrap#0#if#0#wrap#end compile._#Var.in_mem#1#wrap#0#if#0#wrap#0#if#end: mov ecx, dword [r11] ; (SET) cmp ecx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.in_mem#1#wrap#0#if#0#wrap#1#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Var.in_mem#end jmp compile._#Var.in_mem#1#wrap#0#if#0#wrap#end compile._#Var.in_mem#1#wrap#0#if#0#wrap#1#if#end: compile._#Var.in_mem#1#wrap#0#if#0#wrap#end: jmp compile._#Var.in_mem#1#wrap#end compile._#Var.in_mem#1#wrap#0#if#end: compile._#Var.in_mem#1#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var.in_mem#end compile._#Var.in_mem#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._tc_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._tc_struct#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var._tc_struct#end jmp compile._#Var._tc_struct#0#wrap#end compile._#Var._tc_struct#0#wrap#0#if#end: compile._#Var._tc_struct#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) ; STARTING RETURN cmp r12, r13 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare mov al, bl ; (SET) jmp compile._#Var._tc_struct#end compile._#Var._tc_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._tc_prim: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptr mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._tc_prim#0#wrap#0#if#end ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptr mov al, al ; (SET) jmp compile._#Var._tc_prim#end jmp compile._#Var._tc_prim#0#wrap#end compile._#Var._tc_prim#0#wrap#0#if#end: compile._#Var._tc_prim#0#wrap#end: ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Var._tc_prim#end compile._#Var._tc_prim#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._set_struct_r: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile.reg_string mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#1#wrap#end compile._#Var._set_struct_r#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#1#wrap#1#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#end compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#end compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#1#if#end: compile._#Var._set_struct_r#1#wrap#1#if#0#wrap#end: jmp compile._#Var._set_struct_r#1#wrap#end compile._#Var._set_struct_r#1#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#1#wrap#end compile._#Var._set_struct_r#1#wrap#2#if#end: compile._#Var._set_struct_r#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, qword [rel compile.VLOC_DATA] ; (STD_OP) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#3#wrap#end compile._#Var._set_struct_r#3#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, qword [rel compile.VLOC_STCK] ; (STD_OP) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#3#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], 8 ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile.reg_string mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var._set_struct_r#3#wrap#end compile._#Var._set_struct_r#3#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile.reg_string mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var._set_struct_r#3#wrap#end compile._#Var._set_struct_r#3#wrap#2#if#end: compile._#Var._set_struct_r#3#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#4#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) cmp r14, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#0#if#end mov rbx, 0 ; (SET) sub rbx, r14 ; (STD_OP) mov r14, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#end compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#end compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#1#if#end: compile._#Var._set_struct_r#4#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var._set_struct_r#4#wrap#end compile._#Var._set_struct_r#4#wrap#0#if#end: compile._#Var._set_struct_r#4#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov r14, 2 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#6#loop#end compile._#Var._set_struct_r#6#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#6#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#6#loop#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct_r#6#loop#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c compile._#Var._set_struct_r#6#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct_r#6#loop#end jmp compile._#Var._set_struct_r#6#loop#start compile._#Var._set_struct_r#6#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Var._set_struct_r#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._set_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var._tc_struct mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_struct#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_struct#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_struct#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_struct#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._set_struct#end jmp compile._#Var._set_struct#0#wrap#end compile._#Var._set_struct#0#wrap#0#if#end: compile._#Var._set_struct#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], 6 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._set_struct_r sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], 5 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._set_struct_r sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_struct#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c compile._#Var._set_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._set_prim_l_base: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_prim_l_base#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_prim_l_base#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcpy mov rax, rax ; (SET) jmp compile._#Var._set_prim_l_base#end jmp compile._#Var._set_prim_l_base#0#wrap#end compile._#Var._set_prim_l_base#0#wrap#0#if#end: compile._#Var._set_prim_l_base#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 8 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile.reg_string mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 32 ; Create stack space for local variable vout sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) cmp r14, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end mov rbx, 0 ; (SET) sub rbx, r14 ; (STD_OP) mov r14, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r14 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r13, rax ; (SET) jmp compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#0#wrap#end: jmp compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile.reg_string mov r13, rax ; (SET) jmp compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#1#if#end: compile._#Var._set_prim_l_base#1#wrap#0#if#0#wrap#end: jmp compile._#Var._set_prim_l_base#1#wrap#end compile._#Var._set_prim_l_base#1#wrap#0#if#end: sub rsp, 32 ; Create stack space for local variable vout ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, 1 ; (STD_OP) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr jmp compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#1#if#end: compile._#Var._set_prim_l_base#1#wrap#1#if#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) cmp r14, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#0#if#end mov rbx, 0 ; (SET) sub rbx, r14 ; (STD_OP) mov r14, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#0#if#end: cmp r14, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr jmp compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#1#if#end: compile._#Var._set_prim_l_base#1#wrap#1#if#1#wrap#end: cmp r14, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#1#if#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r14 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var._set_prim_l_base#1#wrap#1#if#2#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#2#wrap#0#if#end: compile._#Var._set_prim_l_base#1#wrap#1#if#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r13, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 89], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 97], r10 ; (SET) mov rax, qword [rbp - 97] ; (SET) lea rsp, [rbp - 89] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 89] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r11 ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.strcpy mov r13, rax ; (SET) jmp compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#0#if#end: compile._#Var._set_prim_l_base#1#wrap#1#if#3#wrap#end: jmp compile._#Var._set_prim_l_base#1#wrap#end compile._#Var._set_prim_l_base#1#wrap#1#if#end: compile._#Var._set_prim_l_base#1#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#2#wrap#0#if#end sub rsp, 32 ; Create stack space for local variable vout sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r13, rax ; (SET) jmp compile._#Var._set_prim_l_base#2#wrap#end compile._#Var._set_prim_l_base#2#wrap#0#if#end: compile._#Var._set_prim_l_base#2#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.double_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_prim_l_base#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.strcpy mov r13, rax ; (SET) mov r14, 2 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#end compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r14 ; (SET) mov dword [rbp - 77], 0 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov ecx, dword [rbp - 77] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print jmp compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#end compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) jmp compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#end compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#1#if#end: compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#0#wrap#end: compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#end jmp compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#start compile._#Var._set_prim_l_base#3#wrap#0#if#3#loop#end: jmp compile._#Var._set_prim_l_base#3#wrap#end compile._#Var._set_prim_l_base#3#wrap#0#if#end: compile._#Var._set_prim_l_base#3#wrap#end: mov r8, r13 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 91 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#4#wrap#0#if#end sub rsp, 32 ; Create stack space for local variable vout cmp r12, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr jmp compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#0#if#end: cmp r12, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr jmp compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#1#if#end: cmp r12, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr jmp compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#2#if#end: cmp r12, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr jmp compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#end compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#3#if#end: compile._#Var._set_prim_l_base#4#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r13 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r13, rax ; (SET) jmp compile._#Var._set_prim_l_base#4#wrap#end compile._#Var._set_prim_l_base#4#wrap#0#if#end: compile._#Var._set_prim_l_base#4#wrap#end: ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Var._set_prim_l_base#end compile._#Var._set_prim_l_base#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._set_prim_l: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r12, rax ; (SET) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l_base mov rax, rax ; (SET) jmp compile._#Var._set_prim_l#end compile._#Var._set_prim_l#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._set_prim_r: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r13, rax ; (SET) ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Var._set_prim_r#end jmp compile._#Var._set_prim_r#0#wrap#end compile._#Var._set_prim_r#0#wrap#0#if#end: compile._#Var._set_prim_r#0#wrap#end: mov r14b, 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.type_size sub rsp, 8 ; Create stack space for local variable L mov qword [rbp - 64], rax ; (SET) cmp r15, qword [rbp - 64] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r13, rax ; (SET) mov r14b, 1 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], 5 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile.reg_string sub rsp, 8 ; Create stack space for local variable vout mov qword [rbp - 72], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 73], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 82], r12 ; (SET) mov rax, qword [rbp - 82] ; (SET) lea rsp, [rbp - 74] ; Free stack space (freeing tmp variables) call compile._#Var.is_signed mov r8b, byte [rbp - 74] ; (SET) mov bl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 73], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 74], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 75], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 83], r10 ; (SET) mov rax, qword [rbp - 83] ; (SET) lea rsp, [rbp - 75] ; Free stack space (freeing tmp variables) call compile._#Var.is_signed mov r9b, byte [rbp - 75] ; (SET) mov r8b, byte [rbp - 74] ; (SET) mov bl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 73], al ; (SET) mov cl, byte [rbp - 73] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#end cmp r15, 4 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#1#if#end: compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#0#if#end: cmp r15, 4 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#end compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#2#if#end: compile._#Var._set_prim_r#1#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete mov r13, qword [rbp - 72] ; (SET) jmp compile._#Var._set_prim_r#1#wrap#end compile._#Var._set_prim_r#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l_base mov r13, rax ; (SET) jmp compile._#Var._set_prim_r#1#wrap#end compile._#Var._set_prim_r#1#wrap#1#if#end: compile._#Var._set_prim_r#1#wrap#end: cmp r14b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#2#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 74], r10 ; (SET) mov rax, qword [rbp - 74] ; (SET) lea rsp, [rbp - 66] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov r8b, byte [rbp - 66] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 66], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 67], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 75], r12 ; (SET) mov rax, qword [rbp - 75] ; (SET) lea rsp, [rbp - 67] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov r9b, byte [rbp - 67] ; (SET) mov r8b, byte [rbp - 66] ; (SET) mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], al ; (SET) mov cl, byte [rbp - 65] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], 5 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile.reg_string sub rsp, 8 ; Create stack space for local variable vout mov qword [rbp - 72], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r11 ; (SET) mov rsi, qword [rel compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete mov r13, qword [rbp - 72] ; (SET) jmp compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#end compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#0#if#end: compile._#Var._set_prim_r#2#wrap#0#if#0#wrap#end: jmp compile._#Var._set_prim_r#2#wrap#end compile._#Var._set_prim_r#2#wrap#0#if#end: compile._#Var._set_prim_r#2#wrap#end: ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Var._set_prim_r#end compile._#Var._set_prim_r#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.set: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r11, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 73] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.set#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_struct jmp compile._#Var.set#end jmp compile._#Var.set#0#wrap#end compile._#Var.set#0#wrap#0#if#end: compile._#Var.set#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.set#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.set#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.set#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete compile._#Var.set#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.set_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.max_ref mov r14, rax ; (SET) cmp r13, r14 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.set_ref#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.set_ref#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.set_ref#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.set_ref#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.set_ref#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.set_ref#0#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var.set_ref#end jmp compile._#Var.set_ref#0#wrap#end compile._#Var.set_ref#0#wrap#0#if#end: compile._#Var.set_ref#0#wrap#end: mov r15d, 0 ; (SET) mov ebx, r15d ; (SET) sub ebx, 1 ; (STD_OP) mov r15d, ebx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, r14 ; (STD_OP) mov r14, rbx ; (SET) mov rbx, r14 ; (SET) add rbx, r13 ; (STD_OP) mov r14, rbx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 216] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable ptr mov qword [rbp - 240], rax ; (SET) mov rdi, [rbp - 240] ; (SET_PRM_L) mov dword [rdi], r15d ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rax ; (SET) mov qword [rbp - 256], r11 ; (SET) mov qword [rbp - 264], r12 ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) mov rcx, qword [rbp - 264] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rax ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Var.set_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.take_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable vcpy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], r10 ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.take_ptr#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.take_ptr#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.take_ptr#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.take_ptr#end jmp compile._#Var.take_ptr#0#wrap#end compile._#Var.take_ptr#0#wrap#0#if#end: compile._#Var.take_ptr#0#wrap#end: mov r13d, 0 ; (SET) mov ebx, r13d ; (SET) sub ebx, 1 ; (STD_OP) mov r13d, ebx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.take_ptr#1#wrap#0#if#end mov r14, 0 ; (SET) mov r15, 0 ; (SET) cmp r15, qword [rbp - 208] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.take_ptr#1#wrap#0#if#0#loop#end compile._#Var.take_ptr#1#wrap#0#if#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov qword [rbp - 249], r15 ; (SET) mov dword [rbp - 253], 0 ; (SET) mov rax, qword [rbp - 241] ; (SET) mov rbx, qword [rbp - 249] ; (SET) mov ecx, dword [rbp - 253] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.take_ptr#1#wrap#0#if#0#loop#0#wrap#0#if#end mov r15, qword [rbp - 208] ; (SET) jmp compile._#Var.take_ptr#1#wrap#0#if#0#loop#0#wrap#end compile._#Var.take_ptr#1#wrap#0#if#0#loop#0#wrap#0#if#end: mov rbx, r14 ; (SET) inc r14 ; (UNARY) jmp compile._#Var.take_ptr#1#wrap#0#if#0#loop#0#wrap#end compile._#Var.take_ptr#1#wrap#0#if#0#loop#0#wrap#1#if#end: compile._#Var.take_ptr#1#wrap#0#if#0#loop#0#wrap#end: compile._#Var.take_ptr#1#wrap#0#if#0#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) cmp r15, qword [rbp - 208] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.take_ptr#1#wrap#0#if#0#loop#end jmp compile._#Var.take_ptr#1#wrap#0#if#0#loop#start compile._#Var.take_ptr#1#wrap#0#if#0#loop#end: mov rbx, qword [rbp - 208] ; (SET) sub rbx, r14 ; (STD_OP) mov r14, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 216] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) mov dword [r15], r13d ; (SET) jmp compile._#Var.take_ptr#1#wrap#end compile._#Var.take_ptr#1#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], r10 ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.take_ptr#1#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._set_struct_r jmp compile._#Var.take_ptr#1#wrap#1#if#0#wrap#end compile._#Var.take_ptr#1#wrap#1#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r12 ; (SET) mov qword [rbp - 248], 8 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile.reg_string mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov qword [rbp - 248], r15 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov qword [rbp - 248], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r15 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var.take_ptr#1#wrap#1#if#0#wrap#end compile._#Var.take_ptr#1#wrap#1#if#0#wrap#1#if#end: compile._#Var.take_ptr#1#wrap#1#if#0#wrap#end: mov qword [rbp - 184], r12 ; (SET) mov qword [rbp - 176], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 216] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 216] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov qword [rbp - 248], 4 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov dword [rbp - 244], r13d ; (SET) mov rax, qword [rbp - 240] ; (SET) mov ebx, dword [rbp - 244] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Var.take_ptr#1#wrap#end compile._#Var.take_ptr#1#wrap#1#if#end: compile._#Var.take_ptr#1#wrap#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.take_ptr#end compile._#Var.take_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._de_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) cmp r11, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._de_ref#0#loop#end compile._#Var._de_ref#0#loop#start: mov rbx, r11 ; (SET) sub rbx, 1 ; (STD_OP) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) mov ecx, dword [r12] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._de_ref#0#loop#0#wrap#0#if#end mov ecx, dword [r12] ; (SET) cmp ecx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#end compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#0#if#end: mov dword [r12], 0 ; (SET) jmp compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#end compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#1#if#end: compile._#Var._de_ref#0#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Var._de_ref#end jmp compile._#Var._de_ref#0#loop#0#wrap#end compile._#Var._de_ref#0#loop#0#wrap#0#if#end: compile._#Var._de_ref#0#loop#0#wrap#end: compile._#Var._de_ref#0#loop#rep: cmp r11, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._de_ref#0#loop#end jmp compile._#Var._de_ref#0#loop#start compile._#Var._de_ref#0#loop#end: compile._#Var._de_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.de_ref: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._de_ref ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.de_ref#end compile._#Var.de_ref#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.index_size: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index_size#0#loop#end compile._#Var.index_size#0#loop#start: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r11 ; (SET) mov dword [rbp - 77], 0 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) mov ecx, dword [rbp - 77] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ptrc mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index_size#0#loop#0#wrap#0#if#end mov r8, r11 ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index_size#0#loop#0#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov rax, 8 ; (SET) jmp compile._#Var.index_size#end jmp compile._#Var.index_size#0#loop#0#wrap#0#if#0#wrap#end compile._#Var.index_size#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Var.index_size#0#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Var.index_size#0#loop#0#wrap#end compile._#Var.index_size#0#loop#0#wrap#0#if#end: compile._#Var.index_size#0#loop#0#wrap#end: compile._#Var.index_size#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index_size#0#loop#end jmp compile._#Var.index_size#0#loop#start compile._#Var.index_size#0#loop#end: ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp compile._#Var.index_size#end compile._#Var.index_size#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.index: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.index#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.index_size mov r14, rax ; (SET) sub rsp, 88 ; Create stack space for local variable oo mov qword [rbp - 88], r14 ; (SET) mov qword [rbp - 96], 0 ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 264], 0 ; (SET) mov qword [rbp - 272], r13 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 321], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 329], rax ; (SET) mov rax, qword [rbp - 329] ; (SET) lea rsp, [rbp - 321] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 321] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index#1#loop#end compile._#Var.index#1#loop#start: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop compile._#Var.index#1#loop#rep: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 321], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 329], rax ; (SET) mov rax, qword [rbp - 329] ; (SET) lea rsp, [rbp - 321] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 321] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index#1#loop#end jmp compile._#Var.index#1#loop#start compile._#Var.index#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r12 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.mul sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 321], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 329], rax ; (SET) mov rax, qword [rbp - 329] ; (SET) lea rsp, [rbp - 321] ; Free stack space (freeing tmp variables) call compile._#Var.is_arr mov bl, byte [rbp - 321] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index#2#wrap#0#if#end mov qword [rbp - 88], 8 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.add jmp compile._#Var.index#2#wrap#end compile._#Var.index#2#wrap#0#if#end: compile._#Var.index#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r11 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.top_ptrc sub rsp, 8 ; Create stack space for local variable optrc mov qword [rbp - 328], rax ; (SET) mov rcx, qword [rbp - 328] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index#3#wrap#0#if#end mov rdi, [rbp - 328] ; (SET_PRM_L) mov ecx, dword [rdi] ; (SET) cmp ecx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.index#3#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov rsi, qword [rel compile._#Var.index#3#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.index#3#wrap#0#if#0#wrap#end compile._#Var.index#3#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov rsi, qword [rel compile._#Var.index#3#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.index#3#wrap#0#if#0#wrap#end compile._#Var.index#3#wrap#0#if#0#wrap#1#if#end: compile._#Var.index#3#wrap#0#if#0#wrap#end: jmp compile._#Var.index#3#wrap#end compile._#Var.index#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.index#3#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.index#3#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r15 ; (SET) mov rax, qword [rbp - 336] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call _delete ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.index#end jmp compile._#Var.index#3#wrap#end compile._#Var.index#3#wrap#1#if#end: compile._#Var.index#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r15 ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov rsi, qword [rel compile._#Var.index#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r15 ; (SET) mov rax, qword [rbp - 336] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 336], rax ; (SET) mov qword [rbp - 344], r11 ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov rsi, qword [rel compile._#Var.index#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r15 ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], r11 ; (SET) mov rsi, qword [rel compile._#Var.index#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 4 ; Create stack space for local variable ptr_ref mov dword [rbp - 332], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 340], rax ; (SET) mov rax, qword [rbp - 340] ; (SET) lea rsp, [rbp - 332] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 340], rax ; (SET) mov esi, dword [rbp - 332] ; (SET_PRM_R) mov dword [rbp - 344], esi ; (SET) mov rax, qword [rbp - 340] ; (SET) mov ebx, dword [rbp - 344] ; (SET) lea rsp, [rbp - 332] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.index#end compile._#Var.index#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.standard_op: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r11, rcx ; (SET) mov r12, rdx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.standard_op#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.standard_op#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.standard_op#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.standard_op#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete compile._#Var.standard_op#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.add: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.add#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.add#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.add#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) add r8, qword [rsi] ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Var.add#end jmp compile._#Var.add#0#wrap#end compile._#Var.add#0#wrap#0#if#end: compile._#Var.add#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8d, eax ; (SET) cmp r8d, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.add#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref_idx mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for local variable vl mov qword [rbp - 96], 0 ; (SET) mov r8, r13 ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.add#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.add#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._print mov qword [rbp - 88], 8 ; (SET) jmp compile._#Var.add#1#wrap#0#if#0#wrap#end compile._#Var.add#1#wrap#0#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Var.add#1#wrap#0#if#0#wrap#end compile._#Var.add#1#wrap#0#if#0#wrap#1#if#end: compile._#Var.add#1#wrap#0#if#0#wrap#end: mov r14d, 0 ; (SET) mov ebx, r14d ; (SET) sub ebx, 1 ; (STD_OP) mov r14d, ebx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable vo ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov dword [rbp - 332], r14d ; (SET) mov rax, qword [rbp - 328] ; (SET) mov ebx, dword [rbp - 332] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push mov qword [rbp - 272], 3 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r12 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.mul sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rsi, qword [rel compile._#Var.add#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 352], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) mov rdx, qword [rbp - 352] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Var.add#1#wrap#end compile._#Var.add#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rsi, qword [rel compile._#Var.add#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op jmp compile._#Var.add#1#wrap#end compile._#Var.add#1#wrap#1#if#end: compile._#Var.add#1#wrap#end: compile._#Var.add#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.sub: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.sub#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.sub#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.sub#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub r8, qword [rsi] ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Var.sub#end jmp compile._#Var.sub#0#wrap#end compile._#Var.sub#0#wrap#0#if#end: compile._#Var.sub#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8d, eax ; (SET) cmp r8d, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.sub#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref_idx mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for local variable vl mov qword [rbp - 96], 0 ; (SET) mov r8, r13 ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.sub#1#wrap#0#if#0#wrap#0#if#end mov qword [rbp - 88], 8 ; (SET) jmp compile._#Var.sub#1#wrap#0#if#0#wrap#end compile._#Var.sub#1#wrap#0#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Var.sub#1#wrap#0#if#0#wrap#end compile._#Var.sub#1#wrap#0#if#0#wrap#1#if#end: compile._#Var.sub#1#wrap#0#if#0#wrap#end: mov r14d, 0 ; (SET) mov ebx, r14d ; (SET) sub ebx, 1 ; (STD_OP) mov r14d, ebx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable vo ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov dword [rbp - 332], r14d ; (SET) mov rax, qword [rbp - 328] ; (SET) mov ebx, dword [rbp - 332] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push mov qword [rbp - 272], 3 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r12 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.mul sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rsi, qword [rel compile._#Var.sub#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 352], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) mov rdx, qword [rbp - 352] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Var.sub#1#wrap#end compile._#Var.sub#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rsi, qword [rel compile._#Var.sub#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op jmp compile._#Var.sub#1#wrap#end compile._#Var.sub#1#wrap#1#if#end: compile._#Var.sub#1#wrap#end: compile._#Var.sub#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.and: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.and#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.and#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.and#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) and r8, qword [rsi] ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Var.and#end jmp compile._#Var.and#0#wrap#end compile._#Var.and#0#wrap#0#if#end: compile._#Var.and#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rsi, qword [rel compile._#Var.and#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op compile._#Var.and#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.or: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.or#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.or#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.or#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) or r8, qword [rsi] ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Var.or#end jmp compile._#Var.or#0#wrap#end compile._#Var.or#0#wrap#0#if#end: compile._#Var.or#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rsi, qword [rel compile._#Var.or#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op compile._#Var.or#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.xor: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.xor#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.xor#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.xor#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) xor r8, qword [rsi] ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Var.xor#end jmp compile._#Var.xor#0#wrap#end compile._#Var.xor#0#wrap#0#if#end: compile._#Var.xor#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rsi, qword [rel compile._#Var.xor#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op compile._#Var.xor#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.mul: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r11, rcx ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.mul#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rdi, [rbp - 72] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.mul#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.mul#0#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) imul r8, qword [rsi] ; (MUL) mov qword [rbx], r8 ; (SET) jmp compile._#Var.mul#end jmp compile._#Var.mul#0#wrap#end compile._#Var.mul#0#wrap#0#if#end: compile._#Var.mul#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r13, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 73] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.mul#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], 1 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile.reg_string mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#0#if#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Var.mul#1#wrap#end compile._#Var.mul#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.mul#1#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.mul#1#wrap#end compile._#Var.mul#1#wrap#1#if#end: compile._#Var.mul#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete compile._#Var.mul#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._div: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r11, rcx ; (SET) mov r12, rdx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], 1 ; (SET) mov qword [rbp - 80], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile.reg_string sub rsp, 8 ; Create stack space for local variable rstr mov qword [rbp - 72], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], 3 ; (SET) mov qword [rbp - 88], r15 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile.reg_string mov r13, rax ; (SET) jmp compile._#Var._div#0#wrap#end compile._#Var._div#0#wrap#0#if#end: compile._#Var._div#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r14 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 73], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 81] ; (SET) lea rsp, [rbp - 73] ; Free stack space (freeing tmp variables) call compile._#Var.is_signed mov bl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#0#if#end cmp r15, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#0#if#0#wrap#end compile._#Var._div#4#wrap#0#if#0#wrap#0#if#end: cmp r15, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#0#if#0#wrap#end compile._#Var._div#4#wrap#0#if#0#wrap#1#if#end: cmp r15, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#0#if#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#0#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#0#if#0#wrap#end compile._#Var._div#4#wrap#0#if#0#wrap#2#if#end: cmp r15, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#0#if#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#0#if#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#0#if#0#wrap#end compile._#Var._div#4#wrap#0#if#0#wrap#3#if#end: compile._#Var._div#4#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#end compile._#Var._div#4#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c cmp r15, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#1#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#1#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#1#if#1#wrap#end compile._#Var._div#4#wrap#1#if#1#wrap#0#if#end: cmp r15, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#1#if#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#1#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#1#if#1#wrap#end compile._#Var._div#4#wrap#1#if#1#wrap#1#if#end: cmp r15, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#1#if#1#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#1#if#1#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#1#if#1#wrap#end compile._#Var._div#4#wrap#1#if#1#wrap#2#if#end: cmp r15, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#4#wrap#1#if#1#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#1#if#1#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#1#if#1#wrap#end compile._#Var._div#4#wrap#1#if#1#wrap#3#if#end: compile._#Var._div#4#wrap#1#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#4#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._div#4#wrap#end compile._#Var._div#4#wrap#1#if#end: compile._#Var._div#4#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete cmp r15, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var._div#6#wrap#0#if#0#bool#end cmp r12, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Var._div#6#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._div#6#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._div#6#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 72], rax ; (SET) jmp compile._#Var._div#6#wrap#end compile._#Var._div#6#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], r15 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile.reg_string mov qword [rbp - 72], rax ; (SET) jmp compile._#Var._div#6#wrap#end compile._#Var._div#6#wrap#1#if#end: compile._#Var._div#6#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r14 ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r10 ; (SET) mov rsi, qword [rel compile._#Var._div#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _delete compile._#Var._div#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.div: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.div#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.div#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.div#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rax, r8 ; (DIV) cqo idiv qword [rsi] mov r8, rax ; (DIV) mov qword [rbx], r8 ; (SET) jmp compile._#Var.div#end jmp compile._#Var.div#0#wrap#end compile._#Var.div#0#wrap#0#if#end: compile._#Var.div#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._div compile._#Var.div#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.mod: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Var.mod#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Var.mod#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.mod#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rax, r8 ; (DIV) cqo idiv qword [rsi] mov r8, rdx ; (DIV) mov qword [rbx], r8 ; (SET) jmp compile._#Var.mod#end jmp compile._#Var.mod#0#wrap#end compile._#Var.mod#0#wrap#0#if#end: compile._#Var.mod#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], 4 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._div compile._#Var.mod#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._unary: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._unary#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r14, rax ; (SET) cmp r14, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._unary#2#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#2#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._unary#2#wrap#0#if#0#wrap#end compile._#Var._unary#2#wrap#0#if#0#wrap#0#if#end: cmp r14, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._unary#2#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#2#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._unary#2#wrap#0#if#0#wrap#end compile._#Var._unary#2#wrap#0#if#0#wrap#1#if#end: cmp r14, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._unary#2#wrap#0#if#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#2#wrap#0#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._unary#2#wrap#0#if#0#wrap#end compile._#Var._unary#2#wrap#0#if#0#wrap#2#if#end: cmp r14, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._unary#2#wrap#0#if#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#2#wrap#0#if#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var._unary#2#wrap#0#if#0#wrap#end compile._#Var._unary#2#wrap#0#if#0#wrap#3#if#end: compile._#Var._unary#2#wrap#0#if#0#wrap#end: jmp compile._#Var._unary#2#wrap#end compile._#Var._unary#2#wrap#0#if#end: compile._#Var._unary#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var._unary#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Var._unary#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.not: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.not#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) not qword qword [rsi] ; (UNARY) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) jmp compile._#Var.not#end jmp compile._#Var.not#0#wrap#end compile._#Var.not#0#wrap#0#if#end: compile._#Var.not#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel compile._#Var.not#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._unary compile._#Var.not#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.neg: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.neg#0#wrap#0#if#end mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov r8, r12 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub r8, qword [rsi] ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Var.neg#end jmp compile._#Var.neg#0#wrap#end compile._#Var.neg#0#wrap#0#if#end: compile._#Var.neg#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel compile._#Var.neg#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._unary compile._#Var.neg#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.inc: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.inc#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) jmp compile._#Var.inc#end jmp compile._#Var.inc#0#wrap#end compile._#Var.inc#0#wrap#0#if#end: compile._#Var.inc#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8d, eax ; (SET) cmp r8d, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.inc#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref_idx mov r12, rax ; (SET) sub rsp, 88 ; Create stack space for local variable vv mov qword [rbp - 96], 0 ; (SET) mov r8, r12 ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.inc#1#wrap#0#if#0#wrap#0#if#end mov qword [rbp - 88], 8 ; (SET) jmp compile._#Var.inc#1#wrap#0#if#0#wrap#end compile._#Var.inc#1#wrap#0#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Var.inc#1#wrap#0#if#0#wrap#end compile._#Var.inc#1#wrap#0#if#0#wrap#1#if#end: compile._#Var.inc#1#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov rsi, qword [rel compile._#Var.inc#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) mov rdx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op jmp compile._#Var.inc#1#wrap#end compile._#Var.inc#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel compile._#Var.inc#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._unary jmp compile._#Var.inc#1#wrap#end compile._#Var.inc#1#wrap#1#if#end: compile._#Var.inc#1#wrap#end: compile._#Var.inc#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.dec: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.dec#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) jmp compile._#Var.dec#end jmp compile._#Var.dec#0#wrap#end compile._#Var.dec#0#wrap#0#if#end: compile._#Var.dec#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8d, eax ; (SET) cmp r8d, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.dec#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref_idx mov r12, rax ; (SET) sub rsp, 88 ; Create stack space for local variable vv mov qword [rbp - 96], 0 ; (SET) mov r8, r12 ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.dec#1#wrap#0#if#0#wrap#0#if#end mov qword [rbp - 88], 8 ; (SET) jmp compile._#Var.dec#1#wrap#0#if#0#wrap#end compile._#Var.dec#1#wrap#0#if#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Var.dec#1#wrap#0#if#0#wrap#end compile._#Var.dec#1#wrap#0#if#0#wrap#1#if#end: compile._#Var.dec#1#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov rsi, qword [rel compile._#Var.dec#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) mov rdx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.standard_op jmp compile._#Var.dec#1#wrap#end compile._#Var.dec#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel compile._#Var.dec#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._unary jmp compile._#Var.dec#1#wrap#end compile._#Var.dec#1#wrap#1#if#end: compile._#Var.dec#1#wrap#end: compile._#Var.dec#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.test: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.test#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.in_mem mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.test#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.type_size mov r13, rax ; (SET) cmp r13, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.test#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.test#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.test#1#wrap#0#if#0#wrap#end compile._#Var.test#1#wrap#0#if#0#wrap#0#if#end: cmp r13, 2 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.test#1#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.test#1#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.test#1#wrap#0#if#0#wrap#end compile._#Var.test#1#wrap#0#if#0#wrap#1#if#end: cmp r13, 4 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.test#1#wrap#0#if#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.test#1#wrap#0#if#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.test#1#wrap#0#if#0#wrap#end compile._#Var.test#1#wrap#0#if#0#wrap#2#if#end: cmp r13, 8 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.test#1#wrap#0#if#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.test#1#wrap#0#if#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.test#1#wrap#0#if#0#wrap#end compile._#Var.test#1#wrap#0#if#0#wrap#3#if#end: compile._#Var.test#1#wrap#0#if#0#wrap#end: jmp compile._#Var.test#1#wrap#end compile._#Var.test#1#wrap#0#if#end: compile._#Var.test#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Var.test#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Var.test#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.cmov: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r11, rcx ; (SET) mov r12, rdx ; (SET) mov r13, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov qword [rbp - 88], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable ax ; putting struct address into register lea rdi, [rbp - 240] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 192], 1 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rax ; (SET) mov qword [rbp - 256], r10 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 264], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) mov rcx, qword [rbp - 264] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r sub rsp, 8 ; Create stack space for local variable ax_str mov qword [rbp - 248], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 256], rsi ; (SET) mov qword [rbp - 264], r10 ; (SET) mov rax, qword [rbp - 256] ; (SET) mov rbx, qword [rbp - 264] ; (SET) lea rsp, [rbp - 248] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l sub rsp, 8 ; Create stack space for local variable to_str mov qword [rbp - 256], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], r10 ; (SET) mov rsi, qword [rbp - 256] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 256] ; (SET_PRM_R) mov qword [rbp - 264], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], r10 ; (SET) mov rsi, qword [rbp - 248] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 248] ; (SET_PRM_R) mov qword [rbp - 264], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], r10 ; (SET) mov rsi, qword [rel compile._#Var.cmov#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c compile._#Var.cmov#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.cset: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r11, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov qword [rbp - 80], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 152] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable ax ; putting struct address into register lea rdi, [rbp - 240] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 192], 1 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rax ; (SET) mov qword [rbp - 256], r10 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 264], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) mov rcx, qword [rbp - 264] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_r mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov qword [rbp - 256], r10 ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#Var._set_prim_l mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r10 ; (SET) mov qword [rbp - 256], r13 ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r13 ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r10 ; (SET) mov qword [rbp - 256], r12 ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r12 ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r10 ; (SET) mov rsi, qword [rel compile._#Var.cset#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c compile._#Var.cset#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var.member: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.member#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out mov qword [rbp - 96], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.member#end jmp compile._#Var.member#0#wrap#end compile._#Var.member#0#wrap#0#if#end: compile._#Var.member#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Struct.get_member mov r13, rax ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.member#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var.member#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out mov qword [rbp - 96], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.member#end jmp compile._#Var.member#1#wrap#end compile._#Var.member#1#wrap#0#if#end: compile._#Var.member#1#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], r10 ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.member#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], 5 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var._set_struct_r mov qword [rbp - 184], 5 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov dword [rbp - 244], 0 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov ebx, dword [rbp - 244] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push mov rcx, qword [rbp - 176] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.member#2#wrap#0#if#0#wrap#0#if#end mov r14, qword [rbp - 176] ; (SET) cmp r14, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, 0 ; (SET) sub rbx, r14 ; (STD_OP) mov r14, rbx ; (SET) jmp compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Var.member#2#wrap#0#if#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov qword [rbp - 248], r15 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov rsi, qword [rel compile._#Var.member#2#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 176], 0 ; (SET) jmp compile._#Var.member#2#wrap#0#if#0#wrap#end compile._#Var.member#2#wrap#0#if#0#wrap#0#if#end: compile._#Var.member#2#wrap#0#if#0#wrap#end: jmp compile._#Var.member#2#wrap#end compile._#Var.member#2#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 184], rsi ; (SET) mov rbx, qword [rbp - 176] ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) add rbx, qword [rsi] ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Var.member#2#wrap#end compile._#Var.member#2#wrap#1#if#end: compile._#Var.member#2#wrap#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var.member#end compile._#Var.member#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._len: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.first_non_ref mov r13d, eax ; (SET) cmp r13d, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._len#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._len#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._len#0#wrap#end compile._#Var._len#0#wrap#0#if#end: cmp r13d, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._len#0#wrap#1#if#end movsxd rsi, r13d ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Var._len#0#wrap#end compile._#Var._len#0#wrap#1#if#end: cmp r13d, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._len#0#wrap#2#if#end mov qword [rbp - 88], 8 ; (SET) jmp compile._#Var._len#0#wrap#end compile._#Var._len#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Var._len#0#wrap#end compile._#Var._len#0#wrap#3#if#end: compile._#Var._len#0#wrap#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Var._len#end compile._#Var._len#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Var._print: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._print#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._print#3#wrap#end compile._#Var._print#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#3#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._print#3#wrap#end compile._#Var._print#3#wrap#1#if#end: compile._#Var._print#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._print#6#loop#end compile._#Var._print#6#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#6#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) movsxd rsi, dword [r12] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num compile._#Var._print#6#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._print#6#loop#end jmp compile._#Var._print#6#loop#start compile._#Var._print#6#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Var._print#7#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#7#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Var._print#7#wrap#end compile._#Var._print#7#wrap#0#if#end: compile._#Var._print#7#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#10#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Var._print#11#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf compile._#Var._print#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.strcpy mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 88 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov byte [rbx], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 88 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 88 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.init compile._#Function.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._resolve_dlist: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, qword [rel NULL] ; (SET) mov r15, 1 ; (SET) sub rsp, 8 ; Create stack space for local variable stack_up mov qword [rbp - 64], 8 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 88 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Module.related_type sub rsp, 8 ; Create stack space for local variable s mov qword [rbp - 72], rax ; (SET) sub rsp, 88 ; Create stack space for local variable p sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 160] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._resolve_dlist#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call utils.strcpy mov qword [rbp - 160], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov dword [rbp - 172], 0 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov ebx, dword [rbp - 172] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push mov qword [rbp - 112], r15 ; (SET) mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Function._resolve_dlist#0#wrap#end compile._#Function._resolve_dlist#0#wrap#0#if#end: compile._#Function._resolve_dlist#0#wrap#end: cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#1#wrap#0#if#end jmp compile._#Function._resolve_dlist#end jmp compile._#Function._resolve_dlist#1#wrap#end compile._#Function._resolve_dlist#1#wrap#0#if#end: compile._#Function._resolve_dlist#1#wrap#end: sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 72], 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#2#loop#end compile._#Function._resolve_dlist#2#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], rsi ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TYPE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#2#loop#0#wrap#0#if#end mov r13, r14 ; (SET) jmp compile._#Function._resolve_dlist#2#loop#0#wrap#end compile._#Function._resolve_dlist#2#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#end cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Function._resolve_dlist#end jmp compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#end compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#0#if#end: compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable p sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov qword [rbp - 176], r13 ; (SET) mov qword [rbp - 184], r14 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) mov rcx, qword [rbp - 184] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov qword [rbp - 176], r11 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var._resolve_type sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 161], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 162], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 170], rax ; (SET) mov rax, qword [rbp - 170] ; (SET) lea rsp, [rbp - 162] ; Free stack space (freeing tmp variables) call compile._#Var.regable mov r8b, byte [rbp - 162] ; (SET) mov bl, byte [rbp - 161] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#0#if#0#bool#end cmp r15, 7 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#0#if#end mov qword [rbp - 112], r15 ; (SET) mov rbx, r15 ; (SET) inc r15 ; (UNARY) jmp compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#end compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#0#if#end: mov rbx, 0 ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 112], rbx ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rbx, qword [rbp - 64] ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 176], rax ; (SET) mov rax, qword [rbp - 176] ; (SET) lea rsp, [rbp - 168] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) add rbx, rax ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) jmp compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#end compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#1#if#end: compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#1#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Function._resolve_dlist#2#loop#0#wrap#end compile._#Function._resolve_dlist#2#loop#0#wrap#1#if#end: compile._#Function._resolve_dlist#2#loop#0#wrap#end: compile._#Function._resolve_dlist#2#loop#rep: mov rbx, qword [rbp - 72] ; (SET) inc qword qword [rbp - 72] ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_dlist#2#loop#end jmp compile._#Function._resolve_dlist#2#loop#start compile._#Function._resolve_dlist#2#loop#end: compile._#Function._resolve_dlist#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._resolve_tlist: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 50 ; Create stack space for local variable out_id mov rsi, qword [rel compile._#Function._resolve_tlist#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov r14, 1 ; (SET) mov r15, 8 ; (SET) sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 114], 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 114] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_tlist#1#loop#end compile._#Function._resolve_tlist#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 122], rsi ; (SET) mov rsi, qword [rbp - 114] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rax, qword [rbp - 122] ; (SET) mov rbx, qword [rbp - 130] ; (SET) lea rsp, [rbp - 114] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TYPE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#end sub rsp, 88 ; Create stack space for local variable r sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 202] ; initial struct addr move (SET_STR_R) mov qword [rbp - 210], rax ; (SET) mov qword [rbp - 218], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 106] ; initial struct addr move (SET_STR_R) mov qword [rbp - 226], rsi ; (SET) mov rax, qword [rbp - 210] ; (SET) mov rbx, qword [rbp - 218] ; (SET) mov rcx, qword [rbp - 226] ; (SET) lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) call compile._#Var.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 202] ; initial struct addr move (SET_STR_R) mov qword [rbp - 210], rax ; (SET) mov qword [rbp - 218], r11 ; (SET) mov rax, qword [rbp - 210] ; (SET) mov rbx, qword [rbp - 218] ; (SET) lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) call compile._#Var._resolve_type mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 130], rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 138], rsi ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 203], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 204], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 202] ; initial struct addr move (SET_STR_R) mov qword [rbp - 212], rax ; (SET) mov rax, qword [rbp - 212] ; (SET) lea rsp, [rbp - 204] ; Free stack space (freeing tmp variables) call compile._#Var.regable mov r8b, byte [rbp - 204] ; (SET) mov bl, byte [rbp - 203] ; (SET) lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end cmp r14, 7 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#end mov qword [rbp - 154], r14 ; (SET) cmp r14, 4 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end mov rbx, qword [rbp - 154] ; (SET) add rbx, 4 ; (STD_OP) mov qword [rbp - 154], rbx ; (SET) jmp compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#1#wrap#end: mov rbx, r14 ; (SET) inc r14 ; (UNARY) jmp compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#end compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#0#if#end: mov rbx, 0 ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 154], rbx ; (SET) mov qword [rbp - 146], r15 ; (SET) mov rbx, r15 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 210], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 202] ; initial struct addr move (SET_STR_R) mov qword [rbp - 218], rax ; (SET) mov rax, qword [rbp - 218] ; (SET) lea rsp, [rbp - 210] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov rbx, qword [rbp - 210] ; (SET) lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) add rbx, rax ; (STD_OP) mov r15, rbx ; (SET) jmp compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#end compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 210], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 202] ; initial struct addr move (SET_STR_R) mov qword [rbp - 218], rsi ; (SET) mov rax, qword [rbp - 210] ; (SET) mov rbx, qword [rbp - 218] ; (SET) lea rsp, [rbp - 202] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Function._resolve_tlist#1#loop#0#wrap#end compile._#Function._resolve_tlist#1#loop#0#wrap#0#if#end: compile._#Function._resolve_tlist#1#loop#0#wrap#end: compile._#Function._resolve_tlist#1#loop#rep: mov rbx, qword [rbp - 114] ; (SET) inc qword qword [rbp - 114] ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 114] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_tlist#1#loop#end jmp compile._#Function._resolve_tlist#1#loop#start compile._#Function._resolve_tlist#1#loop#end: compile._#Function._resolve_tlist#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._resolve_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 88 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._resolve_dlist jmp compile._#Function._resolve_type#0#wrap#0#if#0#wrap#end compile._#Function._resolve_type#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._resolve_type#0#wrap#0#if#0#wrap#end: jmp compile._#Function._resolve_type#end jmp compile._#Function._resolve_type#0#wrap#end compile._#Function._resolve_type#0#wrap#0#if#end: compile._#Function._resolve_type#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._resolve_dlist ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#1#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) jmp compile._#Function._resolve_type#1#wrap#0#if#0#wrap#end compile._#Function._resolve_type#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._resolve_type#1#wrap#0#if#0#wrap#end: jmp compile._#Function._resolve_type#1#wrap#end compile._#Function._resolve_type#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 88 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._resolve_dlist jmp compile._#Function._resolve_type#1#wrap#end compile._#Function._resolve_type#1#wrap#1#if#end: compile._#Function._resolve_type#1#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._resolve_tlist jmp compile._#Function._resolve_type#2#wrap#end compile._#Function._resolve_type#2#wrap#0#if#end: compile._#Function._resolve_type#2#wrap#end: mov r14, 0 ; (SET) mov r15, 0 ; (SET) sub rsp, 8 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 72], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#3#loop#end compile._#Function._resolve_type#3#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], rsi ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 64], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#3#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size sub rsp, 8 ; Create stack space for local variable vsz mov qword [rbp - 80], rax ; (SET) mov rbx, r14 ; (SET) add rbx, qword [rbp - 80] ; (STD_OP) mov r14, rbx ; (SET) jmp compile._#Function._resolve_type#3#loop#0#wrap#end compile._#Function._resolve_type#3#loop#0#wrap#0#if#end: compile._#Function._resolve_type#3#loop#0#wrap#end: compile._#Function._resolve_type#3#loop#rep: mov rbx, qword [rbp - 72] ; (SET) inc qword qword [rbp - 72] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#3#loop#end jmp compile._#Function._resolve_type#3#loop#start compile._#Function._resolve_type#3#loop#end: sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 72], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#4#loop#end compile._#Function._resolve_type#4#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 80], rsi ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 64], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#4#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 80] ; (SET) lea rsp, [rbp - 72] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size sub rsp, 8 ; Create stack space for local variable vsz mov qword [rbp - 80], rax ; (SET) mov rbx, r15 ; (SET) add rbx, qword [rbp - 80] ; (STD_OP) mov r15, rbx ; (SET) jmp compile._#Function._resolve_type#4#loop#0#wrap#end compile._#Function._resolve_type#4#loop#0#wrap#0#if#end: compile._#Function._resolve_type#4#loop#0#wrap#end: compile._#Function._resolve_type#4#loop#rep: mov rbx, qword [rbp - 72] ; (SET) inc qword qword [rbp - 72] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#4#loop#end jmp compile._#Function._resolve_type#4#loop#start compile._#Function._resolve_type#4#loop#end: cmp r15, r14 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._resolve_type#5#wrap#0#if#end mov rbx, r15 ; (SET) sub rbx, r14 ; (STD_OP) sub rsp, 8 ; Create stack space for local variable padding mov qword [rbp - 72], rbx ; (SET) sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 80], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 80] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._resolve_type#5#wrap#0#if#0#loop#end compile._#Function._resolve_type#5#wrap#0#if#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 88], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], rsi ; (SET) mov rsi, qword [rbp - 80] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 80] ; Free stack space (freeing tmp variables) mov qword [rbp - 64], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable off mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov r9, qword [rbp - 88] ; (SET) add r9, qword [rbp - 72] ; (STD_OP) mov qword [r8], r9 ; (SET) compile._#Function._resolve_type#5#wrap#0#if#0#loop#rep: mov r8, qword [rbp - 80] ; (SET) inc qword qword [rbp - 80] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 80] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._resolve_type#5#wrap#0#if#0#loop#end jmp compile._#Function._resolve_type#5#wrap#0#if#0#loop#start compile._#Function._resolve_type#5#wrap#0#if#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rsi, qword [rbp - 72] ; (SET_PRM_R) mov qword [r8], rsi ; (SET) jmp compile._#Function._resolve_type#5#wrap#end compile._#Function._resolve_type#5#wrap#0#if#end: compile._#Function._resolve_type#5#wrap#end: compile._#Function._resolve_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compute_scope_vars_loop: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compute_scope_vars_loop#0#loop#end compile._#Function._compute_scope_vars_loop#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DECL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compute_scope_vars_loop#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.mk_aware_node jmp compile._#Function._compute_scope_vars_loop#0#loop#0#wrap#end compile._#Function._compute_scope_vars_loop#0#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.precheck_stmt jmp compile._#Function._compute_scope_vars_loop#0#loop#0#wrap#end compile._#Function._compute_scope_vars_loop#0#loop#0#wrap#1#if#end: compile._#Function._compute_scope_vars_loop#0#loop#0#wrap#end: compile._#Function._compute_scope_vars_loop#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compute_scope_vars_loop#0#loop#end jmp compile._#Function._compute_scope_vars_loop#0#loop#start compile._#Function._compute_scope_vars_loop#0#loop#end: compile._#Function._compute_scope_vars_loop#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compute_scope_vars: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compute_scope_vars#0#loop#end compile._#Function._compute_scope_vars#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.mk_aware compile._#Function._compute_scope_vars#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compute_scope_vars#0#loop#end jmp compile._#Function._compute_scope_vars#0#loop#start compile._#Function._compute_scope_vars#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._first_stmt_off mov r13, rax ; (SET) cmp r13, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compute_scope_vars#1#wrap#0#if#end jmp compile._#Function._compute_scope_vars#end jmp compile._#Function._compute_scope_vars#1#wrap#end compile._#Function._compute_scope_vars#1#wrap#0#if#end: compile._#Function._compute_scope_vars#1#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop compile._#Function._compute_scope_vars#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._call_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 104 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 89 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 184], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) mov rcx, qword [rbp - 184] ; (SET) mov rdx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.end ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Function._call_label#end compile._#Function._call_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._build_func: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 104 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov qword [rbp - 176], r11 ; (SET) mov qword [rbp - 184], r12 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) mov rcx, qword [rbp - 184] ; (SET) mov rdx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.init mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 136 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._build_func#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_h sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov qword [rbp - 176], r13 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_h sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_h sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._build_func#0#wrap#end compile._#Function._build_func#0#wrap#0#if#end: compile._#Function._build_func#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.place_base_label sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r12 ; (SET) mov rsi, qword [rel compile._#Function._build_func#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._build_func#9#loop#end compile._#Function._build_func#9#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], rsi ; (SET) mov qword [rbp - 176], r14 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref cmp al, 0 je compile._#Function._build_func#9#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var.top_ptrc mov r15, rax ; (SET) sub rsp, 4 ; Create stack space for local variable set mov dword [rbp - 164], 0 ; (SET) mov ebx, dword [rbp - 164] ; (SET) sub ebx, 1 ; (STD_OP) mov dword [rbp - 164], ebx ; (SET) mov esi, dword [rbp - 164] ; (SET_PRM_R) mov dword [r15], esi ; (SET) jmp compile._#Function._build_func#9#loop#0#wrap#end compile._#Function._build_func#9#loop#0#wrap#0#if#end: compile._#Function._build_func#9#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 160] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov qword [rbp - 176], r13 ; (SET) mov qword [rbp - 184], r13 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) mov rcx, qword [rbp - 184] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.mk_set_var compile._#Function._build_func#9#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._build_func#9#loop#end jmp compile._#Function._build_func#9#loop#start compile._#Function._build_func#9#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct jmp compile._#Function._build_func#end compile._#Function._build_func#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._end_func: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.place_end_label sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Function._end_func#9#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.end compile._#Function._end_func#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._first_stmt_off: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._first_stmt_off#0#wrap#0#if#end ; STARTING RETURN mov rbx, r11 ; (SET) sub rbx, 1 ; (STD_OP) mov rax, rbx ; (SET) jmp compile._#Function._first_stmt_off#end jmp compile._#Function._first_stmt_off#0#wrap#end compile._#Function._first_stmt_off#0#wrap#0#if#end: compile._#Function._first_stmt_off#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._first_stmt_off#1#wrap#0#if#end mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._first_stmt_off#1#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) jmp compile._#Function._first_stmt_off#1#wrap#0#if#0#wrap#end compile._#Function._first_stmt_off#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._first_stmt_off#1#wrap#0#if#0#wrap#end: jmp compile._#Function._first_stmt_off#1#wrap#end compile._#Function._first_stmt_off#1#wrap#0#if#end: compile._#Function._first_stmt_off#1#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._first_stmt_off#2#wrap#0#if#end mov rbx, r11 ; (SET) inc r11 ; (UNARY) jmp compile._#Function._first_stmt_off#2#wrap#end compile._#Function._first_stmt_off#2#wrap#0#if#end: compile._#Function._first_stmt_off#2#wrap#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Function._first_stmt_off#end compile._#Function._first_stmt_off#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._first_stmt_off mov r13, rax ; (SET) sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r10 ; (SET) mov qword [rbp - 176], r11 ; (SET) mov qword [rbp - 184], r12 ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) mov rcx, qword [rbp - 184] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Function._build_func ; putting struct address into register lea rdi, [rbp - 160] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable fscope ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct cmp r13, 0 mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r14 ; (SET) mov qword [rbp - 296], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compile_statements jmp compile._#Function._compile#0#wrap#end compile._#Function._compile#0#wrap#0#if#end: compile._#Function._compile#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r12 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._end_func compile._#Function._compile#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_statements: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) mov r14, qword [rel NULL] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#end compile._#Function._compile_statements#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FLOW_CONTROL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_flow_control jmp compile._#Function._compile_statements#0#loop#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ASM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#0#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_statements#0#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_statements#0#loop#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_statements#0#loop#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DECL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_decl jmp compile._#Function._compile_statements#0#loop#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#0#wrap#3#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r14 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp cmp al, 0 je compile._#Function._compile_statements#0#loop#0#wrap#3#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov byte [rbp - 249], 1 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov cl, byte [rbp - 249] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_statements#0#loop#0#wrap#3#if#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#3#if#0#wrap#0#if#end: compile._#Function._compile_statements#0#loop#0#wrap#3#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_statements#0#loop#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_IF_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if mov r13, rax ; (SET) jmp compile._#Function._compile_statements#0#loop#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#4#if#end: ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LOOP_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_loop jmp compile._#Function._compile_statements#0#loop#0#wrap#end compile._#Function._compile_statements#0#loop#0#wrap#5#if#end: compile._#Function._compile_statements#0#loop#0#wrap#end: compile._#Function._compile_statements#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_statements#0#loop#end jmp compile._#Function._compile_statements#0#loop#start compile._#Function._compile_statements#0#loop#end: compile._#Function._compile_statements#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_cf_pre: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, qword [rel NULL] ; (SET) mov r14b, 0 ; (SET) sub rsp, 88 ; Create stack space for local variable v mov r15, 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#end compile._#Function._compile_cf_pre#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], r15 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FLOW_CONTROL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._compile_flow_control jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ASM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DECL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._compile_decl jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable count mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov r8, r15 ; (SET) add r8, 1 ; (STD_OP) cmp r8, qword [rbp - 152] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#0#if#end mov r14b, 1 ; (SET) jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp cmp al, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 160], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov byte [rbp - 169], 1 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) mov cl, byte [rbp - 169] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#0#if#end: compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#1#if#end: compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#0#wrap#end: jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_IF_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov qword [rbp - 176], r15 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) mov rdx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if mov r15, rax ; (SET) jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#4#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LOOP_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._compile_loop jmp compile._#Function._compile_cf_pre#0#loop#0#wrap#end compile._#Function._compile_cf_pre#0#loop#0#wrap#5#if#end: compile._#Function._compile_cf_pre#0#loop#0#wrap#end: compile._#Function._compile_cf_pre#0#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#0#loop#end jmp compile._#Function._compile_cf_pre#0#loop#start compile._#Function._compile_cf_pre#0#loop#end: cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#1#wrap#0#if#end mov r14b, 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 153], rax ; (SET) mov rax, qword [rbp - 153] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call compile._#Var.is_bool mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 152], rax ; (SET) mov rcx, qword [rbp - 96] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#bool#end mov rcx, qword [rbp - 88] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: mov rcx, qword [rbp - 96] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Var.test sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call _delete mov r14b, 1 ; (SET) jmp compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#end compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_cf_pre#1#wrap#0#if#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 153], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_pre#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rsi ; (SET) mov byte [rbp - 161], 1 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov cl, byte [rbp - 161] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_cf_pre#1#wrap#0#if#1#wrap#end compile._#Function._compile_cf_pre#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_cf_pre#1#wrap#0#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_cf_pre#1#wrap#end compile._#Function._compile_cf_pre#1#wrap#0#if#end: compile._#Function._compile_cf_pre#1#wrap#end: ; STARTING RETURN mov al, r14b ; (SET) jmp compile._#Function._compile_cf_pre#end compile._#Function._compile_cf_pre#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_cf_post: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) mov r14b, sil ; (SET) mov r15, qword [rel NULL] ; (SET) sub rsp, 1 ; Create stack space for local variable last_var mov byte [rbp - 57], 0 ; (SET) sub rsp, 88 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 153], 0 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 153] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#end compile._#Function._compile_cf_post#0#loop#start: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], rsi ; (SET) mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FLOW_CONTROL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov qword [rbp - 169], r11 ; (SET) mov qword [rbp - 177], r15 ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) mov rcx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Function._compile_flow_control jmp compile._#Function._compile_cf_post#0#loop#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ASM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_cf_post#0#loop#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DECL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov qword [rbp - 169], r11 ; (SET) mov qword [rbp - 177], r15 ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) mov rcx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Function._compile_decl jmp compile._#Function._compile_cf_post#0#loop#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 249], r10 ; (SET) mov qword [rbp - 257], r11 ; (SET) mov qword [rbp - 265], r15 ; (SET) mov rax, qword [rbp - 249] ; (SET) mov rbx, qword [rbp - 257] ; (SET) mov rcx, qword [rbp - 265] ; (SET) lea rsp, [rbp - 241] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 241] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 145] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 241] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable count mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov r8, qword [rbp - 153] ; (SET) add r8, 1 ; (STD_OP) cmp r8, qword [rbp - 161] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#0#if#end mov byte [rbp - 57], 1 ; (SET) jmp compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 169], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp cmp al, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 169], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 177], rsi ; (SET) mov byte [rbp - 178], 1 ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) mov cl, byte [rbp - 178] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#0#if#end: compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#1#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 169], rax ; (SET) mov rax, qword [rbp - 169] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#1#if#end: compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#0#wrap#end: jmp compile._#Function._compile_cf_post#0#loop#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_IF_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov qword [rbp - 169], r11 ; (SET) mov qword [rbp - 177], r13 ; (SET) mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) mov rcx, qword [rbp - 177] ; (SET) mov rdx, qword [rbp - 185] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if mov qword [rbp - 153], rax ; (SET) jmp compile._#Function._compile_cf_post#0#loop#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#4#if#end: ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LOOP_BLOCK] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r10 ; (SET) mov qword [rbp - 169], r11 ; (SET) mov qword [rbp - 177], r15 ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) mov rcx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Function._compile_loop jmp compile._#Function._compile_cf_post#0#loop#0#wrap#end compile._#Function._compile_cf_post#0#loop#0#wrap#5#if#end: compile._#Function._compile_cf_post#0#loop#0#wrap#end: compile._#Function._compile_cf_post#0#loop#rep: mov rbx, qword [rbp - 153] ; (SET) inc qword qword [rbp - 153] ; (UNARY) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 153] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#0#loop#end jmp compile._#Function._compile_cf_post#0#loop#start compile._#Function._compile_cf_post#0#loop#end: mov cl, byte [rbp - 57] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#1#wrap#0#if#end mov byte [rbp - 57], 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 146], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 154], rax ; (SET) mov rax, qword [rbp - 154] ; (SET) lea rsp, [rbp - 146] ; Free stack space (freeing tmp variables) call compile._#Var.is_bool mov bl, byte [rbp - 146] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable buf mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], r11 ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 161], rax ; (SET) mov rcx, qword [rbp - 97] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#bool#end mov rcx, qword [rbp - 89] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: mov rcx, qword [rbp - 97] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 169], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#Var.test sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call _delete mov byte [rbp - 57], 1 ; (SET) jmp compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#end compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_cf_post#1#wrap#0#if#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 146], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 154], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 162], rsi ; (SET) mov rax, qword [rbp - 154] ; (SET) mov rbx, qword [rbp - 162] ; (SET) lea rsp, [rbp - 146] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 146] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 153], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rsi ; (SET) mov byte [rbp - 162], 1 ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) mov cl, byte [rbp - 162] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_cf_post#1#wrap#0#if#1#wrap#end compile._#Function._compile_cf_post#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_cf_post#1#wrap#0#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 153], rax ; (SET) mov rax, qword [rbp - 153] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_cf_post#1#wrap#end compile._#Function._compile_cf_post#1#wrap#0#if#end: compile._#Function._compile_cf_post#1#wrap#end: mov cl, byte [rbp - 57] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#2#wrap#0#if#end cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) sub rsp, 8 ; Create stack space for local variable off mov qword [rbp - 153], rbx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 169], rsi ; (SET) mov rsi, qword [rbp - 153] ; (SET_PRM_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) mov r15, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 249], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 257], r10 ; (SET) mov qword [rbp - 265], r11 ; (SET) mov qword [rbp - 273], r15 ; (SET) mov rax, qword [rbp - 257] ; (SET) mov rbx, qword [rbp - 265] ; (SET) mov rcx, qword [rbp - 273] ; (SET) lea rsp, [rbp - 249] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 241] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 mov rbx, qword [rbp - 249] ; (SET) lea rsp, [rbp - 241] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp - 145] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 241] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable buf mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 169], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], r11 ; (SET) mov rax, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 169], rax ; (SET) mov rcx, qword [rbp - 97] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov rcx, qword [rbp - 89] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 170], al ; Mov after compare cmp byte byte [rbp - 170], 0 compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) cmp r8b, 0 je compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rsi, qword [rbp - 169] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: mov rcx, qword [rbp - 97] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 185], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#Var.test mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rsi, qword [rbp - 169] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 161] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 193], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 169] ; (SET_PRM_R) mov qword [rbp - 185], rsi ; (SET) mov rax, qword [rbp - 185] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call _delete mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 178], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 186], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 194], rsi ; (SET) mov rax, qword [rbp - 186] ; (SET) mov rbx, qword [rbp - 194] ; (SET) lea rsp, [rbp - 178] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov r8b, byte [rbp - 178] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 185], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 193], rsi ; (SET) mov byte [rbp - 194], 1 ; (SET) mov rax, qword [rbp - 185] ; (SET) mov rbx, qword [rbp - 193] ; (SET) mov cl, byte [rbp - 194] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 177], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 145] ; initial struct addr move (SET_STR_R) mov qword [rbp - 185], rax ; (SET) mov rax, qword [rbp - 185] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#Var.end mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 169] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#end compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_cf_post#2#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_cf_post#2#wrap#end compile._#Function._compile_cf_post#2#wrap#0#if#end: compile._#Function._compile_cf_post#2#wrap#end: compile._#Function._compile_cf_post#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_if_if: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if_if#0#wrap#0#if#end jmp compile._#Function._compile_if_if#end jmp compile._#Function._compile_if_if#0#wrap#end compile._#Function._compile_if_if#0#wrap#0#if#end: compile._#Function._compile_if_if#0#wrap#end: sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_if_if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Scope.gen_sub ; putting struct address into register lea rdi, [rbp - 160] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable s ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_SLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if_if#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r13 ; (SET) mov qword [rbp - 296], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r12 ; (SET) mov qword [rbp - 296], 1 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compile_cf_pre mov rbx, r14 ; (SET) add rbx, 1 ; (STD_OP) mov r14, rbx ; (SET) jmp compile._#Function._compile_if_if#2#wrap#end compile._#Function._compile_if_if#2#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r12 ; (SET) mov qword [rbp - 296], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop jmp compile._#Function._compile_if_if#2#wrap#end compile._#Function._compile_if_if#2#wrap#1#if#end: compile._#Function._compile_if_if#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r12 ; (SET) mov qword [rbp - 296], r14 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compile_statements ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r15 ; (SET) mov rsi, qword [rel compile._#Function._compile_if_if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r11 ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 272], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], r15 ; (SET) mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) mov rbx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], r15 ; (SET) mov rsi, qword [rel compile._#Function._compile_if_if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) mov rbx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rax ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#Scope.place_end_label sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rax ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#Scope.end compile._#Function._compile_if_if#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_if_elif: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ELIF_BLOCK] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if_elif#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Function._compile_if_elif#end jmp compile._#Function._compile_if_elif#0#wrap#end compile._#Function._compile_if_elif#0#wrap#0#if#end: compile._#Function._compile_if_elif#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if_if ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Function._compile_if_elif#end compile._#Function._compile_if_elif#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_if_else: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ELSE_BLOCK] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if_else#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Function._compile_if_else#end jmp compile._#Function._compile_if_else#0#wrap#end compile._#Function._compile_if_else#0#wrap#0#if#end: compile._#Function._compile_if_else#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if_if ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Function._compile_if_else#end compile._#Function._compile_if_else#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_if: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Scope.gen_sub ; putting struct address into register lea rdi, [rbp - 160] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable wrap ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r14 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if_if mov r15b, 1 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if#1#loop#end compile._#Function._compile_if#1#loop#start: mov rbx, r13 ; (SET) add rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if#1#loop#0#wrap#0#if#end mov r15b, 0 ; (SET) jmp compile._#Function._compile_if#1#loop#0#wrap#end compile._#Function._compile_if#1#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 265], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 273], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 281], rsi ; (SET) mov qword [rbp - 289], r14 ; (SET) mov rax, qword [rbp - 273] ; (SET) mov rbx, qword [rbp - 281] ; (SET) mov rcx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if_elif mov bl, byte [rbp - 265] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if#1#loop#0#wrap#1#if#0#wrap#0#if#end mov r15b, 0 ; (SET) jmp compile._#Function._compile_if#1#loop#0#wrap#1#if#0#wrap#end compile._#Function._compile_if#1#loop#0#wrap#1#if#0#wrap#0#if#end: compile._#Function._compile_if#1#loop#0#wrap#1#if#0#wrap#end: jmp compile._#Function._compile_if#1#loop#0#wrap#end compile._#Function._compile_if#1#loop#0#wrap#1#if#end: compile._#Function._compile_if#1#loop#0#wrap#end: compile._#Function._compile_if#1#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if#1#loop#end jmp compile._#Function._compile_if#1#loop#start compile._#Function._compile_if#1#loop#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if#2#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 265], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 273], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 281], rsi ; (SET) mov qword [rbp - 289], r14 ; (SET) mov rax, qword [rbp - 273] ; (SET) mov rbx, qword [rbp - 281] ; (SET) mov rcx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Function._compile_if_else mov bl, byte [rbp - 265] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_if#2#wrap#0#if#0#wrap#0#if#end mov rbx, r13 ; (SET) add rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) jmp compile._#Function._compile_if#2#wrap#0#if#0#wrap#end compile._#Function._compile_if#2#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_if#2#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_if#2#wrap#end compile._#Function._compile_if#2#wrap#0#if#end: compile._#Function._compile_if#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Scope.place_end_label sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Scope.end mov rbx, r13 ; (SET) sub rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Function._compile_if#end compile._#Function._compile_if#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_loop: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Scope.gen_sub ; putting struct address into register lea rdi, [rbp - 160] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable ls ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct mov r13, qword [rel NULL] ; (SET) mov r14, qword [rel NULL] ; (SET) mov r15, 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable first mov qword [rbp - 272], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_SLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 273], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 281], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 281] ; (SET) mov rbx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 273] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end mov r13, qword [rbp - 272] ; (SET) mov rbx, r15 ; (SET) inc r15 ; (UNARY) jmp compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 273], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 281], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 281] ; (SET) mov rbx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 273] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end mov r14, qword [rbp - 272] ; (SET) mov rbx, r15 ; (SET) inc r15 ; (UNARY) jmp compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_loop#1#wrap#0#if#0#wrap#end compile._#Function._compile_loop#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_loop#1#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_loop#1#wrap#end compile._#Function._compile_loop#1#wrap#0#if#end: compile._#Function._compile_loop#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#2#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], 1 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable second mov qword [rbp - 272], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_SLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 273], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 281], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 281] ; (SET) mov rbx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 273] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end mov r14, qword [rbp - 272] ; (SET) mov rbx, r15 ; (SET) inc r15 ; (UNARY) jmp compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_loop#2#wrap#0#if#0#wrap#end compile._#Function._compile_loop#2#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_loop#2#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_loop#2#wrap#end compile._#Function._compile_loop#2#wrap#0#if#end: compile._#Function._compile_loop#2#wrap#end: cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r13 ; (SET) mov qword [rbp - 296], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop jmp compile._#Function._compile_loop#3#wrap#end compile._#Function._compile_loop#3#wrap#0#if#end: compile._#Function._compile_loop#3#wrap#end: cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#4#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r14 ; (SET) mov qword [rbp - 296], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop jmp compile._#Function._compile_loop#4#wrap#end compile._#Function._compile_loop#4#wrap#0#if#end: compile._#Function._compile_loop#4#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], r12 ; (SET) mov qword [rbp - 296], r15 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) mov rdx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._compute_scope_vars_loop sub rsp, 1 ; Create stack space for local variable has_pre mov byte [rbp - 265], 0 ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 273], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 281], rsi ; (SET) mov qword [rbp - 289], r13 ; (SET) mov rax, qword [rbp - 273] ; (SET) mov rbx, qword [rbp - 281] ; (SET) mov rcx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Function._compile_cf_pre mov byte [rbp - 265], al ; (SET) jmp compile._#Function._compile_loop#5#wrap#end compile._#Function._compile_loop#5#wrap#0#if#end: compile._#Function._compile_loop#5#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 273], rax ; (SET) mov rax, qword [rbp - 273] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Scope.place_start_label sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 273], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 281], rsi ; (SET) mov qword [rbp - 289], r12 ; (SET) mov qword [rbp - 297], r15 ; (SET) mov rax, qword [rbp - 273] ; (SET) mov rbx, qword [rbp - 281] ; (SET) mov rcx, qword [rbp - 289] ; (SET) mov rdx, qword [rbp - 297] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Function._compile_statements sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 273], rax ; (SET) mov rax, qword [rbp - 273] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Scope.place_rep_label cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#6#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 273], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 281], rsi ; (SET) mov qword [rbp - 289], r13 ; (SET) mov qword [rbp - 297], r14 ; (SET) mov sil, byte [rbp - 265] ; (SET_PRM_R) mov byte [rbp - 298], sil ; (SET) mov rax, qword [rbp - 273] ; (SET) mov rbx, qword [rbp - 281] ; (SET) mov rcx, qword [rbp - 289] ; (SET) mov rdx, qword [rbp - 297] ; (SET) mov sil, byte [rbp - 298] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Function._compile_cf_post jmp compile._#Function._compile_loop#6#wrap#end compile._#Function._compile_loop#6#wrap#0#if#end: mov cl, byte [rbp - 265] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_loop#6#wrap#1#if#end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) sub rsp, 8 ; Create stack space for local variable idx mov qword [rbp - 273], rbx ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 281], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 289], rsi ; (SET) mov rsi, qword [rbp - 273] ; (SET_PRM_R) mov qword [rbp - 297], rsi ; (SET) mov rax, qword [rbp - 289] ; (SET) mov rbx, qword [rbp - 297] ; (SET) lea rsp, [rbp - 281] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 281] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for local variable last mov qword [rbp - 281], rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 377], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 385], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 393], rsi ; (SET) mov rsi, qword [rbp - 281] ; (SET_PRM_R) mov qword [rbp - 401], rsi ; (SET) mov rax, qword [rbp - 385] ; (SET) mov rbx, qword [rbp - 393] ; (SET) mov rcx, qword [rbp - 401] ; (SET) lea rsp, [rbp - 377] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 369] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 mov rbx, qword [rbp - 377] ; (SET) lea rsp, [rbp - 369] ; Free stack space (freeing tmp variables) sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 457] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 369] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for local variable buf mov rsi, qword [rbp - 248] ; (SET_PRM_R) mov qword [rbp - 465], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 473], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 481], rax ; (SET) mov rax, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label mov rbx, qword [rbp - 473] ; (SET) lea rsp, [rbp - 465] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 473], rax ; (SET) mov rcx, qword [rbp - 409] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov rcx, qword [rbp - 401] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov byte [rbp - 474], al ; Mov after compare cmp byte byte [rbp - 474], 0 compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) cmp r8b, 0 je compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 465] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 465] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rsi, qword [rbp - 473] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 465] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_loop#6#wrap#1#if#0#wrap#end compile._#Function._compile_loop#6#wrap#1#if#0#wrap#0#if#end: mov rcx, qword [rbp - 409] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 457] ; initial struct addr move (SET_STR_R) mov qword [rbp - 489], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#Var.test mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 465] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 465] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rsi, qword [rbp - 473] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 465] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 497], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_loop#6#wrap#1#if#0#wrap#end compile._#Function._compile_loop#6#wrap#1#if#0#wrap#1#if#end: compile._#Function._compile_loop#6#wrap#1#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 473] ; (SET_PRM_R) mov qword [rbp - 489], rsi ; (SET) mov rax, qword [rbp - 489] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call _delete mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 482], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 490], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 457] ; initial struct addr move (SET_STR_R) mov qword [rbp - 498], rsi ; (SET) mov rax, qword [rbp - 490] ; (SET) mov rbx, qword [rbp - 498] ; (SET) lea rsp, [rbp - 482] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov r8b, byte [rbp - 482] ; (SET) mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_loop#6#wrap#1#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 489], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 457] ; initial struct addr move (SET_STR_R) mov qword [rbp - 497], rsi ; (SET) mov byte [rbp - 498], 1 ; (SET) mov rax, qword [rbp - 489] ; (SET) mov rbx, qword [rbp - 497] ; (SET) mov cl, byte [rbp - 498] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_loop#6#wrap#1#if#1#wrap#end compile._#Function._compile_loop#6#wrap#1#if#1#wrap#0#if#end: compile._#Function._compile_loop#6#wrap#1#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 481], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 457] ; initial struct addr move (SET_STR_R) mov qword [rbp - 489], rax ; (SET) mov rax, qword [rbp - 489] ; (SET) lea rsp, [rbp - 481] ; Free stack space (freeing tmp variables) call compile._#Var.end mov rbx, qword [rbp - 481] ; (SET) lea rsp, [rbp - 473] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_loop#6#wrap#end compile._#Function._compile_loop#6#wrap#1#if#end: compile._#Function._compile_loop#6#wrap#end: sub rsp, 8 ; Create stack space for local variable cb mov rsi, qword [rbp - 248] ; (SET_PRM_R) mov qword [rbp - 273], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 273] ; (SET_PRM_R) mov qword [rbp - 281], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 281] ; (SET) mov rbx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 281], rax ; (SET) mov rax, qword [rbp - 281] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call compile._#Scope.start_label sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 281], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 273] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rsi, qword [rbp - 281] ; (SET_PRM_R) mov qword [rbp - 297], rsi ; (SET) mov rax, qword [rbp - 289] ; (SET) mov rbx, qword [rbp - 297] ; (SET) lea rsp, [rbp - 281] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 273] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_loop#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 297], rsi ; (SET) mov rax, qword [rbp - 289] ; (SET) mov rbx, qword [rbp - 297] ; (SET) lea rsp, [rbp - 281] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 281] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 289] ; (SET) lea rsp, [rbp - 281] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 289], rax ; (SET) mov rax, qword [rbp - 289] ; (SET) lea rsp, [rbp - 281] ; Free stack space (freeing tmp variables) call compile._#Scope.place_end_label sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 289], rax ; (SET) mov rax, qword [rbp - 289] ; (SET) lea rsp, [rbp - 281] ; Free stack space (freeing tmp variables) call compile._#Scope.end compile._#Function._compile_loop#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._check_return: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._check_return#0#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) cmp r12, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._check_return#0#wrap#0#if#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov cx, word [rdi] ; (SET) cmp cx, word [rel parse.NTYPE_VLIST] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Function._check_return#0#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._check_return#0#wrap#0#if#0#wrap#0#if#end ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r13, qword [rsi] ; (SET) jmp compile._#Function._check_return#0#wrap#0#if#0#wrap#end compile._#Function._check_return#0#wrap#0#if#0#wrap#0#if#end: mov r13, 1 ; (SET) jmp compile._#Function._check_return#0#wrap#0#if#0#wrap#end compile._#Function._check_return#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._check_return#0#wrap#0#if#0#wrap#end: jmp compile._#Function._check_return#0#wrap#end compile._#Function._check_return#0#wrap#0#if#end: compile._#Function._check_return#0#wrap#end: cmp r13, r12 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._check_return#1#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Function._check_return#end jmp compile._#Function._check_return#1#wrap#end compile._#Function._check_return#1#wrap#0#if#end: compile._#Function._check_return#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._check_return#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._check_return#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._check_return#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._check_return#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._check_return#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._print ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Function._check_return#end compile._#Function._check_return#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_return_vals: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#0#wrap#0#if#end jmp compile._#Function._compile_return_vals#end jmp compile._#Function._compile_return_vals#0#wrap#end compile._#Function._compile_return_vals#0#wrap#0#if#end: compile._#Function._compile_return_vals#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) jmp compile._#Function._compile_return_vals#1#wrap#end compile._#Function._compile_return_vals#1#wrap#0#if#end: compile._#Function._compile_return_vals#1#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_return_vals#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 88 ; Create stack space for local variable cmp ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#3#wrap#0#if#end sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 32 ; Create stack space for local variable tmps sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov qword [rbp - 280], 88 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.init mov r15, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#end compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], r15 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], r15 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 360], r11 ; (SET) mov qword [rbp - 368], r13 ; (SET) mov rax, qword [rbp - 360] ; (SET) mov rbx, qword [rbp - 368] ; (SET) lea rsp, [rbp - 352] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 352] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 352] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 360], r10 ; (SET) mov qword [rbp - 368], r11 ; (SET) mov qword [rbp - 376], r14 ; (SET) mov rax, qword [rbp - 360] ; (SET) mov rbx, qword [rbp - 368] ; (SET) mov rcx, qword [rbp - 376] ; (SET) lea rsp, [rbp - 352] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 352] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 352] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 265], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 273], rax ; (SET) mov rax, qword [rbp - 273] ; (SET) lea rsp, [rbp - 265] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 265] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#0#wrap#0#if#end sub rsp, 4 ; Create stack space for local variable pp mov dword [rbp - 268], 0 ; (SET) mov ebx, dword [rbp - 268] ; (SET) sub ebx, 1 ; (STD_OP) mov dword [rbp - 268], ebx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 276], rax ; (SET) mov rax, qword [rbp - 276] ; (SET) lea rsp, [rbp - 268] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 276], rax ; (SET) mov esi, dword [rbp - 268] ; (SET_PRM_R) mov dword [rbp - 280], esi ; (SET) mov rax, qword [rbp - 276] ; (SET) mov ebx, dword [rbp - 280] ; (SET) lea rsp, [rbp - 268] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#0#wrap#end compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Var.set jmp compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#0#wrap#end compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#0#wrap#1#if#end: compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#end jmp compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#start compile._#Function._compile_return_vals#3#wrap#0#if#1#loop#end: sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 272], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 272] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#3#wrap#0#if#2#loop#end compile._#Function._compile_return_vals#3#wrap#0#if#2#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], rsi ; (SET) mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) mov rbx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 280], rax ; (SET) mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) mov rbx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], r13 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov qword [rbp - 296], r15 ; (SET) mov rax, qword [rbp - 280] ; (SET) mov rbx, qword [rbp - 288] ; (SET) mov rcx, qword [rbp - 296] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], r15 ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Function._compile_return_vals#3#wrap#0#if#2#loop#rep: mov rbx, qword [rbp - 272] ; (SET) inc qword qword [rbp - 272] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 272] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_return_vals#3#wrap#0#if#2#loop#end jmp compile._#Function._compile_return_vals#3#wrap#0#if#2#loop#start compile._#Function._compile_return_vals#3#wrap#0#if#2#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 272], r11 ; (SET) mov rsi, qword [rbp - 256] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov byte [rbp - 281], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov cl, byte [rbp - 281] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.end jmp compile._#Function._compile_return_vals#3#wrap#end compile._#Function._compile_return_vals#3#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r12 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_return_vals#3#wrap#end compile._#Function._compile_return_vals#3#wrap#1#if#end: compile._#Function._compile_return_vals#3#wrap#end: compile._#Function._compile_return_vals#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._return: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r10 ; (SET) mov qword [rbp - 73], r12 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Function._check_return mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._return#0#wrap#0#if#end jmp compile._#Function._return#end jmp compile._#Function._return#0#wrap#end compile._#Function._return#0#wrap#0#if#end: compile._#Function._return#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._compile_return_vals ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._return#1#loop#end compile._#Function._return#1#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) compile._#Function._return#1#loop#rep: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._return#1#loop#end jmp compile._#Function._return#1#loop#start compile._#Function._return#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._return#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._return#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Function._return#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_flow_control: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_flow_control#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._return jmp compile._#Function._compile_flow_control#0#wrap#end compile._#Function._compile_flow_control#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_flow_control#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.closest_loop mov r13, rax ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_flow_control#0#wrap#1#if#1#wrap#0#if#end jmp compile._#Function._compile_flow_control#end jmp compile._#Function._compile_flow_control#0#wrap#1#if#1#wrap#end compile._#Function._compile_flow_control#0#wrap#1#if#1#wrap#0#if#end: compile._#Function._compile_flow_control#0#wrap#1#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.rep_label mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#1#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._compile_flow_control#0#wrap#end compile._#Function._compile_flow_control#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_flow_control#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.closest_break mov r13, rax ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_flow_control#0#wrap#2#if#1#wrap#0#if#end jmp compile._#Function._compile_flow_control#end jmp compile._#Function._compile_flow_control#0#wrap#2#if#1#wrap#end compile._#Function._compile_flow_control#0#wrap#2#if#1#wrap#0#if#end: compile._#Function._compile_flow_control#0#wrap#2#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.rep_label mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#2#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#2#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._compile_flow_control#0#wrap#end compile._#Function._compile_flow_control#0#wrap#2#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#3#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#3#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_flow_control#0#wrap#3#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Function._compile_flow_control#0#wrap#end compile._#Function._compile_flow_control#0#wrap#3#if#end: compile._#Function._compile_flow_control#0#wrap#end: compile._#Function._compile_flow_control#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_decl: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_decl#0#loop#end compile._#Function._compile_decl#0#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_decl#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._find_var mov r15, rax ; (SET) cmp r15, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Function._compile_decl#end jmp compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#end compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_decl#0#loop#0#wrap#0#if#0#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_decl#0#loop#0#wrap#0#if#1#wrap#0#if#end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable val ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov qword [rbp - 248], r15 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope.mk_set_var sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_decl#0#loop#0#wrap#0#if#1#wrap#end compile._#Function._compile_decl#0#loop#0#wrap#0#if#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.mk_var jmp compile._#Function._compile_decl#0#loop#0#wrap#0#if#1#wrap#end compile._#Function._compile_decl#0#loop#0#wrap#0#if#1#wrap#1#if#end: compile._#Function._compile_decl#0#loop#0#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_decl#0#loop#0#wrap#end compile._#Function._compile_decl#0#loop#0#wrap#0#if#end: compile._#Function._compile_decl#0#loop#0#wrap#end: compile._#Function._compile_decl#0#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_decl#0#loop#end jmp compile._#Function._compile_decl#0#loop#start compile._#Function._compile_decl#0#loop#end: compile._#Function._compile_decl#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_call: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) mov r14, rsi ; (SET) mov r15b, dil ; (SET) sub rsp, 88 ; Create stack space for local variable result sub rsp, 8 ; Create stack space for local variable out ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#0#wrap#0#if#end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], rsi ; (SET) mov qword [rbp - 168], 0 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 152], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#0#wrap#0#if#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r11 ; (SET) mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 256], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp_stack ; putting struct address into register lea rdi, [rbp - 240] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_call#0#wrap#0#if#0#wrap#end compile._#Function._compile_call#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 240] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_call#0#wrap#0#if#0#wrap#end compile._#Function._compile_call#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._compile_call#0#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_call#0#wrap#end compile._#Function._compile_call#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov qword [rbp - 168], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_call#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) mov rcx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type sub rsp, 8 ; Create stack space for local variable t mov qword [rbp - 160], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rax ; (SET) mov rsi, qword [rbp - 160] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Var._init jmp compile._#Function._compile_call#0#wrap#end compile._#Function._compile_call#0#wrap#1#if#end: compile._#Function._compile_call#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r11 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Scope.save_caller_tmp sub rsp, 8 ; Create stack space for local variable saved mov qword [rbp - 160], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r11 ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.get_tmp_handle sub rsp, 8 ; Create stack space for local variable handle mov qword [rbp - 168], rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable param_count mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#1#wrap#0#if#end mov rbx, qword [rbp - 176] ; (SET) inc qword qword [rbp - 176] ; (UNARY) jmp compile._#Function._compile_call#1#wrap#end compile._#Function._compile_call#1#wrap#0#if#end: compile._#Function._compile_call#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#2#wrap#0#if#end sub rsp, 8 ; Create stack space for local variable nn ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], rsi ; (SET) mov qword [rbp - 200], 0 ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 184], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov cx, word [r9] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_call#2#wrap#0#if#0#wrap#0#if#0#bool#end ; putting struct address into register mov rsi, [rbp - 184] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], rsi ; (SET) mov rdi, [rbp - 192] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Function._compile_call#2#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#2#wrap#0#if#0#wrap#0#if#end mov rbx, qword [rbp - 176] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Function._compile_call#2#wrap#0#if#0#wrap#end compile._#Function._compile_call#2#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_call#2#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_call#2#wrap#end compile._#Function._compile_call#2#wrap#0#if#end: compile._#Function._compile_call#2#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 176] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 184], r11 ; (SET) mov rax, qword [rbp - 184] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label sub rsp, 8 ; Create stack space for local variable blab mov qword [rbp - 184], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_call#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_call#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 184] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_call#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_call#3#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_call#3#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rsi, qword [rbp - 176] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) mov rbx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 184] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) call _delete mov qword [rbp - 96], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_call#end jmp compile._#Function._compile_call#3#wrap#end compile._#Function._compile_call#3#wrap#0#if#end: compile._#Function._compile_call#3#wrap#end: sub rsp, 32 ; Create stack space for local variable tmps sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov qword [rbp - 224], 88 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov rsi, qword [rbp - 176] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector._grow mov rsi, qword [rbp - 176] ; (SET_PRM_R) mov qword [rbp - 200], rsi ; (SET) sub rsp, 8 ; Create stack space for local variable inp sub rsp, 88 ; Create stack space for local variable last_stack mov qword [rbp - 256], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 312], r11 ; (SET) mov rax, qword [rbp - 312] ; (SET) lea rsp, [rbp - 304] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov qword [rbp - 248], rax ; (SET) sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 312], 1 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 312] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#5#loop#end compile._#Function._compile_call#5#loop#start: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, qword [rbp - 312] ; (STD_OP) sub rsp, 8 ; Create stack space for local variable pidx mov qword [rbp - 320], rbx ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 336], rsi ; (SET) mov rsi, qword [rbp - 320] ; (SET_PRM_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 336] ; (SET) mov rbx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 328] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) mov qword [rbp - 216], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 216] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_call#5#loop#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 424], r11 ; (SET) mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 424] ; (SET) mov rbx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 416] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp_stack ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 mov rbx, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) sub rsp, 88 ; Create stack space for local variable to_set ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 504], rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 505], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 513], rax ; (SET) mov rax, qword [rbp - 513] ; (SET) lea rsp, [rbp - 505] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov r8b, byte [rbp - 505] ; (SET) mov rbx, qword [rbp - 504] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_call#5#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 4 ; Create stack space for local variable ptrc mov dword [rbp - 500], 0 ; (SET) mov r8d, dword [rbp - 500] ; (SET) sub r8d, 1 ; (STD_OP) mov dword [rbp - 500], r8d ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 508], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 516], rax ; (SET) mov rax, qword [rbp - 516] ; (SET) lea rsp, [rbp - 508] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop mov rbx, qword [rbp - 508] ; (SET) lea rsp, [rbp - 500] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 508], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 516], rax ; (SET) mov esi, dword [rbp - 500] ; (SET_PRM_R) mov dword [rbp - 520], esi ; (SET) mov rax, qword [rbp - 516] ; (SET) mov ebx, dword [rbp - 520] ; (SET) lea rsp, [rbp - 508] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push mov rbx, qword [rbp - 508] ; (SET) lea rsp, [rbp - 500] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_call#5#loop#0#wrap#0#if#0#wrap#end compile._#Function._compile_call#5#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_call#5#loop#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 504], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 512], rax ; (SET) mov rsi, qword [rbp - 320] ; (SET_PRM_R) mov qword [rbp - 520], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 528], rsi ; (SET) mov rax, qword [rbp - 512] ; (SET) mov rbx, qword [rbp - 520] ; (SET) mov rcx, qword [rbp - 528] ; (SET) lea rsp, [rbp - 504] ; Free stack space (freeing tmp variables) call utils._#Vector.replace mov rbx, qword [rbp - 504] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) ; putting struct address into register lea rdi, [rbp - 304] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_call#5#loop#0#wrap#end compile._#Function._compile_call#5#loop#0#wrap#0#if#end: compile._#Function._compile_call#5#loop#0#wrap#end: compile._#Function._compile_call#5#loop#rep: mov r8, qword [rbp - 312] ; (SET) inc qword qword [rbp - 312] ; (UNARY) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 312] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_call#5#loop#end jmp compile._#Function._compile_call#5#loop#start compile._#Function._compile_call#5#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 312], r11 ; (SET) mov rax, qword [rbp - 312] ; (SET) lea rsp, [rbp - 304] ; Free stack space (freeing tmp variables) call compile._#Scope.get_tmp_handle sub rsp, 8 ; Create stack space for local variable param_handle mov qword [rbp - 312], rax ; (SET) sub rsp, 88 ; Create stack space for local variable last_reg mov qword [rbp - 352], 0 ; (SET) sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 408], 0 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 408] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#6#loop#end compile._#Function._compile_call#6#loop#start: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], rsi ; (SET) mov rsi, qword [rbp - 408] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 216], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 216] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#6#loop#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 504], r11 ; (SET) mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 512], rsi ; (SET) mov rax, qword [rbp - 504] ; (SET) mov rbx, qword [rbp - 512] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp_stack ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable to_set ; putting struct address into register lea rdi, [rbp - 584] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 585], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 593], rax ; (SET) mov rax, qword [rbp - 593] ; (SET) lea rsp, [rbp - 585] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 585] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#6#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 4 ; Create stack space for local variable ptrc mov dword [rbp - 588], 0 ; (SET) mov ebx, dword [rbp - 588] ; (SET) sub ebx, 1 ; (STD_OP) mov dword [rbp - 588], ebx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 596], rax ; (SET) mov rax, qword [rbp - 596] ; (SET) lea rsp, [rbp - 588] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 596], rax ; (SET) mov esi, dword [rbp - 588] ; (SET_PRM_R) mov dword [rbp - 600], esi ; (SET) mov rax, qword [rbp - 596] ; (SET) mov ebx, dword [rbp - 600] ; (SET) lea rsp, [rbp - 588] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_call#6#loop#0#wrap#0#if#0#wrap#end compile._#Function._compile_call#6#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_call#6#loop#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 592], rax ; (SET) mov rsi, qword [rbp - 408] ; (SET_PRM_R) mov qword [rbp - 600], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 608], rsi ; (SET) mov rax, qword [rbp - 592] ; (SET) mov rbx, qword [rbp - 600] ; (SET) mov rcx, qword [rbp - 608] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) call utils._#Vector.replace sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 592], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 400] ; initial struct addr move (SET_STR_R) mov qword [rbp - 600], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 608], rsi ; (SET) mov rax, qword [rbp - 592] ; (SET) mov rbx, qword [rbp - 600] ; (SET) mov rcx, qword [rbp - 608] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) call compile._#Function._set_var_ptr ; putting struct address into register lea rdi, [rbp - 400] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_call#6#loop#0#wrap#end compile._#Function._compile_call#6#loop#0#wrap#0#if#end: compile._#Function._compile_call#6#loop#0#wrap#end: compile._#Function._compile_call#6#loop#rep: mov rbx, qword [rbp - 408] ; (SET) inc qword qword [rbp - 408] ; (UNARY) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 408] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#6#loop#end jmp compile._#Function._compile_call#6#loop#start compile._#Function._compile_call#6#loop#end: sub rsp, 8 ; Create stack space for local variable use_self mov qword [rbp - 408], 0 ; (SET) cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#7#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov qword [rbp - 424], 0 ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 216], rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 504], r14 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 512], rsi ; (SET) mov qword [rbp - 520], 1 ; (SET) mov rax, qword [rbp - 504] ; (SET) mov rbx, qword [rbp - 512] ; (SET) mov rcx, qword [rbp - 520] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable _sptr ; putting struct address into register lea rdi, [rbp - 584] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 592], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 600], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 608], rsi ; (SET) mov rax, qword [rbp - 592] ; (SET) mov rbx, qword [rbp - 600] ; (SET) mov rcx, qword [rbp - 608] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 584] ; initial struct addr move (SET_STR_R) mov qword [rbp - 592], rax ; (SET) mov rax, qword [rbp - 592] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) call compile._#Var.end mov rbx, qword [rbp - 408] ; (SET) inc qword qword [rbp - 408] ; (UNARY) jmp compile._#Function._compile_call#7#wrap#end compile._#Function._compile_call#7#wrap#0#if#end: compile._#Function._compile_call#7#wrap#end: sub rsp, 8 ; Create stack space for local variable pnode sub rsp, 8 ; Create stack space for local variable i mov rsi, qword [rbp - 408] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 424] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#8#loop#end compile._#Function._compile_call#8#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 432], rsi ; (SET) mov rbx, qword [rbp - 424] ; (SET) sub rbx, qword [rbp - 408] ; (STD_OP) mov qword [rbp - 440], rbx ; (SET) mov rax, qword [rbp - 432] ; (SET) mov rbx, qword [rbp - 440] ; (SET) lea rsp, [rbp - 424] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 416], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rax ; (SET) mov rsi, qword [rbp - 424] ; (SET_PRM_R) mov qword [rbp - 440], rsi ; (SET) mov rax, qword [rbp - 432] ; (SET) mov rbx, qword [rbp - 440] ; (SET) lea rsp, [rbp - 424] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 216], rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 520], r10 ; (SET) mov qword [rbp - 528], r11 ; (SET) mov rsi, qword [rbp - 416] ; (SET_PRM_R) mov qword [rbp - 536], rsi ; (SET) mov rax, qword [rbp - 520] ; (SET) mov rbx, qword [rbp - 528] ; (SET) mov rcx, qword [rbp - 536] ; (SET) lea rsp, [rbp - 512] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 512] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable param ; putting struct address into register lea rdi, [rbp - 600] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 512] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 608], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 616], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 600] ; initial struct addr move (SET_STR_R) mov qword [rbp - 624], rsi ; (SET) mov rax, qword [rbp - 608] ; (SET) mov rbx, qword [rbp - 616] ; (SET) mov rcx, qword [rbp - 624] ; (SET) lea rsp, [rbp - 600] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 608], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 600] ; initial struct addr move (SET_STR_R) mov qword [rbp - 616], rsi ; (SET) mov rax, qword [rbp - 608] ; (SET) mov rbx, qword [rbp - 616] ; (SET) lea rsp, [rbp - 600] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp cmp al, 0 je compile._#Function._compile_call#8#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 608], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 600] ; initial struct addr move (SET_STR_R) mov qword [rbp - 616], rsi ; (SET) mov byte [rbp - 617], 1 ; (SET) mov rax, qword [rbp - 608] ; (SET) mov rbx, qword [rbp - 616] ; (SET) mov cl, byte [rbp - 617] ; (SET) lea rsp, [rbp - 600] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_call#8#loop#0#wrap#end compile._#Function._compile_call#8#loop#0#wrap#0#if#end: compile._#Function._compile_call#8#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 600] ; initial struct addr move (SET_STR_R) mov qword [rbp - 608], rax ; (SET) mov rax, qword [rbp - 608] ; (SET) lea rsp, [rbp - 600] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Function._compile_call#8#loop#rep: mov rbx, qword [rbp - 424] ; (SET) inc qword qword [rbp - 424] ; (UNARY) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 424] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#8#loop#end jmp compile._#Function._compile_call#8#loop#start compile._#Function._compile_call#8#loop#end: sub rsp, 8 ; Create stack space for local variable ptmp sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 432], 0 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 432] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#9#loop#end compile._#Function._compile_call#9#loop#start: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 440], rsi ; (SET) mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rax, qword [rbp - 440] ; (SET) mov rbx, qword [rbp - 448] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 216], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 216] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#9#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 440], rax ; (SET) mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rax, qword [rbp - 440] ; (SET) mov rbx, qword [rbp - 448] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 424], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 433], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 441], rsi ; (SET) mov rax, qword [rbp - 441] ; (SET) lea rsp, [rbp - 433] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 433] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#9#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 528], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 536], rsi ; (SET) mov qword [rbp - 544], 1 ; (SET) mov rax, qword [rbp - 528] ; (SET) mov rbx, qword [rbp - 536] ; (SET) mov rcx, qword [rbp - 544] ; (SET) lea rsp, [rbp - 520] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 520] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable to_set ; putting struct address into register lea rdi, [rbp - 608] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 520] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 608] ; initial struct addr move (SET_STR_R) mov qword [rbp - 616], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 624], rsi ; (SET) mov rsi, qword [rbp - 424] ; (SET_PRM_R) mov qword [rbp - 632], rsi ; (SET) mov rax, qword [rbp - 616] ; (SET) mov rbx, qword [rbp - 624] ; (SET) mov rcx, qword [rbp - 632] ; (SET) lea rsp, [rbp - 608] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 608] ; initial struct addr move (SET_STR_R) mov qword [rbp - 616], rax ; (SET) mov rax, qword [rbp - 616] ; (SET) lea rsp, [rbp - 608] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_call#9#loop#0#wrap#0#if#0#wrap#end compile._#Function._compile_call#9#loop#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 440], rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rbp - 424] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 440] ; (SET) mov rbx, qword [rbp - 448] ; (SET) mov rcx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) call compile._#Var.set jmp compile._#Function._compile_call#9#loop#0#wrap#0#if#0#wrap#end compile._#Function._compile_call#9#loop#0#wrap#0#if#0#wrap#1#if#end: compile._#Function._compile_call#9#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_call#9#loop#0#wrap#end compile._#Function._compile_call#9#loop#0#wrap#0#if#end: compile._#Function._compile_call#9#loop#0#wrap#end: compile._#Function._compile_call#9#loop#rep: mov rbx, qword [rbp - 432] ; (SET) inc qword qword [rbp - 432] ; (UNARY) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 432] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#9#loop#end jmp compile._#Function._compile_call#9#loop#start compile._#Function._compile_call#9#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 432], r11 ; (SET) mov rsi, qword [rbp - 312] ; (SET_PRM_R) mov qword [rbp - 440], rsi ; (SET) mov rax, qword [rbp - 432] ; (SET) mov rbx, qword [rbp - 440] ; (SET) lea rsp, [rbp - 424] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after_handle ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable buf mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 432], rsi ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#10#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 440], rsi ; (SET) mov rax, qword [rbp - 440] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) call utils.int_to_str sub rsp, 8 ; Create stack space for local variable pad_num mov qword [rbp - 440], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_call#10#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rbp - 440] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_call#10#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 440] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._compile_call#10#wrap#end compile._#Function._compile_call#10#wrap#0#if#end: compile._#Function._compile_call#10#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 440], r13 ; (SET) mov rax, qword [rbp - 440] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) call compile._#Function._call_label sub rsp, 8 ; Create stack space for local variable call mov qword [rbp - 440], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_call#11#const#ptr] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rbp - 440] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_call#12#const#ptr] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 440] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call _delete ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#13#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#13#wrap#0#if#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 536], rsi ; (SET) mov rax, qword [rbp - 536] ; (SET) lea rsp, [rbp - 528] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 528] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out_pos ; putting struct address into register lea rdi, [rbp - 616] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 528] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 568], 7 ; (SET) mov qword [rbp - 560], 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable buf mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 624], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 632], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 640], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 616] ; initial struct addr move (SET_STR_R) mov qword [rbp - 648], rsi ; (SET) mov rax, qword [rbp - 632] ; (SET) mov rbx, qword [rbp - 640] ; (SET) mov rcx, qword [rbp - 648] ; (SET) lea rsp, [rbp - 624] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 616] ; initial struct addr move (SET_STR_R) mov qword [rbp - 632], rax ; (SET) mov rax, qword [rbp - 632] ; (SET) lea rsp, [rbp - 624] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_call#13#wrap#0#if#0#wrap#end compile._#Function._compile_call#13#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_call#13#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_call#13#wrap#end compile._#Function._compile_call#13#wrap#0#if#end: compile._#Function._compile_call#13#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#14#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 448], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call utils.int_to_str sub rsp, 8 ; Create stack space for local variable pad_num mov qword [rbp - 448], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_call#14#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 464], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) mov rbx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rsi, qword [rbp - 448] ; (SET_PRM_R) mov qword [rbp - 464], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) mov rbx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_call#14#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 464], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) mov rbx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 448] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._compile_call#14#wrap#end compile._#Function._compile_call#14#wrap#0#if#end: compile._#Function._compile_call#14#wrap#end: sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 448], 0 ; (SET) mov rcx, qword [rbp - 448] ; (SET) cmp rcx, qword [rbp - 200] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#15#loop#end compile._#Function._compile_call#15#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 456], rax ; (SET) mov rsi, qword [rbp - 448] ; (SET_PRM_R) mov qword [rbp - 464], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) mov rbx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 216], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Function._compile_call#15#loop#rep: mov rbx, qword [rbp - 448] ; (SET) inc qword qword [rbp - 448] ; (UNARY) mov rcx, qword [rbp - 448] ; (SET) cmp rcx, qword [rbp - 200] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_call#15#loop#end jmp compile._#Function._compile_call#15#loop#start compile._#Function._compile_call#15#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 448], rax ; (SET) mov rax, qword [rbp - 448] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call utils._#Vector.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 448], r11 ; (SET) mov rsi, qword [rbp - 168] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after_handle sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 448], r11 ; (SET) mov rsi, qword [rbp - 160] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#Scope.restore_caller_tmp ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_call#end compile._#Function._compile_call#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._set_var_ptr: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 88 ; Create stack space for local variable vv mov r13, 88 ; (SET) mov r14, 0 ; (SET) cmp r14, r13 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._set_var_ptr#1#loop#end compile._#Function._set_var_ptr#1#loop#start: mov rbx, r11 ; (SET) mov rcx, 1 ; (SET) imul rcx, r14 ; (MUL) add rbx, rcx ; (STD_OP) mov r15, rbx ; (SET) mov r8, r12 ; (SET) mov rcx, 1 ; (SET) imul rcx, r14 ; (MUL) add r8, rcx ; (STD_OP) sub rsp, 8 ; Create stack space for local variable in mov qword [rbp - 152], r8 ; (SET) mov rdi, [rbp - 152] ; (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [r15], sil ; (SET) compile._#Function._set_var_ptr#1#loop#rep: mov r9, r14 ; (SET) inc r14 ; (UNARY) cmp r14, r13 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 je compile._#Function._set_var_ptr#1#loop#end jmp compile._#Function._set_var_ptr#1#loop#start compile._#Function._set_var_ptr#1#loop#end: compile._#Function._set_var_ptr#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_chain_r_post: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Function._compile_chain_r_post#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#1#if#end sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.de_ref ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._set_var_ptr jmp compile._#Function._compile_chain_r_post#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) mov qword [rbp - 73], r13 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#end mov r14b, 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r13 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end mov r14b, 1 ; (SET) mov r15d, 0 ; (SET) mov ebx, r15d ; (SET) sub ebx, 1 ; (STD_OP) mov r15d, ebx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov dword [rbp - 68], r15d ; (SET) mov rax, qword [rbp - 64] ; (SET) mov ebx, dword [rbp - 68] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) mov qword [rbp - 248], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.end cmp r14b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov dword [rbp - 156], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov ebx, dword [rbp - 156] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._set_var_ptr jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#0#if#end: compile._#Function._compile_chain_r_post#0#wrap#2#if#1#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable idx ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#0#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 184], 6 ; (SET) jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#0#if#end: mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 5 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#1#if#end ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c mov qword [rbp - 184], 6 ; (SET) jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#1#if#end: compile._#Function._compile_chain_r_post#0#wrap#2#if#2#wrap#end: sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], r13 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov qword [rbp - 440], 1 ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) mov rdx, qword [rbp - 440] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.index ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 321], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 329], r11 ; (SET) mov qword [rbp - 337], r13 ; (SET) mov rax, qword [rbp - 329] ; (SET) mov rbx, qword [rbp - 337] ; (SET) lea rsp, [rbp - 321] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 321] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#2#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 328], r11 ; (SET) mov qword [rbp - 336], r13 ; (SET) mov byte [rbp - 337], 1 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov cl, byte [rbp - 337] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_chain_r_post#0#wrap#2#if#3#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#3#wrap#0#if#end: compile._#Function._compile_chain_r_post#0#wrap#2#if#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Function._set_var_ptr jmp compile._#Function._compile_chain_r_post#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#3#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 424], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov qword [rbp - 344], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r13 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.inc sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Function._set_var_ptr jmp compile._#Function._compile_chain_r_post#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_post#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_post#0#wrap#4#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 424], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov qword [rbp - 344], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r13 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.dec sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r13 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Function._set_var_ptr jmp compile._#Function._compile_chain_r_post#0#wrap#end compile._#Function._compile_chain_r_post#0#wrap#4#if#end: compile._#Function._compile_chain_r_post#0#wrap#end: compile._#Function._compile_chain_r_post#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_chain_r_base: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) sub rsp, 88 ; Create stack space for local variable result mov qword [rbp - 96], 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#0#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#0#wrap#0#if#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call parse.print_node_type sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#0#wrap#0#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r_base#end jmp compile._#Function._compile_chain_r_base#0#wrap#end compile._#Function._compile_chain_r_base#0#wrap#0#if#end: compile._#Function._compile_chain_r_base#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Scope.find_var mov r14, rax ; (SET) cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#1#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable name mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r13 ; (SET) lea rsi, qword [rbp - 152] ; (TAKE_PTR) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r15 ; (SET) mov rsi, qword [rel compile.SEARCH_VAR] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov qword [rbp - 176], r13 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) mov rcx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Module.find mov r14, rax ; (SET) cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#1#wrap#0#if#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r14 ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.as_global ; putting struct address into register lea rdi, [rbp - 240] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) jmp compile._#Function._compile_chain_r_base#1#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r_base#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r_base#1#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_chain_r_base#1#wrap#end compile._#Function._compile_chain_r_base#1#wrap#0#if#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) jmp compile._#Function._compile_chain_r_base#1#wrap#end compile._#Function._compile_chain_r_base#1#wrap#1#if#end: compile._#Function._compile_chain_r_base#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#2#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#end cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.end mov qword [rbp - 96], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r_base#end jmp compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#1#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable mod mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 153], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Module.is_method mov bl, byte [rbp - 153] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#2#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 152] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) jmp compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#2#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#2#wrap#0#if#end: compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#2#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rsi, qword [rel compile.SEARCH_FUNC] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov qword [rbp - 176], r13 ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) mov rcx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Module.find sub rsp, 8 ; Create stack space for local variable to_call mov qword [rbp - 160], rax ; (SET) mov rcx, qword [rbp - 160] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r11 ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label sub rsp, 8 ; Create stack space for local variable blab mov qword [rbp - 168], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 168] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 176] ; (SET) lea rsp, [rbp - 168] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 176] ; (SET) lea rsp, [rbp - 168] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 168] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 176] ; (SET) lea rsp, [rbp - 168] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 176], r13 ; (SET) mov rax, qword [rbp - 176] ; (SET) lea rsp, [rbp - 168] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r_base#end jmp compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#0#if#end: compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#3#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 256], r10 ; (SET) mov qword [rbp - 264], r11 ; (SET) mov qword [rbp - 272], r15 ; (SET) mov rsi, qword [rbp - 160] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov byte [rbp - 289], 0 ; (SET) mov rax, qword [rbp - 256] ; (SET) mov rbx, qword [rbp - 264] ; (SET) mov rcx, qword [rbp - 272] ; (SET) mov rdx, qword [rbp - 280] ; (SET) mov rsi, qword [rbp - 288] ; (SET) mov dil, byte [rbp - 289] ; (SET) lea rsp, [rbp - 248] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_call ; putting struct address into register lea rdi, [rbp - 248] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 248] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 168] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) jmp compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#0#if#end: mov rcx, qword [rbp - 96] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label sub rsp, 8 ; Create stack space for local variable blab mov qword [rbp - 152], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r_base#end jmp compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r15 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) mov rdx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._compile_chain_r_post jmp compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#2#if#end: compile._#Function._compile_chain_r_base#2#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_chain_r_base#2#wrap#end compile._#Function._compile_chain_r_base#2#wrap#0#if#end: compile._#Function._compile_chain_r_base#2#wrap#end: sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 152], 1 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 152] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#3#loop#end compile._#Function._compile_chain_r_base#3#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], rsi ; (SET) mov rsi, qword [rbp - 152] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 153], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r15] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 153] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rax ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Var.end mov qword [rbp - 96], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 160] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r_base#end jmp compile._#Function._compile_chain_r_base#3#loop#0#wrap#end compile._#Function._compile_chain_r_base#3#loop#0#wrap#0#if#end: compile._#Function._compile_chain_r_base#3#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 160], r10 ; (SET) mov qword [rbp - 168], r11 ; (SET) mov qword [rbp - 176], r15 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rsi ; (SET) mov rax, qword [rbp - 160] ; (SET) mov rbx, qword [rbp - 168] ; (SET) mov rcx, qword [rbp - 176] ; (SET) mov rdx, qword [rbp - 184] ; (SET) lea rsp, [rbp - 152] ; Free stack space (freeing tmp variables) call compile._#Function._compile_chain_r_post compile._#Function._compile_chain_r_base#3#loop#rep: mov rbx, qword [rbp - 152] ; (SET) inc qword qword [rbp - 152] ; (UNARY) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 152] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r_base#3#loop#end jmp compile._#Function._compile_chain_r_base#3#loop#start compile._#Function._compile_chain_r_base#3#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r_base#end compile._#Function._compile_chain_r_base#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_chain_r: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r14 ; (SET) mov qword [rbp - 176], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) mov rdx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_chain_r_base ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable working ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#0#wrap#0#if#end mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#0#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#0#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r#0#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_chain_r#0#wrap#end compile._#Function._compile_chain_r#0#wrap#0#if#end: compile._#Function._compile_chain_r#0#wrap#end: mov r15b, 1 ; (SET) sub rsp, 8 ; Create stack space for local variable rhn cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#end compile._#Function._compile_chain_r#1#loop#start: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], rsi ; (SET) mov qword [rbp - 256], 1 ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 240], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 241], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 249], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 257], rsi ; (SET) mov rax, qword [rbp - 249] ; (SET) mov rbx, qword [rbp - 257] ; (SET) lea rsp, [rbp - 241] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 241] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#0#wrap#0#if#end mov r12, qword [rbp - 240] ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], rsi ; (SET) mov qword [rbp - 256], 0 ; (SET) mov rax, qword [rbp - 248] ; (SET) mov rbx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 240], rax ; (SET) jmp compile._#Function._compile_chain_r#1#loop#0#wrap#end compile._#Function._compile_chain_r#1#loop#0#wrap#0#if#end: mov r15b, 0 ; (SET) jmp compile._#Function._compile_chain_r#1#loop#0#wrap#end compile._#Function._compile_chain_r#1#loop#0#wrap#1#if#end: compile._#Function._compile_chain_r#1#loop#0#wrap#end: ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 248], r13 ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) mov qword [rbp - 184], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#1#loop#1#wrap#end compile._#Function._compile_chain_r#1#loop#1#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#1#wrap#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable dat mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 256], r13 ; (SET) lea rsi, qword [rbp - 248] ; (TAKE_PTR) mov qword [rbp - 264], rsi ; (SET) mov rax, qword [rbp - 256] ; (SET) mov rbx, qword [rbp - 264] ; (SET) lea rsp, [rbp - 248] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable mod mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 256], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 256] ; (SET_PRM_R) mov qword [rbp - 264], rsi ; (SET) mov rsi, qword [rel compile.SEARCH_VAR] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], r13 ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) mov rcx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#Module.find sub rsp, 8 ; Create stack space for local variable find mov qword [rbp - 264], rax ; (SET) mov rcx, qword [rbp - 264] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 264] ; (SET_PRM_R) mov qword [rbp - 360], rsi ; (SET) mov rax, qword [rbp - 360] ; (SET) lea rsp, [rbp - 352] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.as_global ; putting struct address into register lea rdi, [rbp - 352] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 352] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r13 ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#0#wrap#end: ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable post_op mov qword [rbp - 272], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 273], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 281], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 289], rsi ; (SET) mov rax, qword [rbp - 281] ; (SET) mov rbx, qword [rbp - 289] ; (SET) lea rsp, [rbp - 273] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 273] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end mov rcx, qword [rbp - 264] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#1#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable mod mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 280] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rsi, qword [rel compile.SEARCH_FUNC] ; (SET_PRM_R) mov qword [rbp - 296], rsi ; (SET) mov qword [rbp - 304], r13 ; (SET) mov rax, qword [rbp - 288] ; (SET) mov rbx, qword [rbp - 296] ; (SET) mov rcx, qword [rbp - 304] ; (SET) lea rsp, [rbp - 280] ; Free stack space (freeing tmp variables) call compile._#Module.find sub rsp, 8 ; Create stack space for local variable to_call mov qword [rbp - 288], rax ; (SET) mov rcx, qword [rbp - 288] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 296], rsi ; (SET) mov rax, qword [rbp - 296] ; (SET) lea rsp, [rbp - 288] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 296], rsi ; (SET) mov rax, qword [rbp - 296] ; (SET) lea rsp, [rbp - 288] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 296], rsi ; (SET) mov rax, qword [rbp - 296] ; (SET) lea rsp, [rbp - 288] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 296], r11 ; (SET) mov rax, qword [rbp - 296] ; (SET) lea rsp, [rbp - 288] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label sub rsp, 8 ; Create stack space for local variable blab mov qword [rbp - 296], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 296] ; (SET_PRM_R) mov qword [rbp - 304], rsi ; (SET) mov rax, qword [rbp - 304] ; (SET) lea rsp, [rbp - 296] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 304], rsi ; (SET) mov rax, qword [rbp - 304] ; (SET) lea rsp, [rbp - 296] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 296] ; (SET_PRM_R) mov qword [rbp - 304], rsi ; (SET) mov rax, qword [rbp - 304] ; (SET) lea rsp, [rbp - 296] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 304], r13 ; (SET) mov rax, qword [rbp - 304] ; (SET) lea rsp, [rbp - 296] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#2#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 384], r10 ; (SET) mov qword [rbp - 392], r11 ; (SET) mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 400], rsi ; (SET) mov rsi, qword [rbp - 288] ; (SET_PRM_R) mov qword [rbp - 408], rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 416], rsi ; (SET) mov byte [rbp - 417], 0 ; (SET) mov rax, qword [rbp - 384] ; (SET) mov rbx, qword [rbp - 392] ; (SET) mov rcx, qword [rbp - 400] ; (SET) mov rdx, qword [rbp - 408] ; (SET) mov rsi, qword [rbp - 416] ; (SET) mov dil, byte [rbp - 417] ; (SET) lea rsp, [rbp - 376] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_call ; putting struct address into register lea rdi, [rbp - 376] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 376] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 288] ; Free stack space (freeing tmp variables) jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end: mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], r11 ; (SET) mov rax, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label sub rsp, 8 ; Create stack space for local variable blab mov qword [rbp - 280], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 280] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 288] ; (SET) lea rsp, [rbp - 280] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 288] ; (SET) lea rsp, [rbp - 280] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 280] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 288] ; (SET) lea rsp, [rbp - 280] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 288], r13 ; (SET) mov rax, qword [rbp - 288] ; (SET) lea rsp, [rbp - 280] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#1#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], r10 ; (SET) mov qword [rbp - 288], r11 ; (SET) mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 296], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 304], rsi ; (SET) mov rax, qword [rbp - 280] ; (SET) mov rbx, qword [rbp - 288] ; (SET) mov rcx, qword [rbp - 296] ; (SET) mov rdx, qword [rbp - 304] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) call compile._#Function._compile_chain_r_post jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#2#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_chain_r#1#loop#2#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#0#if#end: sub rsp, 8 ; Create stack space for local variable post_idx mov qword [rbp - 248], 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 256], rsi ; (SET) mov qword [rbp - 264], 0 ; (SET) mov rax, qword [rbp - 256] ; (SET) mov rbx, qword [rbp - 264] ; (SET) lea rsp, [rbp - 248] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable post mov qword [rbp - 256], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 257], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 256] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 265], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 273], rsi ; (SET) mov rax, qword [rbp - 265] ; (SET) mov rbx, qword [rbp - 273] ; (SET) lea rsp, [rbp - 257] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 257] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#end mov rbx, qword [rbp - 248] ; (SET) inc qword qword [rbp - 248] ; (UNARY) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 264], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#Var.find_method sub rsp, 8 ; Create stack space for local variable to_call mov qword [rbp - 264], rax ; (SET) mov rcx, qword [rbp - 264] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Var.end mov qword [rbp - 184], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#1#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#1#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 360], r10 ; (SET) mov qword [rbp - 368], r11 ; (SET) mov rsi, qword [rbp - 256] ; (SET_PRM_R) mov qword [rbp - 376], rsi ; (SET) mov rsi, qword [rbp - 264] ; (SET_PRM_R) mov qword [rbp - 384], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 392], rsi ; (SET) mov byte [rbp - 393], 1 ; (SET) mov rax, qword [rbp - 360] ; (SET) mov rbx, qword [rbp - 368] ; (SET) mov rcx, qword [rbp - 376] ; (SET) mov rdx, qword [rbp - 384] ; (SET) mov rsi, qword [rbp - 392] ; (SET) mov dil, byte [rbp - 393] ; (SET) lea rsp, [rbp - 352] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_call ; putting struct address into register lea rdi, [rbp - 352] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable result ; putting struct address into register lea rdi, [rbp - 440] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 352] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 448], rax ; (SET) mov rax, qword [rbp - 448] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 440] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#0#wrap#end: jmp compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#0#wrap#end: mov rcx, qword [rbp - 248] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 352], rsi ; (SET) ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 360], rsi ; (SET) mov rax, qword [rbp - 344] ; (SET) mov rbx, qword [rbp - 352] ; (SET) mov rcx, qword [rbp - 360] ; (SET) lea rsp, [rbp - 336] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.member ; putting struct address into register lea rdi, [rbp - 336] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable mbr ; putting struct address into register lea rdi, [rbp - 424] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 336] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov rcx, qword [rbp - 376] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rax ; (SET) mov rax, qword [rbp - 432] ; (SET) lea rsp, [rbp - 424] ; Free stack space (freeing tmp variables) call compile._#Var.end mov qword [rbp - 184], 0 ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end jmp compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rax ; (SET) mov rax, qword [rbp - 432] ; (SET) lea rsp, [rbp - 424] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 424] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#1#wrap#0#if#end ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 432], rsi ; (SET) mov qword [rbp - 440], 0 ; (SET) mov rax, qword [rbp - 432] ; (SET) mov rbx, qword [rbp - 440] ; (SET) lea rsp, [rbp - 424] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable post mov qword [rbp - 432], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 440], r10 ; (SET) mov qword [rbp - 448], r11 ; (SET) mov rsi, qword [rbp - 432] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 464], rsi ; (SET) mov rax, qword [rbp - 440] ; (SET) mov rbx, qword [rbp - 448] ; (SET) mov rcx, qword [rbp - 456] ; (SET) mov rdx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 432] ; Free stack space (freeing tmp variables) call compile._#Function._compile_chain_r_post jmp compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#1#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#0#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#1#wrap#end: jmp compile._#Function._compile_chain_r#1#loop#2#wrap#end compile._#Function._compile_chain_r#1#loop#2#wrap#1#if#end: compile._#Function._compile_chain_r#1#loop#2#wrap#end: sub rsp, 8 ; Create stack space for local variable post sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 256], 1 ; (SET) ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 256] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#3#loop#end compile._#Function._compile_chain_r#1#loop#3#loop#start: ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], rsi ; (SET) mov rsi, qword [rbp - 256] ; (SET_PRM_R) mov qword [rbp - 272], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov qword [rbp - 248], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 264], r10 ; (SET) mov qword [rbp - 272], r11 ; (SET) mov rsi, qword [rbp - 248] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 264] ; (SET) mov rbx, qword [rbp - 272] ; (SET) mov rcx, qword [rbp - 280] ; (SET) mov rdx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 256] ; Free stack space (freeing tmp variables) call compile._#Function._compile_chain_r_post compile._#Function._compile_chain_r#1#loop#3#loop#rep: mov rbx, qword [rbp - 256] ; (SET) inc qword qword [rbp - 256] ; (UNARY) ; putting struct address into register mov rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 256] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#3#loop#end jmp compile._#Function._compile_chain_r#1#loop#3#loop#start compile._#Function._compile_chain_r#1#loop#3#loop#end: compile._#Function._compile_chain_r#1#loop#rep: cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_chain_r#1#loop#end jmp compile._#Function._compile_chain_r#1#loop#start compile._#Function._compile_chain_r#1#loop#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain_r#end compile._#Function._compile_chain_r#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_chain: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 32 ; Create stack space for local variable chain sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 8 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 184], r10 ; (SET) mov qword [rbp - 192], r11 ; (SET) mov qword [rbp - 200], r12 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 208], rsi ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) mov rcx, qword [rbp - 200] ; (SET) mov rdx, qword [rbp - 208] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_chain_r ; putting struct address into register lea rdi, [rbp - 176] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 176] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_chain#end compile._#Function._compile_chain#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_bool_op: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 168], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 176], rsi ; (SET) mov rax, qword [rbp - 168] ; (SET) mov rbx, qword [rbp - 176] ; (SET) lea rsp, [rbp - 160] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Scope.gen_sub ; putting struct address into register lea rdi, [rbp - 160] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable bs ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 160] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], 0 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], rsi ; (SET) mov qword [rbp - 280], 1 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r15, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) mov qword [rbp - 280], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 288], rsi ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type sub rsp, 8 ; Create stack space for local variable t mov qword [rbp - 272], rax ; (SET) sub rsp, 88 ; Create stack space for local variable dummy sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 360] ; initial struct addr move (SET_STR_R) mov qword [rbp - 368], rax ; (SET) mov rsi, qword [rbp - 272] ; (SET_PRM_R) mov qword [rbp - 376], rsi ; (SET) mov rax, qword [rbp - 368] ; (SET) mov rbx, qword [rbp - 376] ; (SET) lea rsp, [rbp - 360] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 456], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 360] ; initial struct addr move (SET_STR_R) mov qword [rbp - 464], rsi ; (SET) mov rax, qword [rbp - 456] ; (SET) mov rbx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 448] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 536] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 448] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 360] ; initial struct addr move (SET_STR_R) mov qword [rbp - 544], rax ; (SET) mov rax, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 632], r10 ; (SET) mov qword [rbp - 640], r11 ; (SET) mov qword [rbp - 648], r13 ; (SET) mov rax, qword [rbp - 632] ; (SET) mov rbx, qword [rbp - 640] ; (SET) mov rcx, qword [rbp - 648] ; (SET) lea rsp, [rbp - 624] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 624] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable lhs ; putting struct address into register lea rdi, [rbp - 712] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 624] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 713], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 721], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 729], rsi ; (SET) mov rax, qword [rbp - 721] ; (SET) mov rbx, qword [rbp - 729] ; (SET) lea rsp, [rbp - 713] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 713] ; (SET) lea rsp, [rbp - 712] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 720], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 728], rsi ; (SET) mov byte [rbp - 729], 1 ; (SET) mov rax, qword [rbp - 720] ; (SET) mov rbx, qword [rbp - 728] ; (SET) mov cl, byte [rbp - 729] ; (SET) lea rsp, [rbp - 712] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after jmp compile._#Function._compile_bool_op#2#wrap#end compile._#Function._compile_bool_op#2#wrap#0#if#end: compile._#Function._compile_bool_op#2#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 713], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 721], rax ; (SET) mov rax, qword [rbp - 721] ; (SET) lea rsp, [rbp - 713] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 713] ; (SET) lea rsp, [rbp - 712] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_bool_op#3#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 720], rsi ; (SET) mov rax, qword [rbp - 720] ; (SET) lea rsp, [rbp - 712] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 720], rax ; (SET) mov rax, qword [rbp - 720] ; (SET) lea rsp, [rbp - 712] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 720], rax ; (SET) mov rax, qword [rbp - 720] ; (SET) lea rsp, [rbp - 712] ; Free stack space (freeing tmp variables) call compile._#Scope.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 536] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bool_op#end jmp compile._#Function._compile_bool_op#3#wrap#end compile._#Function._compile_bool_op#3#wrap#0#if#end: compile._#Function._compile_bool_op#3#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable buf mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 720], rsi ; (SET) mov r8, r15 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 38 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 728], rax ; (SET) mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rax, qword [rbp - 728] ; (SET) mov rbx, qword [rbp - 736] ; (SET) lea rsp, [rbp - 720] ; Free stack space (freeing tmp variables) call compile._#Var.test sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 728], rax ; (SET) mov rax, qword [rbp - 728] ; (SET) lea rsp, [rbp - 720] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 728], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#4#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 744], rsi ; (SET) mov rax, qword [rbp - 736] ; (SET) mov rbx, qword [rbp - 744] ; (SET) lea rsp, [rbp - 728] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rsi, qword [rbp - 728] ; (SET_PRM_R) mov qword [rbp - 744], rsi ; (SET) mov rax, qword [rbp - 736] ; (SET) mov rbx, qword [rbp - 744] ; (SET) lea rsp, [rbp - 728] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#4#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 744], rsi ; (SET) mov rax, qword [rbp - 736] ; (SET) mov rbx, qword [rbp - 744] ; (SET) lea rsp, [rbp - 728] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_bool_op#4#wrap#end compile._#Function._compile_bool_op#4#wrap#0#if#end: mov r8, r15 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 124 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 728], rax ; (SET) mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rax, qword [rbp - 728] ; (SET) mov rbx, qword [rbp - 736] ; (SET) lea rsp, [rbp - 720] ; Free stack space (freeing tmp variables) call compile._#Var.test sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 728], rax ; (SET) mov rax, qword [rbp - 728] ; (SET) lea rsp, [rbp - 720] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label sub rsp, 8 ; Create stack space for local variable lab mov qword [rbp - 728], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#4#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 744], rsi ; (SET) mov rax, qword [rbp - 736] ; (SET) mov rbx, qword [rbp - 744] ; (SET) lea rsp, [rbp - 728] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rsi, qword [rbp - 728] ; (SET_PRM_R) mov qword [rbp - 744], rsi ; (SET) mov rax, qword [rbp - 736] ; (SET) mov rbx, qword [rbp - 744] ; (SET) lea rsp, [rbp - 728] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 736], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#4#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 744], rsi ; (SET) mov rax, qword [rbp - 736] ; (SET) mov rbx, qword [rbp - 744] ; (SET) lea rsp, [rbp - 728] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c jmp compile._#Function._compile_bool_op#4#wrap#end compile._#Function._compile_bool_op#4#wrap#1#if#end: mov r8, r15 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 94 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#2#if#end mov rcx, qword [rbp - 664] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#0#bool#end mov rcx, qword [rbp - 664] ; (SET) cmp rcx, 11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 721], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 729], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 737], rsi ; (SET) mov rax, qword [rbp - 729] ; (SET) mov rbx, qword [rbp - 737] ; (SET) lea rsp, [rbp - 721] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 721] ; (SET) lea rsp, [rbp - 720] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#end sub rsp, 1 ; Create stack space for local variable was_ref mov byte [rbp - 721], 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 722], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 730], rax ; (SET) mov rax, qword [rbp - 730] ; (SET) lea rsp, [rbp - 722] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 722] ; (SET) lea rsp, [rbp - 721] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end mov byte [rbp - 721], 1 ; (SET) sub rsp, 4 ; Create stack space for local variable ptr mov dword [rbp - 725], 0 ; (SET) mov ebx, dword [rbp - 725] ; (SET) sub ebx, 1 ; (STD_OP) mov dword [rbp - 725], ebx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 733], rax ; (SET) mov rax, qword [rbp - 733] ; (SET) lea rsp, [rbp - 725] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 733], rax ; (SET) mov esi, dword [rbp - 725] ; (SET_PRM_R) mov dword [rbp - 737], esi ; (SET) mov rax, qword [rbp - 733] ; (SET) mov ebx, dword [rbp - 737] ; (SET) lea rsp, [rbp - 725] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 905], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 913], rsi ; (SET) mov rax, qword [rbp - 905] ; (SET) mov rbx, qword [rbp - 913] ; (SET) lea rsp, [rbp - 897] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 897] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 809] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 897] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 809] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 809] ; initial struct addr move (SET_STR_R) mov qword [rbp - 817], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 825], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 833], rsi ; (SET) mov rax, qword [rbp - 817] ; (SET) mov rbx, qword [rbp - 825] ; (SET) mov rcx, qword [rbp - 833] ; (SET) lea rsp, [rbp - 809] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 817], rax ; (SET) mov rax, qword [rbp - 817] ; (SET) lea rsp, [rbp - 809] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 712] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 809] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov cl, byte [rbp - 721] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 817], rax ; (SET) mov rax, qword [rbp - 817] ; (SET) lea rsp, [rbp - 809] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 817], rax ; (SET) mov dword [rbp - 821], 0 ; (SET) mov rax, qword [rbp - 817] ; (SET) mov ebx, dword [rbp - 821] ; (SET) lea rsp, [rbp - 809] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#1#wrap#end compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#end compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#end compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#0#if#end: compile._#Function._compile_bool_op#4#wrap#2#if#0#wrap#end: jmp compile._#Function._compile_bool_op#4#wrap#end compile._#Function._compile_bool_op#4#wrap#2#if#end: compile._#Function._compile_bool_op#4#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 816], r10 ; (SET) mov qword [rbp - 824], r11 ; (SET) mov qword [rbp - 832], r14 ; (SET) mov rax, qword [rbp - 816] ; (SET) mov rbx, qword [rbp - 824] ; (SET) mov rcx, qword [rbp - 832] ; (SET) lea rsp, [rbp - 808] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 808] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable rhs ; putting struct address into register lea rdi, [rbp - 896] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 808] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 897], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 896] ; initial struct addr move (SET_STR_R) mov qword [rbp - 905], rax ; (SET) mov rax, qword [rbp - 905] ; (SET) lea rsp, [rbp - 897] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov bl, byte [rbp - 897] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_bool_op#5#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 904], rsi ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 896] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Scope.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 536] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bool_op#end jmp compile._#Function._compile_bool_op#5#wrap#end compile._#Function._compile_bool_op#5#wrap#0#if#end: compile._#Function._compile_bool_op#5#wrap#end: mov r8, r15 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 94 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#6#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref sub rsp, 1 ; Create stack space for local variable is_ref mov byte [rbp - 897], al ; (SET) mov rcx, qword [rbp - 664] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile._#Function._compile_bool_op#6#wrap#0#if#0#wrap#0#if#0#bool#end mov cl, byte [rbp - 897] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_bool_op#6#wrap#0#if#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#6#wrap#0#if#0#wrap#0#if#end sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 1081], rax ; (SET) mov rax, qword [rbp - 1081] ; (SET) lea rsp, [rbp - 1073] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 1073] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 985] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 1073] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 985] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 985] ; initial struct addr move (SET_STR_R) mov qword [rbp - 993], rax ; (SET) mov rax, qword [rbp - 993] ; (SET) lea rsp, [rbp - 985] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs mov qword [rbp - 937], 3 ; (SET) mov qword [rbp - 929], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 985] ; initial struct addr move (SET_STR_R) mov qword [rbp - 993], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 1001], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 1009], rsi ; (SET) mov rax, qword [rbp - 993] ; (SET) mov rbx, qword [rbp - 1001] ; (SET) mov rcx, qword [rbp - 1009] ; (SET) lea rsp, [rbp - 985] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 993], rax ; (SET) mov rax, qword [rbp - 993] ; (SET) lea rsp, [rbp - 985] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 712] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 985] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bool_op#6#wrap#0#if#0#wrap#end compile._#Function._compile_bool_op#6#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_bool_op#6#wrap#0#if#0#wrap#end: mov r8, r15 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 33 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 905], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 913], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 921], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 896] ; initial struct addr move (SET_STR_R) mov qword [rbp - 929], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 937], rsi ; (SET) mov rax, qword [rbp - 905] ; (SET) mov rbx, qword [rbp - 913] ; (SET) mov rcx, qword [rbp - 921] ; (SET) mov rdx, qword [rbp - 929] ; (SET) mov rsi, qword [rbp - 937] ; (SET) lea rsp, [rbp - 897] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#end compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 905], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 913], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 921], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 896] ; initial struct addr move (SET_STR_R) mov qword [rbp - 929], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 937], rsi ; (SET) mov rax, qword [rbp - 905] ; (SET) mov rbx, qword [rbp - 913] ; (SET) mov rcx, qword [rbp - 921] ; (SET) mov rdx, qword [rbp - 929] ; (SET) mov rsi, qword [rbp - 937] ; (SET) lea rsp, [rbp - 897] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#end compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#1#if#end: compile._#Function._compile_bool_op#6#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_bool_op#6#wrap#end compile._#Function._compile_bool_op#6#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 896] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 912], rsi ; (SET) mov rax, qword [rbp - 904] ; (SET) mov rbx, qword [rbp - 912] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.test sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Scope.place_end_label mov r8, r15 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 33 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 912], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 920], rsi ; (SET) mov rax, qword [rbp - 904] ; (SET) mov rbx, qword [rbp - 912] ; (SET) mov rcx, qword [rbp - 920] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.cset jmp compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#end compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rsi, qword [rbp - 720] ; (SET_PRM_R) mov qword [rbp - 912], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 920], rsi ; (SET) mov rax, qword [rbp - 904] ; (SET) mov rbx, qword [rbp - 912] ; (SET) mov rcx, qword [rbp - 920] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.cset jmp compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#end compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#1#if#end: compile._#Function._compile_bool_op#6#wrap#1#if#0#wrap#end: jmp compile._#Function._compile_bool_op#6#wrap#end compile._#Function._compile_bool_op#6#wrap#1#if#end: compile._#Function._compile_bool_op#6#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 712] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 896] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 904], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 912], rsi ; (SET) mov byte [rbp - 913], 1 ; (SET) mov rax, qword [rbp - 904] ; (SET) mov rbx, qword [rbp - 912] ; (SET) mov cl, byte [rbp - 913] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 904], rax ; (SET) mov rax, qword [rbp - 904] ; (SET) lea rsp, [rbp - 896] ; Free stack space (freeing tmp variables) call compile._#Scope.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 536] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bool_op#end compile._#Function._compile_bool_op#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_cmp_op: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r15, rax ; (SET) sub rsp, 88 ; Create stack space for local variable dummy sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r15 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], r10 ; (SET) mov qword [rbp - 424], r11 ; (SET) mov qword [rbp - 432], r13 ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable lhs ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 497], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 505], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 513], rsi ; (SET) mov rax, qword [rbp - 505] ; (SET) mov rbx, qword [rbp - 513] ; (SET) lea rsp, [rbp - 497] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 497] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 504], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 512], rsi ; (SET) mov byte [rbp - 513], 1 ; (SET) mov rax, qword [rbp - 504] ; (SET) mov rbx, qword [rbp - 512] ; (SET) mov cl, byte [rbp - 513] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after jmp compile._#Function._compile_cmp_op#1#wrap#end compile._#Function._compile_cmp_op#1#wrap#0#if#end: compile._#Function._compile_cmp_op#1#wrap#end: mov rcx, qword [rbp - 448] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_cmp_op#2#wrap#0#if#0#bool#end mov rcx, qword [rbp - 448] ; (SET) cmp rcx, 11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_cmp_op#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#2#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 497], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 505], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 513], rsi ; (SET) mov rax, qword [rbp - 505] ; (SET) mov rbx, qword [rbp - 513] ; (SET) lea rsp, [rbp - 497] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 497] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#end sub rsp, 1 ; Create stack space for local variable was_ref mov byte [rbp - 497], 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 498], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 506], rax ; (SET) mov rax, qword [rbp - 506] ; (SET) lea rsp, [rbp - 498] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 498] ; (SET) lea rsp, [rbp - 497] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end mov byte [rbp - 497], 1 ; (SET) sub rsp, 4 ; Create stack space for local variable ptr mov dword [rbp - 501], 0 ; (SET) mov ebx, dword [rbp - 501] ; (SET) sub ebx, 1 ; (STD_OP) mov dword [rbp - 501], ebx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 509], rax ; (SET) mov rax, qword [rbp - 509] ; (SET) lea rsp, [rbp - 501] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 509], rax ; (SET) mov esi, dword [rbp - 501] ; (SET_PRM_R) mov dword [rbp - 513], esi ; (SET) mov rax, qword [rbp - 509] ; (SET) mov ebx, dword [rbp - 513] ; (SET) lea rsp, [rbp - 501] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 681], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 689], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 673] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 585] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 673] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 585] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 585] ; initial struct addr move (SET_STR_R) mov qword [rbp - 593], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 601], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 609], rsi ; (SET) mov rax, qword [rbp - 593] ; (SET) mov rbx, qword [rbp - 601] ; (SET) mov rcx, qword [rbp - 609] ; (SET) lea rsp, [rbp - 585] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 593], rax ; (SET) mov rax, qword [rbp - 593] ; (SET) lea rsp, [rbp - 585] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 585] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov cl, byte [rbp - 497] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 593], rax ; (SET) mov rax, qword [rbp - 593] ; (SET) lea rsp, [rbp - 585] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 593], rax ; (SET) mov dword [rbp - 597], 0 ; (SET) mov rax, qword [rbp - 593] ; (SET) mov ebx, dword [rbp - 597] ; (SET) lea rsp, [rbp - 585] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#1#wrap#end compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#end compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_cmp_op#2#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_cmp_op#2#wrap#end compile._#Function._compile_cmp_op#2#wrap#0#if#end: compile._#Function._compile_cmp_op#2#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 592], r10 ; (SET) mov qword [rbp - 600], r11 ; (SET) mov qword [rbp - 608], r14 ; (SET) mov rax, qword [rbp - 592] ; (SET) mov rbx, qword [rbp - 600] ; (SET) mov rcx, qword [rbp - 608] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 584] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable rhs ; putting struct address into register lea rdi, [rbp - 672] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 673], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 682], rax ; (SET) mov rax, qword [rbp - 682] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov r8b, byte [rbp - 674] ; (SET) mov bl, byte [rbp - 673] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile._#Function._compile_cmp_op#3#wrap#0#if#0#bool#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 673], bl ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], r8b ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 675], r9b ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 683], rax ; (SET) mov rax, qword [rbp - 683] ; (SET) lea rsp, [rbp - 675] ; Free stack space (freeing tmp variables) call compile._#Var.is_struct mov r9b, byte [rbp - 675] ; (SET) mov r8b, byte [rbp - 674] ; (SET) mov bl, byte [rbp - 673] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 673], al ; (SET) mov cl, byte [rbp - 673] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Function._compile_cmp_op#3#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_cmp_op#3#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 680], rsi ; (SET) mov rax, qword [rbp - 680] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 680], rax ; (SET) mov rax, qword [rbp - 680] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 680], rax ; (SET) mov rax, qword [rbp - 680] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 680], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 688], rsi ; (SET) mov byte [rbp - 689], 1 ; (SET) mov rax, qword [rbp - 680] ; (SET) mov rbx, qword [rbp - 688] ; (SET) mov cl, byte [rbp - 689] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_cmp_op#end jmp compile._#Function._compile_cmp_op#3#wrap#end compile._#Function._compile_cmp_op#3#wrap#0#if#end: compile._#Function._compile_cmp_op#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 680], rax ; (SET) mov rax, qword [rbp - 680] ; (SET) lea rsp, [rbp - 672] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref sub rsp, 1 ; Create stack space for local variable is_ref mov byte [rbp - 673], al ; (SET) mov rcx, qword [rbp - 448] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile._#Function._compile_cmp_op#4#wrap#0#if#0#bool#end mov cl, byte [rbp - 673] ; (SET) cmp cl, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_cmp_op#4#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#4#wrap#0#if#end sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 857], rax ; (SET) mov rax, qword [rbp - 857] ; (SET) lea rsp, [rbp - 849] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 849] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 761] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 849] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 761] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 761] ; initial struct addr move (SET_STR_R) mov qword [rbp - 769], rax ; (SET) mov rax, qword [rbp - 769] ; (SET) lea rsp, [rbp - 761] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs mov qword [rbp - 713], 3 ; (SET) mov qword [rbp - 705], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 761] ; initial struct addr move (SET_STR_R) mov qword [rbp - 769], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 777], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 785], rsi ; (SET) mov rax, qword [rbp - 769] ; (SET) mov rbx, qword [rbp - 777] ; (SET) mov rcx, qword [rbp - 785] ; (SET) lea rsp, [rbp - 761] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 769], rax ; (SET) mov rax, qword [rbp - 769] ; (SET) lea rsp, [rbp - 761] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 761] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_cmp_op#4#wrap#end compile._#Function._compile_cmp_op#4#wrap#0#if#end: compile._#Function._compile_cmp_op#4#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#2#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#3#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#4#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#5#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#5#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#6#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#6#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#6#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 674], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 682], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 690], rsi ; (SET) mov rax, qword [rbp - 682] ; (SET) mov rbx, qword [rbp - 690] ; (SET) lea rsp, [rbp - 674] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 674] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_cmp_op#5#wrap#7#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 689], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 697], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 705], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_cmp_op#5#wrap#7#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 713], rsi ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov rcx, qword [rbp - 697] ; (SET) mov rdx, qword [rbp - 705] ; (SET) mov rsi, qword [rbp - 713] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.cmov jmp compile._#Function._compile_cmp_op#5#wrap#end compile._#Function._compile_cmp_op#5#wrap#7#if#end: compile._#Function._compile_cmp_op#5#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) mov rax, qword [rbp - 681] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 672] ; initial struct addr move (SET_STR_R) mov qword [rbp - 681], rax ; (SET) mov rax, qword [rbp - 681] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 681], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 689], rsi ; (SET) mov byte [rbp - 690], 1 ; (SET) mov rax, qword [rbp - 681] ; (SET) mov rbx, qword [rbp - 689] ; (SET) mov cl, byte [rbp - 690] ; (SET) lea rsp, [rbp - 673] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_cmp_op#end compile._#Function._compile_cmp_op#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_bin: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#0#wrap#0#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_chain ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#end jmp compile._#Function._compile_bin#0#wrap#end compile._#Function._compile_bin#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.BOOL_OPS] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#0#wrap#1#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_bool_op ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#end jmp compile._#Function._compile_bin#0#wrap#end compile._#Function._compile_bin#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile.CMP_OPS] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call parse._in_csv mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#0#wrap#2#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_cmp_op ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#end jmp compile._#Function._compile_bin#0#wrap#end compile._#Function._compile_bin#0#wrap#2#if#end: compile._#Function._compile_bin#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable lhs ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 249], rsi ; (SET) mov rax, qword [rbp - 241] ; (SET) mov rbx, qword [rbp - 249] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 240], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov byte [rbp - 249], 1 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov cl, byte [rbp - 249] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after jmp compile._#Function._compile_bin#1#wrap#0#if#1#wrap#end compile._#Function._compile_bin#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#0#if#1#wrap#end: mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#0#bool#end mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r9b, al ; Mov after compare cmp r9b, 0 compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 249], rsi ; (SET) mov rax, qword [rbp - 241] ; (SET) mov rbx, qword [rbp - 249] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#end mov r15b, 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end mov r15b, 1 ; (SET) sub rsp, 4 ; Create stack space for local variable ptr mov dword [rbp - 236], 0 ; (SET) mov ebx, dword [rbp - 236] ; (SET) sub ebx, 1 ; (STD_OP) mov dword [rbp - 236], ebx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 244], rax ; (SET) mov rax, qword [rbp - 244] ; (SET) lea rsp, [rbp - 236] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 244], rax ; (SET) mov esi, dword [rbp - 236] ; (SET_PRM_R) mov dword [rbp - 248], esi ; (SET) mov rax, qword [rbp - 244] ; (SET) mov ebx, dword [rbp - 248] ; (SET) lea rsp, [rbp - 236] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#0#wrap#end compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#0#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 416], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 424], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 320] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 344], rsi ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct cmp r15b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_pop sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov dword [rbp - 332], 0 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov ebx, dword [rbp - 332] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#1#wrap#end compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#end compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#1#wrap#end: jmp compile._#Function._compile_bin#1#wrap#0#if#2#wrap#end compile._#Function._compile_bin#1#wrap#0#if#2#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#0#if#2#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r14 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable rhs ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 417], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#1#wrap#0#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 416], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 424], rsi ; (SET) mov byte [rbp - 425], 1 ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov cl, byte [rbp - 425] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Scope.free_to jmp compile._#Function._compile_bin#1#wrap#0#if#3#wrap#end compile._#Function._compile_bin#1#wrap#0#if#3#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#0#if#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#end jmp compile._#Function._compile_bin#1#wrap#end compile._#Function._compile_bin#1#wrap#0#if#end: compile._#Function._compile_bin#1#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable lhs ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 249], rsi ; (SET) mov rax, qword [rbp - 241] ; (SET) mov rbx, qword [rbp - 249] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Scope.is_tmp mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#2#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable copy ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 592], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 600], rsi ; (SET) mov rax, qword [rbp - 592] ; (SET) mov rbx, qword [rbp - 600] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 584] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 504], rax ; (SET) mov rax, qword [rbp - 504] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 504], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 512], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 520], rsi ; (SET) mov rax, qword [rbp - 504] ; (SET) mov rbx, qword [rbp - 512] ; (SET) mov rcx, qword [rbp - 520] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 504], rax ; (SET) mov rax, qword [rbp - 504] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#2#wrap#end compile._#Function._compile_bin#2#wrap#0#if#end: compile._#Function._compile_bin#2#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#3#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable copy ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.strip_refs sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 592], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 600], rsi ; (SET) mov rax, qword [rbp - 592] ; (SET) mov rbx, qword [rbp - 600] ; (SET) lea rsp, [rbp - 584] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp ; putting struct address into register lea rdi, [rbp - 584] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 496] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 584] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 504], rax ; (SET) mov rax, qword [rbp - 504] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 496] ; initial struct addr move (SET_STR_R) mov qword [rbp - 504], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 512], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 520], rsi ; (SET) mov rax, qword [rbp - 504] ; (SET) mov rbx, qword [rbp - 512] ; (SET) mov rcx, qword [rbp - 520] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 504], rax ; (SET) mov rax, qword [rbp - 504] ; (SET) lea rsp, [rbp - 496] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 496] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#3#wrap#end compile._#Function._compile_bin#3#wrap#0#if#end: compile._#Function._compile_bin#3#wrap#end: sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r14 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable rhs ; putting struct address into register lea rdi, [rbp - 408] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.mul jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.div jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.mod jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.add jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.sub jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.and jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#5#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#6#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.or jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#6#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 409], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 417], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_bin#4#wrap#7#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 425], rsi ; (SET) mov rax, qword [rbp - 417] ; (SET) mov rbx, qword [rbp - 425] ; (SET) lea rsp, [rbp - 409] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 409] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_bin#4#wrap#7#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 424], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov rcx, qword [rbp - 432] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.xor jmp compile._#Function._compile_bin#4#wrap#end compile._#Function._compile_bin#4#wrap#7#if#end: compile._#Function._compile_bin#4#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 416], r11 ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 424], rsi ; (SET) mov byte [rbp - 425], 1 ; (SET) mov rax, qword [rbp - 416] ; (SET) mov rbx, qword [rbp - 424] ; (SET) mov cl, byte [rbp - 425] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Scope.free_after sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 408] ; initial struct addr move (SET_STR_R) mov qword [rbp - 416], rax ; (SET) mov rax, qword [rbp - 416] ; (SET) lea rsp, [rbp - 408] ; Free stack space (freeing tmp variables) call compile._#Var.end ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_bin#end compile._#Function._compile_bin#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_pre: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 88 ; Create stack space for local variable out sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.neg jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#1#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.not jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#2#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 328], r10 ; (SET) mov qword [rbp - 336], r11 ; (SET) mov qword [rbp - 344], r13 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 336], rsi ; (SET) mov qword [rbp - 344], 5 ; (SET) mov rax, qword [rbp - 328] ; (SET) mov rbx, qword [rbp - 336] ; (SET) mov rcx, qword [rbp - 344] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#2#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#3#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.dec jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#3#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#4#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov qword [rbp - 248], r11 ; (SET) mov qword [rbp - 256], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) mov rcx, qword [rbp - 256] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.inc jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#4#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#5#if#end sub rsp, 96 ; Create stack space for local variable f_buff sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rax ; (SET) mov rax, qword [rbp - 248] ; (SET) lea rsp, [rbp - 240] ; Free stack space (freeing tmp variables) call compile._#CompBuf.init sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 352], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#5#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 360], rsi ; (SET) mov rax, qword [rbp - 352] ; (SET) mov rbx, qword [rbp - 360] ; (SET) lea rsp, [rbp - 344] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Scope.gen_sub ; putting struct address into register lea rdi, [rbp - 344] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable f_scope ; putting struct address into register lea rdi, [rbp - 448] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 344] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 432], rsi ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 456], rsi ; (SET) mov qword [rbp - 464], 0 ; (SET) mov rax, qword [rbp - 456] ; (SET) mov rbx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 632], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 448] ; initial struct addr move (SET_STR_R) mov qword [rbp - 640], rsi ; (SET) mov qword [rbp - 648], r13 ; (SET) mov rax, qword [rbp - 632] ; (SET) mov rbx, qword [rbp - 640] ; (SET) mov rcx, qword [rbp - 648] ; (SET) lea rsp, [rbp - 624] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 624] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 536] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 624] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 544], r10 ; (SET) mov qword [rbp - 552], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#5#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 560], rsi ; (SET) mov rax, qword [rbp - 544] ; (SET) mov rbx, qword [rbp - 552] ; (SET) mov rcx, qword [rbp - 560] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r14, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 632], rax ; (SET) ; putting struct address into register lea rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 640], rsi ; (SET) mov qword [rbp - 648], r14 ; (SET) mov rax, qword [rbp - 632] ; (SET) mov rbx, qword [rbp - 640] ; (SET) mov rcx, qword [rbp - 648] ; (SET) lea rsp, [rbp - 624] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var._len ; putting struct address into register lea rdi, [rbp - 624] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 624] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 544], rax ; (SET) mov rax, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) call compile._#Var.end mov rcx, qword [rbp - 96] ; (SET) cmp rcx, qword [rel compile.VLOC_LITL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_pre#0#wrap#5#if#3#wrap#0#if#end mov r15, qword [rbp - 376] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 448] ; initial struct addr move (SET_STR_R) mov qword [rbp - 544], rax ; (SET) mov qword [rbp - 552], r15 ; (SET) mov byte [rbp - 553], 1 ; (SET) mov rax, qword [rbp - 544] ; (SET) mov rbx, qword [rbp - 552] ; (SET) mov cl, byte [rbp - 553] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable cb mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 544], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 544] ; (SET_PRM_R) mov qword [rbp - 552], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 560], rsi ; (SET) mov rax, qword [rbp - 552] ; (SET) mov rbx, qword [rbp - 560] ; (SET) lea rsp, [rbp - 544] ; Free stack space (freeing tmp variables) call compile._#CompBuf.append jmp compile._#Function._compile_pre#0#wrap#5#if#3#wrap#end compile._#Function._compile_pre#0#wrap#5#if#3#wrap#0#if#end: compile._#Function._compile_pre#0#wrap#5#if#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 448] ; initial struct addr move (SET_STR_R) mov qword [rbp - 544], rax ; (SET) mov rax, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) call compile._#Scope.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 240] ; initial struct addr move (SET_STR_R) mov qword [rbp - 544], rax ; (SET) mov rax, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) call compile._#CompBuf.end jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#5#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#6#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_pre#0#wrap#6#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Function._compile_pre#0#wrap#end compile._#Function._compile_pre#0#wrap#6#if#end: compile._#Function._compile_pre#0#wrap#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_pre#end compile._#Function._compile_pre#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._find_literal_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for local variable name mov qword [rbp - 64], rcx ; (SET) sub rsp, 32 ; Create stack space for local variable vec sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov qword [rbp - 112], 8 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) lea rsi, qword [rbp - 64] ; (TAKE_PTR) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rsi, qword [rel compile.SEARCH_STRUCT] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 120], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) mov rcx, qword [rbp - 120] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call compile._#Module.find mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Function._find_literal_type#end compile._#Function._find_literal_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_literal: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 88 ; Create stack space for local variable out sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init mov qword [rbp - 88], 1 ; (SET) jmp compile._#Function._compile_literal#0#wrap#end compile._#Function._compile_literal#0#wrap#0#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#1#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init mov qword [rbp - 88], 0 ; (SET) jmp compile._#Function._compile_literal#0#wrap#end compile._#Function._compile_literal#0#wrap#1#if#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 153], rsi ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#2#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 161], rsi ; (SET) mov rax, qword [rbp - 153] ; (SET) mov rbx, qword [rbp - 161] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#2#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init mov qword [rbp - 88], 0 ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov dword [rbp - 156], 1 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov ebx, dword [rbp - 156] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push jmp compile._#Function._compile_literal#0#wrap#end compile._#Function._compile_literal#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 39 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#3#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) mov rbx, r14 ; (SET) add r14, 1 ; (STD_OP) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r14 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils.unquote_cha mov r15b, al ; (SET) movzx rsi, r15b ; (SET_PRM_R) mov qword [rbp - 88], rsi ; (SET) jmp compile._#Function._compile_literal#0#wrap#end compile._#Function._compile_literal#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, qword [r8] ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 34 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Scope.gen_const_name mov r13, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 184], rsi ; (SET) mov rax, qword [rbp - 184] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) sub rsp, 32 call utils.unquote_str ; putting struct address into register lea rdi, [rbp - 176] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable vout ; putting struct address into register lea rdi, [rbp - 208] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 176] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov qword [rbp - 224], r13 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 200] ; (SET_PRM_R) mov qword [rbp - 216], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov qword [rbp - 224], r15 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r15 ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 216], 1 ; (SET) mov rcx, qword [rbp - 216] ; (SET) cmp rcx, qword [rbp - 200] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#4#if#2#loop#end compile._#Function._compile_literal#0#wrap#4#if#2#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rax ; (SET) mov rbx, qword [rbp - 216] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 232], rbx ; (SET) mov rax, qword [rbp - 224] ; (SET) mov rbx, qword [rbp - 232] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable uptr mov qword [rbp - 224], rax ; (SET) sub rsp, 1 ; Create stack space for local variable utmp mov rdi, [rbp - 224] ; (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 225], sil ; (SET) sub rsp, 8 ; Create stack space for tmp variable movzx rsi, byte [rbp - 225] ; (SET_PRM_R) mov qword [rbp - 233], rsi ; (SET) mov rax, qword [rbp - 233] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 233], r14 ; (SET) mov qword [rbp - 241], r15 ; (SET) mov rax, qword [rbp - 233] ; (SET) mov rbx, qword [rbp - 241] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 233], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#2#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 241], rsi ; (SET) mov rax, qword [rbp - 233] ; (SET) mov rbx, qword [rbp - 241] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 233], r15 ; (SET) mov rax, qword [rbp - 233] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call _delete compile._#Function._compile_literal#0#wrap#4#if#2#loop#rep: mov rbx, qword [rbp - 216] ; (SET) inc qword qword [rbp - 216] ; (UNARY) mov rcx, qword [rbp - 216] ; (SET) cmp rcx, qword [rbp - 200] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#4#if#2#loop#end jmp compile._#Function._compile_literal#0#wrap#4#if#2#loop#start compile._#Function._compile_literal#0#wrap#4#if#2#loop#end: mov rcx, qword [rbp - 200] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_literal#0#wrap#4#if#3#wrap#0#if#end sub rsp, 8 ; Create stack space for local variable i mov rsi, qword [rbp - 200] ; (SET_PRM_R) mov qword [rbp - 216], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rax ; (SET) mov rbx, qword [rbp - 216] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 232], rbx ; (SET) mov rax, qword [rbp - 224] ; (SET) mov rbx, qword [rbp - 232] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call utils._#Vector.get sub rsp, 8 ; Create stack space for local variable uptr mov qword [rbp - 224], rax ; (SET) sub rsp, 1 ; Create stack space for local variable utmp mov rdi, [rbp - 224] ; (SET_PRM_L) mov sil, byte [rdi] ; (SET_PRM_R) mov byte [rbp - 225], sil ; (SET) sub rsp, 8 ; Create stack space for tmp variable movzx rsi, byte [rbp - 225] ; (SET_PRM_R) mov qword [rbp - 233], rsi ; (SET) mov rax, qword [rbp - 233] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 233], r14 ; (SET) mov qword [rbp - 241], r15 ; (SET) mov rax, qword [rbp - 233] ; (SET) mov rbx, qword [rbp - 241] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 233], r15 ; (SET) mov rax, qword [rbp - 233] ; (SET) lea rsp, [rbp - 225] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._compile_literal#0#wrap#4#if#3#wrap#end compile._#Function._compile_literal#0#wrap#4#if#3#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#3#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d jmp compile._#Function._compile_literal#0#wrap#4#if#3#wrap#end compile._#Function._compile_literal#0#wrap#4#if#3#wrap#1#if#end: compile._#Function._compile_literal#0#wrap#4#if#3#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov qword [rbp - 224], r13 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov qword [rbp - 224], r15 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov qword [rbp - 224], r13 ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r14 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#7#const#ptr] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_d sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 216], r10 ; (SET) mov qword [rbp - 224], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#4#if#8#const#ptr] ; (SET_PRM_R) mov qword [rbp - 232], rsi ; (SET) mov rax, qword [rbp - 216] ; (SET) mov rbx, qword [rbp - 224] ; (SET) mov rcx, qword [rbp - 232] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type sub rsp, 8 ; Create stack space for local variable t mov qword [rbp - 216], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rax ; (SET) mov rsi, qword [rbp - 216] ; (SET_PRM_R) mov qword [rbp - 232], rsi ; (SET) mov rax, qword [rbp - 224] ; (SET) mov rbx, qword [rbp - 232] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 144] ; (SET_PRM_R) mov qword [rbp - 224], rsi ; (SET) mov rax, qword [rbp - 224] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 208] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rax ; (SET) mov rax, qword [rbp - 224] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 144], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 4 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 224], rax ; (SET) mov dword [rbp - 228], 1 ; (SET) mov rax, qword [rbp - 224] ; (SET) mov ebx, dword [rbp - 228] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call compile._#Var.ptr_push mov rbx, qword [rbp - 96] ; (SET) sub rbx, 2 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 224], r13 ; (SET) mov rax, qword [rbp - 224] ; (SET) lea rsp, [rbp - 216] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Function._compile_literal#0#wrap#end compile._#Function._compile_literal#0#wrap#4#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov rsi, qword [rel compile._#Function._compile_literal#0#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 168], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Function._find_literal_type mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils.cstr_to_int mov qword [rbp - 88], rax ; (SET) jmp compile._#Function._compile_literal#0#wrap#end compile._#Function._compile_literal#0#wrap#5#if#end: compile._#Function._compile_literal#0#wrap#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_literal#end compile._#Function._compile_literal#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._print_artifact: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print_artifact#0#loop#end compile._#Function._print_artifact#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [r12] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print_artifact#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._print_artifact#0#loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Function._print_artifact#0#loop#0#wrap#end compile._#Function._print_artifact#0#loop#0#wrap#0#if#end: compile._#Function._print_artifact#0#loop#0#wrap#end: compile._#Function._print_artifact#0#loop#rep: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print_artifact#0#loop#end jmp compile._#Function._print_artifact#0#loop#start compile._#Function._print_artifact#0#loop#end: compile._#Function._print_artifact#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._compile_value: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_value#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_value ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_value#end jmp compile._#Function._compile_value#0#wrap#end compile._#Function._compile_value#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_LITERAL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_value#0#wrap#1#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_literal ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_value#end jmp compile._#Function._compile_value#0#wrap#end compile._#Function._compile_value#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_value#0#wrap#2#if#end sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 8 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 184], r10 ; (SET) mov qword [rbp - 192], r11 ; (SET) mov qword [rbp - 200], r12 ; (SET) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 208], rsi ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) mov rcx, qword [rbp - 200] ; (SET) mov rdx, qword [rbp - 208] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_chain_r_base ; putting struct address into register lea rdi, [rbp - 176] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 176] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov rcx, qword [rbp - 80] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_value#0#wrap#2#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call utils._#Vector.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 264] ; initial struct addr move (SET_STR_R) mov qword [rbp - 272], rax ; (SET) mov rax, qword [rbp - 272] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Function._compile_value#0#wrap#2#if#0#wrap#end compile._#Function._compile_value#0#wrap#2#if#0#wrap#0#if#end: ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_value#end jmp compile._#Function._compile_value#0#wrap#2#if#0#wrap#end compile._#Function._compile_value#0#wrap#2#if#0#wrap#1#if#end: compile._#Function._compile_value#0#wrap#2#if#0#wrap#end: jmp compile._#Function._compile_value#0#wrap#end compile._#Function._compile_value#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_value#0#wrap#3#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_pre ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_value#end jmp compile._#Function._compile_value#0#wrap#end compile._#Function._compile_value#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_BIN_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._compile_value#0#wrap#4#if#end ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r11 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Function._compile_bin ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_value#end jmp compile._#Function._compile_value#0#wrap#end compile._#Function._compile_value#0#wrap#4#if#end: compile._#Function._compile_value#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_value#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call parse.print_node_type sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._compile_value#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 88 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._init ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Function._compile_value#end compile._#Function._compile_value#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function._print: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._print#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._print#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._print#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print#3#loop#end compile._#Function._print#3#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rbx, r11 ; (SET) add rbx, 2 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print compile._#Function._print#3#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print#3#loop#end jmp compile._#Function._print#3#loop#start compile._#Function._print#3#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 64], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._print#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print#5#loop#end compile._#Function._print#5#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rbx, r11 ; (SET) add rbx, 2 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print compile._#Function._print#5#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function._print#5#loop#end jmp compile._#Function._print#5#loop#start compile._#Function._print#5#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Function._print#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf compile._#Function._print#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Function.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function.end#0#loop#end compile._#Function.end#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Function.end#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function.end#0#loop#end jmp compile._#Function.end#0#loop#start compile._#Function.end#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function.end#1#loop#end compile._#Function.end#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Function.end#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Function.end#1#loop#end jmp compile._#Function.end#1#loop#start compile._#Function.end#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Function.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 88 ; Create stack space for local variable v sub rsp, 64 ; Create stack space for local variable s sub rsp, 97 ; Create stack space for local variable f sub rsp, 145 ; Create stack space for local variable m ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 458], rsi ; (SET) mov qword [rbp - 466], 88 ; (SET) mov rax, qword [rbp - 458] ; (SET) mov rbx, qword [rbp - 466] ; (SET) lea rsp, [rbp - 450] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 458], rsi ; (SET) mov qword [rbp - 466], 64 ; (SET) mov rax, qword [rbp - 458] ; (SET) mov rbx, qword [rbp - 466] ; (SET) lea rsp, [rbp - 450] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 458], rsi ; (SET) mov qword [rbp - 466], 97 ; (SET) mov rax, qword [rbp - 458] ; (SET) mov rbx, qword [rbp - 466] ; (SET) lea rsp, [rbp - 450] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 458], rsi ; (SET) mov qword [rbp - 466], 145 ; (SET) mov rax, qword [rbp - 458] ; (SET) mov rbx, qword [rbp - 466] ; (SET) lea rsp, [rbp - 450] ; Free stack space (freeing tmp variables) call utils._#Vector.init compile._#Module._init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.strcpy mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 136 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r9, rsi ; (SET) mov cx, word [r9] ; (SET) cmp cx, word [rel parse.NTYPE_EXPORT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare mov byte [rbx], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._from_tree compile._#Module.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.update_children: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#0#loop#end compile._#Module.update_children#0#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Module.update_children ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) compile._#Module.update_children#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#0#loop#end jmp compile._#Module.update_children#0#loop#start compile._#Module.update_children#0#loop#end: sub rsp, 32 ; Create stack space for local variable n mov r12, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#1#loop#end compile._#Module.update_children#1#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], rsi ; (SET) mov qword [rbp - 112], r12 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov rsi, qword [rel compile._#Module.update_children#1#loop#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 120], rax ; (SET) mov rax, qword [rbp - 120] ; (SET) lea rsp, [rbp - 112] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 112], rax ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call compile._#Module._find_sub mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov rax, qword [rbp - 104] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Module.update_children#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#1#loop#end jmp compile._#Module.update_children#1#loop#start compile._#Module.update_children#1#loop#end: mov r13, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#2#loop#end compile._#Module.update_children#2#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], rsi ; (SET) mov qword [rbp - 112], r13 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 80 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) compile._#Module.update_children#2#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#2#loop#end jmp compile._#Module.update_children#2#loop#start compile._#Module.update_children#2#loop#end: mov r14, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#3#loop#end compile._#Module.update_children#3#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 104], rsi ; (SET) mov qword [rbp - 112], r14 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 89 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) compile._#Module.update_children#3#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.update_children#3#loop#end jmp compile._#Module.update_children#3#loop#start compile._#Module.update_children#3#loop#end: compile._#Module.update_children#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._create_methods: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 32 ; Create stack space for local variable n sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov rsi, qword [rel compile._#Module._create_methods#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.from_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r11 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 145 ; Create stack space for local variable m sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 233] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Module._init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 233], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 136 ; Add offset when getting member (MEMBER) mov sil, byte [rsi] ; (SET_PRM_R) mov byte [rbp - 97], sil ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 233] ; initial struct addr move (SET_STR_R) mov qword [rbp - 249], rsi ; (SET) mov rax, qword [rbp - 241] ; (SET) mov rbx, qword [rbp - 249] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 241], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 249], rsi ; (SET) mov qword [rbp - 257], r12 ; (SET) mov rax, qword [rbp - 249] ; (SET) mov rbx, qword [rbp - 257] ; (SET) lea rsp, [rbp - 241] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) mov r13, rax ; (SET) ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Module._create_methods#end compile._#Module._create_methods#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.is_method: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strlen mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8, rax ; (SET) cmp r8, 3 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.is_method#0#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Module.is_method#end jmp compile._#Module.is_method#0#wrap#end compile._#Module.is_method#0#wrap#0#if#end: compile._#Module.is_method#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov r11, qword [rsi] ; (SET) mov r8, r11 ; (SET) ; Gen index mov rax, 0 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 95 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.is_method#1#wrap#0#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Module.is_method#end jmp compile._#Module.is_method#1#wrap#end compile._#Module.is_method#1#wrap#0#if#end: mov r8, r11 ; (SET) ; Gen index mov rax, 1 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 35 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.is_method#1#wrap#1#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Module.is_method#end jmp compile._#Module.is_method#1#wrap#end compile._#Module.is_method#1#wrap#1#if#end: mov r8, r11 ; (SET) ; Gen index mov rax, 2 ; (SET) imul rax, 1 ; (MUL) mov rsi, r8 ; (GEN_IDX) add rax, rsi ; (GEN_IDX) mov r8, rax ; (SET) mov cl, byte [r8] ; (SET) cmp cl, 35 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.is_method#1#wrap#2#if#end ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Module.is_method#end jmp compile._#Module.is_method#1#wrap#end compile._#Module.is_method#1#wrap#2#if#end: compile._#Module.is_method#1#wrap#end: ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Module.is_method#end compile._#Module.is_method#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.related_type: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 73] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) call compile._#Module.is_method mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.related_type#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module.related_type#end jmp compile._#Module.related_type#0#wrap#end compile._#Module.related_type#0#wrap#0#if#end: compile._#Module.related_type#0#wrap#end: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) mov r10, qword [rsi] ; (SET) mov r11, qword [rbp - 64] ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.related_type#1#loop#end compile._#Module.related_type#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, r11 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.related_type#1#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Module.related_type#end jmp compile._#Module.related_type#1#loop#0#wrap#end compile._#Module.related_type#1#loop#0#wrap#0#if#end: compile._#Module.related_type#1#loop#0#wrap#end: compile._#Module.related_type#1#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.related_type#1#loop#end jmp compile._#Module.related_type#1#loop#start compile._#Module.related_type#1#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module.related_type#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module.related_type#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module.related_type#end compile._#Module.related_type#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._from_tree: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#end compile._#Module._from_tree#0#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_MODULE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#0#wrap#0#if#end sub rsp, 145 ; Create stack space for local variable m sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rax ; (SET) mov qword [rbp - 217], r13 ; (SET) mov qword [rbp - 225], r12 ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) mov rcx, qword [rbp - 225] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile._#Module.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 209], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 217], rsi ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._from_tree#0#loop#0#wrap#end compile._#Module._from_tree#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_EXPORT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#0#wrap#1#if#end sub rsp, 145 ; Create stack space for local variable m sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 209], rax ; (SET) mov qword [rbp - 217], r13 ; (SET) mov qword [rbp - 225], r12 ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) mov rcx, qword [rbp - 225] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call compile._#Module.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 209], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 201] ; initial struct addr move (SET_STR_R) mov qword [rbp - 217], rsi ; (SET) mov rax, qword [rbp - 209] ; (SET) mov rbx, qword [rbp - 217] ; (SET) lea rsp, [rbp - 201] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._from_tree#0#loop#0#wrap#end compile._#Module._from_tree#0#loop#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_STRUCT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._create_methods mov r15, rax ; (SET) sub rsp, 64 ; Create stack space for local variable s sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov qword [rbp - 136], r13 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call compile._#Struct.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._from_tree#0#loop#0#wrap#end compile._#Module._from_tree#0#loop#0#wrap#2#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FUNCTION] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#0#wrap#3#if#end sub rsp, 97 ; Create stack space for local variable f sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 153] ; initial struct addr move (SET_STR_R) mov qword [rbp - 161], rax ; (SET) mov qword [rbp - 169], r13 ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call compile._#Function.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 161], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 153] ; initial struct addr move (SET_STR_R) mov qword [rbp - 169], rsi ; (SET) mov rax, qword [rbp - 161] ; (SET) mov rbx, qword [rbp - 169] ; (SET) lea rsp, [rbp - 153] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._from_tree#0#loop#0#wrap#end compile._#Module._from_tree#0#loop#0#wrap#3#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_DECL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#0#wrap#4#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._decl jmp compile._#Module._from_tree#0#loop#0#wrap#end compile._#Module._from_tree#0#loop#0#wrap#4#if#end: ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ASM] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#0#wrap#5#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_h sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rsi, qword [rel compile._#Module._from_tree#0#loop#0#wrap#5#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_h jmp compile._#Module._from_tree#0#loop#0#wrap#end compile._#Module._from_tree#0#loop#0#wrap#5#if#end: compile._#Module._from_tree#0#loop#0#wrap#end: compile._#Module._from_tree#0#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._from_tree#0#loop#end jmp compile._#Module._from_tree#0#loop#start compile._#Module._from_tree#0#loop#end: compile._#Module._from_tree#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._method_id: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 32 ; Create stack space for local variable tmp sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov qword [rbp - 136], 8 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for local variable str mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._method_id#0#loop#end compile._#Module._method_id#0#loop#start: mov cl, byte [r11] ; (SET) cmp cl, 46 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._method_id#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rax ; (SET) mov rax, qword [rbp - 136] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 128], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rax ; (SET) lea rsi, qword [rbp - 128] ; (TAKE_PTR) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 136] ; (SET) mov rbx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils._#Vector.push sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rax ; (SET) mov qword [rbp - 144], 1 ; (SET) mov rax, qword [rbp - 136] ; (SET) mov rbx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils._#Vector.init jmp compile._#Module._method_id#0#loop#0#wrap#end compile._#Module._method_id#0#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rax ; (SET) mov qword [rbp - 144], r11 ; (SET) mov rax, qword [rbp - 136] ; (SET) mov rbx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._method_id#0#loop#0#wrap#end compile._#Module._method_id#0#loop#0#wrap#1#if#end: compile._#Module._method_id#0#loop#0#wrap#end: compile._#Module._method_id#0#loop#rep: mov rbx, r11 ; (SET) add r11, 1 ; (STD_OP) mov cl, byte [r11] ; (SET) cmp cl, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._method_id#0#loop#end jmp compile._#Module._method_id#0#loop#start compile._#Module._method_id#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rax ; (SET) mov rax, qword [rbp - 136] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 128], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module._method_id#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rsi, qword [rbp - 128] ; (SET_PRM_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 136] ; (SET) mov rbx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 128] ; Free stack space (freeing tmp variables) call utils.stradd sub rsp, 8 ; Create stack space for local variable last mov qword [rbp - 136], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 128] ; (SET_PRM_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 144] ; (SET) lea rsp, [rbp - 136] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rax ; (SET) lea rsi, qword [rbp - 136] ; (TAKE_PTR) mov qword [rbp - 152], rsi ; (SET) mov rax, qword [rbp - 144] ; (SET) mov rbx, qword [rbp - 152] ; (SET) lea rsp, [rbp - 136] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct jmp compile._#Module._method_id#end compile._#Module._method_id#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._method_id_end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._method_id_end#0#loop#end compile._#Module._method_id_end#0#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [r12] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Module._method_id_end#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._method_id_end#0#loop#end jmp compile._#Module._method_id_end#0#loop#start compile._#Module._method_id_end#0#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Module._method_id_end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._collect_methods: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._collect_methods#0#loop#end compile._#Module._collect_methods#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_FUNCTION] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._collect_methods#0#loop#0#wrap#0#if#end sub rsp, 97 ; Create stack space for local variable f sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 161] ; initial struct addr move (SET_STR_R) mov qword [rbp - 169], rax ; (SET) mov qword [rbp - 177], r11 ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call compile._#Function.init mov byte [rbp - 73], 1 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 169], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 161] ; initial struct addr move (SET_STR_R) mov qword [rbp - 177], rsi ; (SET) mov rax, qword [rbp - 169] ; (SET) mov rbx, qword [rbp - 177] ; (SET) lea rsp, [rbp - 161] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._collect_methods#0#loop#0#wrap#end compile._#Module._collect_methods#0#loop#0#wrap#0#if#end: compile._#Module._collect_methods#0#loop#0#wrap#end: compile._#Module._collect_methods#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._collect_methods#0#loop#end jmp compile._#Module._collect_methods#0#loop#start compile._#Module._collect_methods#0#loop#end: compile._#Module._collect_methods#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.collect_methods: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#end compile._#Module.collect_methods#0#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_METHOD] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#0#wrap#0#if#end sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call compile._#Module._method_id ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable id ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) mov rsi, qword [rel compile.SEARCH_SUB] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 144], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) mov rcx, qword [rbp - 144] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call compile._#Module.find mov r14, rax ; (SET) cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 128], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r14 ; (SET) mov qword [rbp - 136], r12 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call compile._#Module._collect_methods jmp compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 128], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#1#if#end: compile._#Module.collect_methods#0#loop#0#wrap#0#if#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call compile._#Module._method_id_end jmp compile._#Module.collect_methods#0#loop#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_MODULE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_sub mov r14, rax ; (SET) cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module.collect_methods jmp compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#1#if#end: compile._#Module.collect_methods#0#loop#0#wrap#1#if#0#wrap#end: jmp compile._#Module.collect_methods#0#loop#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#1#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_EXPORT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_sub mov r14, rax ; (SET) cmp r14, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module.collect_methods jmp compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#1#if#end: compile._#Module.collect_methods#0#loop#0#wrap#2#if#0#wrap#end: jmp compile._#Module.collect_methods#0#loop#0#wrap#end compile._#Module.collect_methods#0#loop#0#wrap#2#if#end: compile._#Module.collect_methods#0#loop#0#wrap#end: compile._#Module.collect_methods#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.collect_methods#0#loop#end jmp compile._#Module.collect_methods#0#loop#start compile._#Module.collect_methods#0#loop#end: compile._#Module.collect_methods#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._decl: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._decl#0#wrap#0#if#end jmp compile._#Module._decl#end jmp compile._#Module._decl#0#wrap#end compile._#Module._decl#0#wrap#0#if#end: compile._#Module._decl#0#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TYPE] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._decl#1#wrap#0#if#end jmp compile._#Module._decl#end jmp compile._#Module._decl#1#wrap#end compile._#Module._decl#1#wrap#0#if#end: compile._#Module._decl#1#wrap#end: mov r14, 1 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._decl#2#loop#end compile._#Module._decl#2#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r13] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._decl#2#loop#0#wrap#0#if#end sub rsp, 88 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r12 ; (SET) mov qword [rbp - 168], r13 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Module._decl#2#loop#0#wrap#end compile._#Module._decl#2#loop#0#wrap#0#if#end: compile._#Module._decl#2#loop#0#wrap#end: compile._#Module._decl#2#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._decl#2#loop#end jmp compile._#Module._decl#2#loop#start compile._#Module._decl#2#loop#end: compile._#Module._decl#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.compile: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._size_structs sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._compile compile._#Module.compile#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._size_structs: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r11, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#0#loop#end compile._#Module._size_structs#0#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r11 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Struct._compute_size jmp compile._#Module._size_structs#0#loop#0#wrap#end compile._#Module._size_structs#0#loop#0#wrap#0#if#end: compile._#Module._size_structs#0#loop#0#wrap#end: compile._#Module._size_structs#0#loop#rep: mov rbx, r11 ; (SET) inc r11 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#0#loop#end jmp compile._#Module._size_structs#0#loop#start compile._#Module._size_structs#0#loop#end: mov r12, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#1#loop#end compile._#Module._size_structs#1#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._resolve_type compile._#Module._size_structs#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#1#loop#end jmp compile._#Module._size_structs#1#loop#start compile._#Module._size_structs#1#loop#end: mov r13, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#2#loop#end compile._#Module._size_structs#2#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Function._resolve_type compile._#Module._size_structs#2#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#2#loop#end jmp compile._#Module._size_structs#2#loop#start compile._#Module._size_structs#2#loop#end: mov r14, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#3#loop#end compile._#Module._size_structs#3#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Module._size_structs compile._#Module._size_structs#3#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._size_structs#3#loop#end jmp compile._#Module._size_structs#3#loop#start compile._#Module._size_structs#3#loop#end: compile._#Module._size_structs#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._compile: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) mov r12, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._compile#0#loop#end compile._#Module._compile#0#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var._static_compile compile._#Module._compile#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._compile#0#loop#end jmp compile._#Module._compile#0#loop#start compile._#Module._compile#0#loop#end: mov r13, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._compile#1#loop#end compile._#Module._compile#1#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r12 ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov qword [rbp - 88], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Function._compile compile._#Module._compile#1#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._compile#1#loop#end jmp compile._#Module._compile#1#loop#start compile._#Module._compile#1#loop#end: mov r14, 0 ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._compile#2#loop#end compile._#Module._compile#2#loop#start: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r13 ; (SET) mov qword [rbp - 80], r10 ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Module._compile compile._#Module._compile#2#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._compile#2#loop#end jmp compile._#Module._compile#2#loop#start compile._#Module._compile#2#loop#end: compile._#Module._compile#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.find: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.find#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module.find#end jmp compile._#Module.find#0#wrap#end compile._#Module.find#0#wrap#0#if#end: compile._#Module.find#0#wrap#end: ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find mov rax, rax ; (SET) jmp compile._#Module.find#end compile._#Module.find#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._find: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) mov r8, r13 ; (SET) add r8, 1 ; (STD_OP) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r8, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 64], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 64] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#0#if#0#loop#end compile._#Module._find#0#wrap#0#if#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 65], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [r15] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 81], rsi ; (SET) mov rax, qword [rbp - 73] ; (SET) mov rbx, qword [rbp - 81] ; (SET) lea rsp, [rbp - 65] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 65] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r14 ; (SET) mov qword [rbp - 80], r11 ; (SET) mov qword [rbp - 88], r12 ; (SET) mov rbx, r13 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) mov rcx, qword [rbp - 88] ; (SET) mov rdx, qword [rbp - 96] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Module._find sub rsp, 8 ; Create stack space for local variable v mov qword [rbp - 72], rax ; (SET) mov rcx, qword [rbp - 72] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rbp - 72] ; (SET) jmp compile._#Module._find#end jmp compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#0#if#0#wrap#end compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#end compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#0#if#end: compile._#Module._find#0#wrap#0#if#0#loop#0#wrap#end: compile._#Module._find#0#wrap#0#if#0#loop#rep: mov rbx, qword [rbp - 64] ; (SET) inc qword qword [rbp - 64] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 64] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#0#if#0#loop#end jmp compile._#Module._find#0#wrap#0#if#0#loop#start compile._#Module._find#0#wrap#0#if#0#loop#end: jmp compile._#Module._find#0#wrap#end compile._#Module._find#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) mov r15, qword [rel NULL] ; (SET) cmp r11, qword [rel compile.SEARCH_VAR] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [r14] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_var mov r15, rax ; (SET) jmp compile._#Module._find#0#wrap#1#if#0#wrap#end compile._#Module._find#0#wrap#1#if#0#wrap#0#if#end: cmp r11, qword [rel compile.SEARCH_STRUCT] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#1#if#0#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [r14] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_struct mov r15, rax ; (SET) jmp compile._#Module._find#0#wrap#1#if#0#wrap#end compile._#Module._find#0#wrap#1#if#0#wrap#1#if#end: cmp r11, qword [rel compile.SEARCH_FUNC] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#1#if#0#wrap#2#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [r14] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_func mov r15, rax ; (SET) jmp compile._#Module._find#0#wrap#1#if#0#wrap#end compile._#Module._find#0#wrap#1#if#0#wrap#2#if#end: cmp r11, qword [rel compile.SEARCH_SUB] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#1#if#0#wrap#3#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rsi, qword [r14] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find_sub mov r15, rax ; (SET) jmp compile._#Module._find#0#wrap#1#if#0#wrap#end compile._#Module._find#0#wrap#1#if#0#wrap#3#if#end: compile._#Module._find#0#wrap#1#if#0#wrap#end: cmp r15, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#0#wrap#1#if#1#wrap#0#if#end ; STARTING RETURN mov rax, r15 ; (SET) jmp compile._#Module._find#end jmp compile._#Module._find#0#wrap#1#if#1#wrap#end compile._#Module._find#0#wrap#1#if#1#wrap#0#if#end: compile._#Module._find#0#wrap#1#if#1#wrap#end: jmp compile._#Module._find#0#wrap#end compile._#Module._find#0#wrap#1#if#end: compile._#Module._find#0#wrap#end: cmp r13, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Module._find#1#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Module._find#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find#1#wrap#0#if#end ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 137 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._find mov rax, rax ; (SET) jmp compile._#Module._find#end jmp compile._#Module._find#1#wrap#end compile._#Module._find#1#wrap#0#if#end: compile._#Module._find#1#wrap#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module._find#end compile._#Module._find#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._find_var: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_var#0#loop#end compile._#Module._find_var#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_var#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Module._find_var#end jmp compile._#Module._find_var#0#loop#0#wrap#end compile._#Module._find_var#0#loop#0#wrap#0#if#end: compile._#Module._find_var#0#loop#0#wrap#end: compile._#Module._find_var#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_var#0#loop#end jmp compile._#Module._find_var#0#loop#start compile._#Module._find_var#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module._find_var#end compile._#Module._find_var#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._find_struct: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_struct#0#loop#end compile._#Module._find_struct#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_struct#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Module._find_struct#end jmp compile._#Module._find_struct#0#loop#0#wrap#end compile._#Module._find_struct#0#loop#0#wrap#0#if#end: compile._#Module._find_struct#0#loop#0#wrap#end: compile._#Module._find_struct#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_struct#0#loop#end jmp compile._#Module._find_struct#0#loop#start compile._#Module._find_struct#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module._find_struct#end compile._#Module._find_struct#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._find_func: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_func#0#loop#end compile._#Module._find_func#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_func#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Module._find_func#end jmp compile._#Module._find_func#0#loop#0#wrap#end compile._#Module._find_func#0#loop#0#wrap#0#if#end: compile._#Module._find_func#0#loop#0#wrap#end: compile._#Module._find_func#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_func#0#loop#end jmp compile._#Module._find_func#0#loop#start compile._#Module._find_func#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module._find_func#end compile._#Module._find_func#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._find_sub: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_sub#0#loop#end compile._#Module._find_sub#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r11 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_sub#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Module._find_sub#end jmp compile._#Module._find_sub#0#loop#0#wrap#end compile._#Module._find_sub#0#loop#0#wrap#0#if#end: compile._#Module._find_sub#0#loop#0#wrap#end: compile._#Module._find_sub#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._find_sub#0#loop#end jmp compile._#Module._find_sub#0#loop#start compile._#Module._find_sub#0#loop#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Module._find_sub#end compile._#Module._find_sub#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.print: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module._print compile._#Module.print#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module._print: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module._print#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module._print#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#2#loop#end compile._#Module._print#2#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print compile._#Module._print#2#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#2#loop#end jmp compile._#Module._print#2#loop#start compile._#Module._print#2#loop#end: mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#3#loop#end compile._#Module._print#3#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Struct._print compile._#Module._print#3#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#3#loop#end jmp compile._#Module._print#3#loop#start compile._#Module._print#3#loop#end: mov r15, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#4#loop#end compile._#Module._print#4#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function._print compile._#Module._print#4#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#4#loop#end jmp compile._#Module._print#4#loop#start compile._#Module._print#4#loop#end: sub rsp, 8 ; Create stack space for local variable i mov qword [rbp - 64], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 64] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#5#loop#end compile._#Module._print#5#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r15, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r15 ; (SET) mov rbx, r11 ; (SET) add rbx, 1 ; (STD_OP) mov qword [rbp - 80], rbx ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Module._print compile._#Module._print#5#loop#rep: mov rbx, qword [rbp - 64] ; (SET) inc qword qword [rbp - 64] ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rcx, qword [rbp - 64] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module._print#5#loop#end jmp compile._#Module._print#5#loop#start compile._#Module._print#5#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._indent sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Module._print#6#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf compile._#Module._print#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Module.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#0#loop#end compile._#Module.end#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Module.end#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#0#loop#end jmp compile._#Module.end#0#loop#start compile._#Module.end#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#1#loop#end compile._#Module.end#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Struct.end compile._#Module.end#1#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#1#loop#end jmp compile._#Module.end#1#loop#start compile._#Module.end#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 40 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#2#loop#end compile._#Module.end#2#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Function.end compile._#Module.end#2#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#2#loop#end jmp compile._#Module.end#2#loop#start compile._#Module.end#2#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 72 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end mov r15, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#3#loop#end compile._#Module.end#3#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Module.end compile._#Module.end#3#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Module.end#3#loop#end jmp compile._#Module.end#3#loop#start compile._#Module.end#3#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 104 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Module.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.init: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) mov r13, rdx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rbx, rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.strcpy mov rbx, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov qword [rbx], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r12 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov rsi, qword [rel NULL] ; (SET_PRM_R) mov qword [rbx], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 96 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], 0 ; (SET) sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 88 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.init ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 88 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.init compile._#Scope.init#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.print: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.print#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.print#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.print#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.print#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.print#4#loop#end compile._#Scope.print#4#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print compile._#Scope.print#4#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.print#4#loop#end jmp compile._#Scope.print#4#loop#start compile._#Scope.print#4#loop#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.print#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf compile._#Scope.print#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.end: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.end#0#loop#end compile._#Scope.end#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Scope.end#0#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.end#0#loop#end jmp compile._#Scope.end#0#loop#start compile._#Scope.end#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end mov r12, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.end#1#loop#end compile._#Scope.end#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.end compile._#Scope.end#1#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r12, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.end#1#loop#end jmp compile._#Scope.end#1#loop#start compile._#Scope.end#1#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Scope.end#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._next_reg_slot: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_reg_slot#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_reg_slot mov r11, rax ; (SET) jmp compile._#Scope._next_reg_slot#0#wrap#end compile._#Scope._next_reg_slot#0#wrap#0#if#end: compile._#Scope._next_reg_slot#0#wrap#end: cmp r11, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_reg_slot#1#wrap#0#if#end ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_reg_slot#end jmp compile._#Scope._next_reg_slot#1#wrap#end compile._#Scope._next_reg_slot#1#wrap#0#if#end: compile._#Scope._next_reg_slot#1#wrap#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_reg_slot#2#loop#end compile._#Scope._next_reg_slot#2#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_reg_slot#2#loop#0#wrap#0#if#end mov rbx, r11 ; (SET) inc r11 ; (UNARY) cmp r11, 16 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_reg_slot#2#loop#0#wrap#0#if#0#wrap#0#if#end mov r11, 0 ; (SET) mov rbx, r11 ; (SET) sub rbx, 1 ; (STD_OP) mov r11, rbx ; (SET) ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_reg_slot#end jmp compile._#Scope._next_reg_slot#2#loop#0#wrap#0#if#0#wrap#end compile._#Scope._next_reg_slot#2#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Scope._next_reg_slot#2#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Scope._next_reg_slot#2#loop#0#wrap#end compile._#Scope._next_reg_slot#2#loop#0#wrap#0#if#end: compile._#Scope._next_reg_slot#2#loop#0#wrap#end: compile._#Scope._next_reg_slot#2#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_reg_slot#2#loop#end jmp compile._#Scope._next_reg_slot#2#loop#start compile._#Scope._next_reg_slot#2#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_reg_slot#end compile._#Scope._next_reg_slot#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._next_tmp_slot: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 2 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_tmp_slot#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_tmp_slot mov r11, rax ; (SET) jmp compile._#Scope._next_tmp_slot#0#wrap#end compile._#Scope._next_tmp_slot#0#wrap#0#if#end: compile._#Scope._next_tmp_slot#0#wrap#end: cmp r11, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_tmp_slot#1#wrap#0#if#end ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_tmp_slot#end jmp compile._#Scope._next_tmp_slot#1#wrap#end compile._#Scope._next_tmp_slot#1#wrap#0#if#end: compile._#Scope._next_tmp_slot#1#wrap#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_tmp_slot#2#loop#end compile._#Scope._next_tmp_slot#2#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_tmp_slot#2#loop#0#wrap#0#if#end mov rbx, r11 ; (SET) inc r11 ; (UNARY) cmp r11, 4 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_tmp_slot#2#loop#0#wrap#0#if#0#wrap#0#if#end mov r11, 0 ; (SET) mov rbx, r11 ; (SET) sub rbx, 1 ; (STD_OP) mov r11, rbx ; (SET) ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_tmp_slot#end jmp compile._#Scope._next_tmp_slot#2#loop#0#wrap#0#if#0#wrap#end compile._#Scope._next_tmp_slot#2#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Scope._next_tmp_slot#2#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Scope._next_tmp_slot#2#loop#0#wrap#end compile._#Scope._next_tmp_slot#2#loop#0#wrap#0#if#end: compile._#Scope._next_tmp_slot#2#loop#0#wrap#end: compile._#Scope._next_tmp_slot#2#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_tmp_slot#2#loop#end jmp compile._#Scope._next_tmp_slot#2#loop#start compile._#Scope._next_tmp_slot#2#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_tmp_slot#end compile._#Scope._next_tmp_slot#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._next_stack_slot: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, 0 ; (SET) mov rbx, r11 ; (SET) sub rbx, 56 ; (STD_OP) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r11, rax ; (SET) jmp compile._#Scope._next_stack_slot#0#wrap#end compile._#Scope._next_stack_slot#0#wrap#0#if#end: compile._#Scope._next_stack_slot#0#wrap#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#1#loop#end compile._#Scope._next_stack_slot#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) cmp r14, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#1#wrap#0#if#end mov r11, r14 ; (SET) jmp compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#1#wrap#end compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#1#wrap#0#if#end: compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#1#wrap#end: jmp compile._#Scope._next_stack_slot#1#loop#0#wrap#end compile._#Scope._next_stack_slot#1#loop#0#wrap#0#if#end: compile._#Scope._next_stack_slot#1#loop#0#wrap#end: compile._#Scope._next_stack_slot#1#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#1#loop#end jmp compile._#Scope._next_stack_slot#1#loop#start compile._#Scope._next_stack_slot#1#loop#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#2#loop#end compile._#Scope._next_stack_slot#2#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r14, qword [rsi] ; (SET) cmp r14, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#1#wrap#0#if#end mov r11, r14 ; (SET) jmp compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#1#wrap#end compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#1#wrap#0#if#end: compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#1#wrap#end: jmp compile._#Scope._next_stack_slot#2#loop#0#wrap#end compile._#Scope._next_stack_slot#2#loop#0#wrap#0#if#end: compile._#Scope._next_stack_slot#2#loop#0#wrap#end: compile._#Scope._next_stack_slot#2#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._next_stack_slot#2#loop#end jmp compile._#Scope._next_stack_slot#2#loop#start compile._#Scope._next_stack_slot#2#loop#end: ; STARTING RETURN mov rax, r11 ; (SET) jmp compile._#Scope._next_stack_slot#end compile._#Scope._next_stack_slot#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_aware: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable mk ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 176], 0 ; (SET) mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware#0#wrap#0#if#end mov qword [rbp - 184], 1 ; (SET) jmp compile._#Scope.mk_aware#0#wrap#end compile._#Scope.mk_aware#0#wrap#0#if#end: compile._#Scope.mk_aware#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.push compile._#Scope.mk_aware#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_aware_node: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, qword [rel NULL] ; (SET) mov r14, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#end compile._#Scope.mk_aware_node#0#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_TYPE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#0#wrap#0#if#end mov r13, r12 ; (SET) jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#end cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf jmp compile._#Scope.mk_aware_node#end jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#0#if#end: compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#0#wrap#end: sub rsp, 88 ; Create stack space for local variable v sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) mov qword [rbp - 160], r13 ; (SET) mov qword [rbp - 168], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) mov rcx, qword [rbp - 168] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 152], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Var._resolve_type sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 145], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 153], rax ; (SET) mov rax, qword [rbp - 153] ; (SET) lea rsp, [rbp - 145] ; Free stack space (freeing tmp variables) call compile._#Var.regable mov bl, byte [rbp - 145] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#1#wrap#0#if#end mov qword [rbp - 96], 1 ; (SET) jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#1#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#1#wrap#0#if#end: mov qword [rbp - 96], 0 ; (SET) mov rbx, qword [rbp - 96] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 96], rbx ; (SET) jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#1#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#1#wrap#1#if#end: compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#1#wrap#end: mov qword [rbp - 88], 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 160], rsi ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], rsi ; (SET) mov qword [rbp - 160], 0 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_VALUE] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r10 ; (SET) mov qword [rbp - 160], r12 ; (SET) mov rax, qword [rbp - 152] ; (SET) mov rbx, qword [rbp - 160] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) call compile._#Scope.precheck_stmt jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#0#if#0#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#0#if#0#wrap#0#if#end: compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#0#if#0#wrap#end: jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#0#if#end: compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#2#wrap#end: jmp compile._#Scope.mk_aware_node#0#loop#0#wrap#end compile._#Scope.mk_aware_node#0#loop#0#wrap#1#if#end: compile._#Scope.mk_aware_node#0#loop#0#wrap#end: compile._#Scope.mk_aware_node#0#loop#rep: mov rbx, r14 ; (SET) inc r14 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r14, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_aware_node#0#loop#end jmp compile._#Scope.mk_aware_node#0#loop#start compile._#Scope.mk_aware_node#0#loop#end: compile._#Scope.mk_aware_node#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.try_move: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.try_move#0#loop#end compile._#Scope.try_move#0#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.try_move#0#loop#0#wrap#0#if#end jmp compile._#Scope.try_move#end jmp compile._#Scope.try_move#0#loop#0#wrap#end compile._#Scope.try_move#0#loop#0#wrap#0#if#end: compile._#Scope.try_move#0#loop#0#wrap#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) compile._#Scope.try_move#0#loop#rep: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.try_move#0#loop#end jmp compile._#Scope.try_move#0#loop#start compile._#Scope.try_move#0#loop#end: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_ID] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.try_move#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._find_var mov r12, rax ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.try_move#1#wrap#0#if#0#wrap#0#if#end jmp compile._#Scope.try_move#end jmp compile._#Scope.try_move#1#wrap#0#if#0#wrap#end compile._#Scope.try_move#1#wrap#0#if#0#wrap#0#if#end: compile._#Scope.try_move#1#wrap#0#if#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.try_move#1#wrap#0#if#1#wrap#0#if#end mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov r8, r13 ; (SET) sub r8, 1 ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Scope.try_move#1#wrap#0#if#1#wrap#end compile._#Scope.try_move#1#wrap#0#if#1#wrap#0#if#end: compile._#Scope.try_move#1#wrap#0#if#1#wrap#end: jmp compile._#Scope.try_move#1#wrap#end compile._#Scope.try_move#1#wrap#0#if#end: compile._#Scope.try_move#1#wrap#end: compile._#Scope.try_move#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.precheck_stmt: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov r8, rsi ; (SET) mov cx, word [r8] ; (SET) cmp cx, word [rel parse.NTYPE_PRE_OP] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.precheck_stmt#0#wrap#0#if#end sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 2 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov rsi, qword [rel compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 73], rsi ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.try_move jmp compile._#Scope.precheck_stmt#end jmp compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#end compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#0#if#end: compile._#Scope.precheck_stmt#0#wrap#0#if#0#wrap#end: jmp compile._#Scope.precheck_stmt#0#wrap#end compile._#Scope.precheck_stmt#0#wrap#0#if#end: compile._#Scope.precheck_stmt#0#wrap#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.precheck_stmt#1#loop#end compile._#Scope.precheck_stmt#1#loop#start: ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.precheck_stmt compile._#Scope.precheck_stmt#1#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 10 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.precheck_stmt#1#loop#end jmp compile._#Scope.precheck_stmt#1#loop#start compile._#Scope.precheck_stmt#1#loop#end: compile._#Scope.precheck_stmt#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._find_var: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._find_var#0#loop#end compile._#Scope._find_var#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 65], rsi ; (SET) mov qword [rbp - 73], r11 ; (SET) mov rax, qword [rbp - 65] ; (SET) mov rbx, qword [rbp - 73] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call utils.strcmp mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._find_var#0#loop#0#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Scope._find_var#end jmp compile._#Scope._find_var#0#loop#0#wrap#end compile._#Scope._find_var#0#loop#0#wrap#0#if#end: compile._#Scope._find_var#0#loop#0#wrap#end: compile._#Scope._find_var#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 32 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._find_var#0#loop#end jmp compile._#Scope._find_var#0#loop#start compile._#Scope._find_var#0#loop#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._find_var#1#wrap#0#if#end ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._find_var mov rax, rax ; (SET) jmp compile._#Scope._find_var#end jmp compile._#Scope._find_var#1#wrap#end compile._#Scope._find_var#1#wrap#0#if#end: compile._#Scope._find_var#1#wrap#end: ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope._find_var#end compile._#Scope._find_var#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.find_var: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._find_var mov r12, rax ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.find_var#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope.find_var#end jmp compile._#Scope.find_var#0#wrap#end compile._#Scope.find_var#0#wrap#0#if#end: compile._#Scope.find_var#0#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r9, rsi ; (SET) mov rcx, qword [r9] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 jne compile._#Scope.find_var#1#wrap#0#if#0#bool#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov rdi, [rbp - 64] ; (SET_PRM_L) mov rcx, qword [rdi] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov r9b, al ; Mov after compare lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) cmp r9b, 0 compile._#Scope.find_var#1#wrap#0#if#0#bool#end: mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.find_var#1#wrap#0#if#end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Scope.find_var#end jmp compile._#Scope.find_var#1#wrap#end compile._#Scope.find_var#1#wrap#0#if#end: compile._#Scope.find_var#1#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.find_var#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.find_var#3#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.find_var#4#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.find_var#5#const#ptr] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _print_num sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var._print ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope.find_var#end compile._#Scope.find_var#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_var: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._find_var mov r12, rax ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_var#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope.mk_var#end jmp compile._#Scope.mk_var#0#wrap#end compile._#Scope.mk_var#0#wrap#0#if#end: compile._#Scope.mk_var#0#wrap#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_var#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_reg_slot mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov qword [rbx], r13 ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, 1 ; (STD_OP) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_var#1#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov r8, r13 ; (SET) sub r8, r14 ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Scope.mk_var#1#wrap#0#if#0#wrap#end compile._#Scope.mk_var#1#wrap#0#if#0#wrap#0#if#end: compile._#Scope.mk_var#1#wrap#0#if#0#wrap#end: jmp compile._#Scope.mk_var#1#wrap#end compile._#Scope.mk_var#1#wrap#0#if#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, qword [rsi] ; (SET) add r8, 1 ; (STD_OP) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_var#1#wrap#1#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_var#1#wrap#1#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rbx, rsi ; (SET) mov r8, r13 ; (SET) sub r8, r14 ; (STD_OP) mov qword [rbx], r8 ; (SET) jmp compile._#Scope.mk_var#1#wrap#1#if#0#wrap#end compile._#Scope.mk_var#1#wrap#1#if#0#wrap#0#if#end: compile._#Scope.mk_var#1#wrap#1#if#0#wrap#end: jmp compile._#Scope.mk_var#1#wrap#end compile._#Scope.mk_var#1#wrap#1#if#end: compile._#Scope.mk_var#1#wrap#end: ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_var#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r14, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_var#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_var#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_var#2#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Scope.mk_var#2#wrap#end compile._#Scope.mk_var#2#wrap#0#if#end: compile._#Scope.mk_var#2#wrap#end: ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Scope.mk_var#end compile._#Scope.mk_var#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_set_var: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12, rcx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.mk_var mov r13, rax ; (SET) cmp r13, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_set_var#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope.mk_set_var#end jmp compile._#Scope.mk_set_var#0#wrap#end compile._#Scope.mk_set_var#0#wrap#0#if#end: compile._#Scope.mk_set_var#0#wrap#end: sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 57], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 65], r13 ; (SET) mov rax, qword [rbp - 65] ; (SET) lea rsp, [rbp - 57] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 57] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_set_var#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.max_ref mov r14, rax ; (SET) mov rbx, r14 ; (SET) sub rbx, 1 ; (STD_OP) mov r14, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov qword [rbp - 88], r14 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) mov rdx, qword [rbp - 88] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.set_ref jmp compile._#Scope.mk_set_var#1#wrap#end compile._#Scope.mk_set_var#1#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r13 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov qword [rbp - 80], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov rcx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Var.set jmp compile._#Scope.mk_set_var#1#wrap#end compile._#Scope.mk_set_var#1#wrap#1#if#end: compile._#Scope.mk_set_var#1#wrap#end: ; STARTING RETURN mov rax, r13 ; (SET) jmp compile._#Scope.mk_set_var#end compile._#Scope.mk_set_var#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_tmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 176], 0 ; (SET) mov r12, 0 ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 233], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 241], rax ; (SET) mov rax, qword [rbp - 241] ; (SET) lea rsp, [rbp - 233] ; Free stack space (freeing tmp variables) call compile._#Var.regable mov bl, byte [rbp - 233] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_tmp#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope._next_tmp_slot mov r12, rax ; (SET) mov qword [rbp - 184], r12 ; (SET) mov r8, qword [rbp - 184] ; (SET) add r8, 1 ; (STD_OP) cmp r8, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r13, rax ; (SET) mov rbx, r12 ; (SET) sub rbx, r13 ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#end compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#0#if#end: mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 2 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#1#if#end mov rbx, qword [rbp - 184] ; (SET) add rbx, 6 ; (STD_OP) mov qword [rbp - 184], rbx ; (SET) jmp compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#end compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#1#if#end: compile._#Scope.mk_tmp#0#wrap#0#if#0#wrap#end: jmp compile._#Scope.mk_tmp#0#wrap#end compile._#Scope.mk_tmp#0#wrap#0#if#end: mov r13, 0 ; (SET) mov rbx, r13 ; (SET) sub rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) mov qword [rbp - 184], r13 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r14, rax ; (SET) mov rbx, r12 ; (SET) sub rbx, r14 ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) jmp compile._#Scope.mk_tmp#0#wrap#end compile._#Scope.mk_tmp#0#wrap#1#if#end: compile._#Scope.mk_tmp#0#wrap#end: mov rcx, qword [rbp - 184] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.mk_tmp#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r13 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_tmp#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov qword [rbp - 248], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_tmp#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Scope.mk_tmp#1#wrap#end compile._#Scope.mk_tmp#1#wrap#0#if#end: compile._#Scope.mk_tmp#1#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Scope.mk_tmp#end compile._#Scope.mk_tmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_tmp_stack: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 152], r11 ; (SET) mov rax, qword [rbp - 152] ; (SET) lea rsp, [rbp - 144] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 232] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 144] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct mov qword [rbp - 176], 0 ; (SET) mov r12, 0 ; (SET) mov rbx, r12 ; (SET) sub rbx, 1 ; (STD_OP) mov r12, rbx ; (SET) mov qword [rbp - 184], r12 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r10 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r13, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 240], rax ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#Var.actual_size mov r14, rax ; (SET) mov rbx, r13 ; (SET) sub rbx, r14 ; (STD_OP) mov qword [rbp - 176], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r14 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_tmp_stack#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov qword [rbp - 248], r15 ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 240], rsi ; (SET) mov rsi, qword [rel compile._#Scope.mk_tmp_stack#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], r15 ; (SET) mov rax, qword [rbp - 240] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call _delete ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 240], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 248], rsi ; (SET) mov rax, qword [rbp - 240] ; (SET) mov rbx, qword [rbp - 248] ; (SET) lea rsp, [rbp - 232] ; Free stack space (freeing tmp variables) call utils._#Vector.push ; STARTING RETURN sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 232] ; initial struct addr move (SET_STR_R) mov qword [rbp - 328], rax ; (SET) mov rax, qword [rbp - 328] ; (SET) lea rsp, [rbp - 320] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.copy ; putting struct address into register lea rdi, [rbp - 320] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 320] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct jmp compile._#Scope.mk_tmp_stack#end compile._#Scope.mk_tmp_stack#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._get_reg_tmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._get_reg_tmp#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._get_reg_tmp jmp compile._#Scope._get_reg_tmp#0#wrap#end compile._#Scope._get_reg_tmp#0#wrap#0#if#end: compile._#Scope._get_reg_tmp#0#wrap#end: mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._get_reg_tmp#1#loop#end compile._#Scope._get_reg_tmp#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._get_reg_tmp#1#loop#0#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.push jmp compile._#Scope._get_reg_tmp#1#loop#0#wrap#end compile._#Scope._get_reg_tmp#1#loop#0#wrap#0#if#end: compile._#Scope._get_reg_tmp#1#loop#0#wrap#end: compile._#Scope._get_reg_tmp#1#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._get_reg_tmp#1#loop#end jmp compile._#Scope._get_reg_tmp#1#loop#start compile._#Scope._get_reg_tmp#1#loop#end: compile._#Scope._get_reg_tmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.save_caller_tmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 88 ; Create stack space for local variable tmp sub rsp, 32 ; Create stack space for local variable tmps sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov qword [rbp - 192], 88 ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 184], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call compile._#Scope._get_reg_tmp mov rcx, qword [rbp - 168] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.save_caller_tmp#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov rax, qword [rbp - 184] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; STARTING RETURN mov rax, 0 ; (SET) jmp compile._#Scope.save_caller_tmp#end jmp compile._#Scope.save_caller_tmp#1#wrap#end compile._#Scope.save_caller_tmp#1#wrap#0#if#end: compile._#Scope.save_caller_tmp#1#wrap#end: mov r12, 0 ; (SET) cmp r12, qword [rbp - 168] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.save_caller_tmp#2#loop#end compile._#Scope.save_caller_tmp#2#loop#start: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov qword [rbp - 192], r12 ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r11, rax ; (SET) sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r10 ; (SET) mov qword [rbp - 280], r11 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Scope.mk_tmp_stack ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 ; putting struct address into register lea rdi, [rbp - 144] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 177], bl ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 185], rax ; (SET) mov rax, qword [rbp - 185] ; (SET) lea rsp, [rbp - 177] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov bl, byte [rbp - 177] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) mov r8b, al ; (SET) cmp r8b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.save_caller_tmp#2#loop#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 272], r11 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 280], rsi ; (SET) mov qword [rbp - 288], 1 ; (SET) mov rax, qword [rbp - 272] ; (SET) mov rbx, qword [rbp - 280] ; (SET) mov rcx, qword [rbp - 288] ; (SET) lea rsp, [rbp - 264] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 264] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable ref_val ; putting struct address into register lea rdi, [rbp - 352] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 264] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 448], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 456], rsi ; (SET) mov qword [rbp - 464], 2 ; (SET) mov rax, qword [rbp - 448] ; (SET) mov rbx, qword [rbp - 456] ; (SET) mov rcx, qword [rbp - 464] ; (SET) lea rsp, [rbp - 440] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 440] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 sub rsp, 88 ; Create stack space for local variable ref_set ; putting struct address into register lea rdi, [rbp - 528] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 440] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 528] ; initial struct addr move (SET_STR_R) mov qword [rbp - 536], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 544], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 352] ; initial struct addr move (SET_STR_R) mov qword [rbp - 552], rsi ; (SET) mov rax, qword [rbp - 536] ; (SET) mov rbx, qword [rbp - 544] ; (SET) mov rcx, qword [rbp - 552] ; (SET) lea rsp, [rbp - 528] ; Free stack space (freeing tmp variables) call compile._#Var.set sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 352] ; initial struct addr move (SET_STR_R) mov qword [rbp - 536], rax ; (SET) mov rax, qword [rbp - 536] ; (SET) lea rsp, [rbp - 528] ; Free stack space (freeing tmp variables) call compile._#Var.end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 528] ; initial struct addr move (SET_STR_R) mov qword [rbp - 536], rax ; (SET) mov rax, qword [rbp - 536] ; (SET) lea rsp, [rbp - 528] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Scope.save_caller_tmp#2#loop#0#wrap#end compile._#Scope.save_caller_tmp#2#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov qword [rbp - 200], r11 ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) mov rcx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call compile._#Var.set jmp compile._#Scope.save_caller_tmp#2#loop#0#wrap#end compile._#Scope.save_caller_tmp#2#loop#0#wrap#1#if#end: compile._#Scope.save_caller_tmp#2#loop#0#wrap#end: mov r8, qword [rbp - 168] ; (SET) sub r8, 1 ; (STD_OP) cmp r12, r8 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.save_caller_tmp#2#loop#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 144] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov rax, qword [rbp - 184] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call compile._#Var.end jmp compile._#Scope.save_caller_tmp#2#loop#1#wrap#end compile._#Scope.save_caller_tmp#2#loop#1#wrap#0#if#end: compile._#Scope.save_caller_tmp#2#loop#1#wrap#end: compile._#Scope.save_caller_tmp#2#loop#rep: mov rbx, r12 ; (SET) inc r12 ; (UNARY) cmp r12, qword [rbp - 168] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.save_caller_tmp#2#loop#end jmp compile._#Scope.save_caller_tmp#2#loop#start compile._#Scope.save_caller_tmp#2#loop#end: mov r12, qword [rbp - 168] ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov rax, qword [rbp - 184] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; STARTING RETURN mov rax, r12 ; (SET) jmp compile._#Scope.save_caller_tmp#end compile._#Scope.save_caller_tmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.restore_caller_tmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) cmp r11, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.restore_caller_tmp#0#wrap#0#if#end jmp compile._#Scope.restore_caller_tmp#end jmp compile._#Scope.restore_caller_tmp#0#wrap#end compile._#Scope.restore_caller_tmp#0#wrap#0#if#end: compile._#Scope.restore_caller_tmp#0#wrap#end: sub rsp, 88 ; Create stack space for local variable t sub rsp, 32 ; Create stack space for local variable tmps sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov qword [rbp - 192], 88 ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 184], r10 ; (SET) ; putting struct address into register lea rsi, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 192], rsi ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call compile._#Scope._get_reg_tmp mov r14, 1 ; (SET) cmp r14, r11 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.restore_caller_tmp#2#loop#end compile._#Scope.restore_caller_tmp#2#loop#start: mov rbx, r11 ; (SET) sub rbx, r14 ; (STD_OP) mov r15, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable idx_saved mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 184], rsi ; (SET) mov r8, qword [rbp - 184] ; (SET) sub r8, r14 ; (STD_OP) mov qword [rbp - 184], r8 ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 200], rax ; (SET) mov qword [rbp - 208], r15 ; (SET) mov rax, qword [rbp - 200] ; (SET) mov rbx, qword [rbp - 208] ; (SET) lea rsp, [rbp - 192] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) mov r13, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 200], rsi ; (SET) mov rsi, qword [rbp - 184] ; (SET_PRM_R) mov qword [rbp - 208], rsi ; (SET) mov rax, qword [rbp - 200] ; (SET) mov rbx, qword [rbp - 208] ; (SET) lea rsp, [rbp - 192] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], rbx ; (SET) sub rsp, 1 ; Create stack space for tmp variable mov byte [rbp - 193], r8b ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 201], r13 ; (SET) mov rax, qword [rbp - 201] ; (SET) lea rsp, [rbp - 193] ; Free stack space (freeing tmp variables) call compile._#Var.is_ref mov r8b, byte [rbp - 193] ; (SET) mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) mov r9b, al ; (SET) cmp r9b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Scope.restore_caller_tmp#2#loop#0#wrap#0#if#end sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 280], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 288], r12 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 296], rsi ; (SET) mov qword [rbp - 304], 1 ; (SET) mov rax, qword [rbp - 288] ; (SET) mov rbx, qword [rbp - 296] ; (SET) mov rcx, qword [rbp - 304] ; (SET) lea rsp, [rbp - 280] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 272] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 mov rbx, qword [rbp - 280] ; (SET) lea rsp, [rbp - 272] ; Free stack space (freeing tmp variables) sub rsp, 88 ; Create stack space for local variable ref_val ; putting struct address into register lea rdi, [rbp - 360] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 272] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 88 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 456], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 464], r13 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 472], rsi ; (SET) mov qword [rbp - 480], 2 ; (SET) mov rax, qword [rbp - 464] ; (SET) mov rbx, qword [rbp - 472] ; (SET) mov rcx, qword [rbp - 480] ; (SET) lea rsp, [rbp - 456] ; Free stack space (freeing tmp variables) sub rsp, 88 call compile._#Var.take_ptr ; putting struct address into register lea rdi, [rbp - 448] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct add rsp, 88 mov rbx, qword [rbp - 456] ; (SET) lea rsp, [rbp - 448] ; Free stack space (freeing tmp variables) sub rsp, 88 ; Create stack space for local variable ref_set ; putting struct address into register lea rdi, [rbp - 536] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 448] ; initial struct addr move (SET_STR_R) mov rcx, 88 ; size of struct [Var] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 544], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 552], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 560], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 360] ; initial struct addr move (SET_STR_R) mov qword [rbp - 568], rsi ; (SET) mov rax, qword [rbp - 552] ; (SET) mov rbx, qword [rbp - 560] ; (SET) mov rcx, qword [rbp - 568] ; (SET) lea rsp, [rbp - 544] ; Free stack space (freeing tmp variables) call compile._#Var.set mov rbx, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 544], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 360] ; initial struct addr move (SET_STR_R) mov qword [rbp - 552], rax ; (SET) mov rax, qword [rbp - 552] ; (SET) lea rsp, [rbp - 544] ; Free stack space (freeing tmp variables) call compile._#Var.end mov rbx, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 544], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 536] ; initial struct addr move (SET_STR_R) mov qword [rbp - 552], rax ; (SET) mov rax, qword [rbp - 552] ; (SET) lea rsp, [rbp - 544] ; Free stack space (freeing tmp variables) call compile._#Var.end mov rbx, qword [rbp - 544] ; (SET) lea rsp, [rbp - 536] ; Free stack space (freeing tmp variables) jmp compile._#Scope.restore_caller_tmp#2#loop#0#wrap#end compile._#Scope.restore_caller_tmp#2#loop#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 192], rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 200], r13 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 208], rsi ; (SET) mov qword [rbp - 216], r12 ; (SET) mov rax, qword [rbp - 200] ; (SET) mov rbx, qword [rbp - 208] ; (SET) mov rcx, qword [rbp - 216] ; (SET) lea rsp, [rbp - 192] ; Free stack space (freeing tmp variables) call compile._#Var.set mov rbx, qword [rbp - 192] ; (SET) lea rsp, [rbp - 184] ; Free stack space (freeing tmp variables) jmp compile._#Scope.restore_caller_tmp#2#loop#0#wrap#end compile._#Scope.restore_caller_tmp#2#loop#0#wrap#1#if#end: compile._#Scope.restore_caller_tmp#2#loop#0#wrap#end: compile._#Scope.restore_caller_tmp#2#loop#rep: mov r8, r14 ; (SET) inc r14 ; (UNARY) cmp r14, r11 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov r8b, al ; Mov after compare cmp r8b, 0 je compile._#Scope.restore_caller_tmp#2#loop#end jmp compile._#Scope.restore_caller_tmp#2#loop#start compile._#Scope.restore_caller_tmp#2#loop#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 184], r10 ; (SET) mov qword [rbp - 192], r11 ; (SET) mov byte [rbp - 193], 1 ; (SET) mov rax, qword [rbp - 184] ; (SET) mov rbx, qword [rbp - 192] ; (SET) mov cl, byte [rbp - 193] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 176] ; initial struct addr move (SET_STR_R) mov qword [rbp - 184], rax ; (SET) mov rax, qword [rbp - 184] ; (SET) lea rsp, [rbp - 176] ; Free stack space (freeing tmp variables) call utils._#Vector.end compile._#Scope.restore_caller_tmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.free_tmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12b, cl ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, r11 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_tmp#0#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r11, qword [rsi] ; (SET) jmp compile._#Scope.free_tmp#0#wrap#end compile._#Scope.free_tmp#0#wrap#0#if#end: compile._#Scope.free_tmp#0#wrap#end: mov r13b, 0 ; (SET) mov r15, 1 ; (SET) cmp r15, r11 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_tmp#1#loop#end compile._#Scope.free_tmp#1#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable tmp_count mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rbx, qword [rbp - 64] ; (SET) sub rbx, 1 ; (STD_OP) mov qword [rbp - 80], rbx ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_tmp#1#loop#0#wrap#0#if#end mov r13b, 1 ; (SET) jmp compile._#Scope.free_tmp#1#loop#0#wrap#end compile._#Scope.free_tmp#1#loop#0#wrap#0#if#end: compile._#Scope.free_tmp#1#loop#0#wrap#end: sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r14 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Var.end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils._#Vector.pop compile._#Scope.free_tmp#1#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) cmp r15, r11 mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_tmp#1#loop#end jmp compile._#Scope.free_tmp#1#loop#start compile._#Scope.free_tmp#1#loop#end: cmp r13b, 1 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_tmp#2#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._next_stack_slot mov r15, rax ; (SET) mov rbx, 0 ; (SET) sub rbx, r15 ; (STD_OP) mov r15, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r15 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.int_to_str sub rsp, 8 ; Create stack space for local variable stk_mv_str mov qword [rbp - 64], rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rel compile._#Scope.free_tmp#2#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rel compile._#Scope.free_tmp#2#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _delete jmp compile._#Scope.free_tmp#2#wrap#end compile._#Scope.free_tmp#2#wrap#0#if#end: compile._#Scope.free_tmp#2#wrap#end: compile._#Scope.free_tmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.is_tmp: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r13, 0 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.is_tmp#0#loop#end compile._#Scope.is_tmp#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r13 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r12, rax ; (SET) ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.is_tmp#0#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r12] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.is_tmp#0#loop#0#wrap#0#if#0#wrap#0#if#end ; STARTING RETURN mov al, 1 ; (SET) jmp compile._#Scope.is_tmp#end jmp compile._#Scope.is_tmp#0#loop#0#wrap#0#if#0#wrap#end compile._#Scope.is_tmp#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Scope.is_tmp#0#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Scope.is_tmp#0#loop#0#wrap#end compile._#Scope.is_tmp#0#loop#0#wrap#0#if#end: compile._#Scope.is_tmp#0#loop#0#wrap#end: compile._#Scope.is_tmp#0#loop#rep: mov rbx, r13 ; (SET) inc r13 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r13, qword [rsi] mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.is_tmp#0#loop#end jmp compile._#Scope.is_tmp#0#loop#start compile._#Scope.is_tmp#0#loop#end: ; STARTING RETURN mov al, 0 ; (SET) jmp compile._#Scope.is_tmp#end compile._#Scope.is_tmp#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.free_to: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12b, cl ; (SET) mov r13, 0 ; (SET) mov rbx, r13 ; (SET) sub rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) mov r15, 1 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to#0#loop#end compile._#Scope.free_to#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, r15 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to#0#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to#0#loop#0#wrap#0#if#0#wrap#0#if#end mov r13, r15 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) add rbx, 1 ; (STD_OP) mov r15, rbx ; (SET) jmp compile._#Scope.free_to#0#loop#0#wrap#0#if#0#wrap#end compile._#Scope.free_to#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Scope.free_to#0#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Scope.free_to#0#loop#0#wrap#end compile._#Scope.free_to#0#loop#0#wrap#0#if#end: compile._#Scope.free_to#0#loop#0#wrap#end: compile._#Scope.free_to#0#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to#0#loop#end jmp compile._#Scope.free_to#0#loop#start compile._#Scope.free_to#0#loop#end: cmp r13, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable off mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.free_to#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.free_to#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.free_to#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _print_num jmp compile._#Scope.free_to#1#wrap#end compile._#Scope.free_to#1#wrap#0#if#end: cmp r13, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov byte [rbp - 73], 0 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov cl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp jmp compile._#Scope.free_to#1#wrap#end compile._#Scope.free_to#1#wrap#1#if#end: compile._#Scope.free_to#1#wrap#end: compile._#Scope.free_to#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.free_after: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) mov r12b, cl ; (SET) mov r13, 0 ; (SET) mov rbx, r13 ; (SET) sub rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) mov r15, 1 ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after#0#loop#end compile._#Scope.free_after#0#loop#start: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], rsi ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) sub rbx, r15 ; (STD_OP) mov qword [rbp - 72], rbx ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils._#Vector.get mov r14, rax ; (SET) ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 48 ; Add offset when getting member (MEMBER) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after#0#loop#0#wrap#0#if#end ; putting struct address into register lea rsi, [r14] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rsi] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after#0#loop#0#wrap#0#if#0#wrap#0#if#end mov rbx, r15 ; (SET) sub rbx, 1 ; (STD_OP) mov r13, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) add rbx, 1 ; (STD_OP) mov r15, rbx ; (SET) jmp compile._#Scope.free_after#0#loop#0#wrap#0#if#0#wrap#end compile._#Scope.free_after#0#loop#0#wrap#0#if#0#wrap#0#if#end: compile._#Scope.free_after#0#loop#0#wrap#0#if#0#wrap#end: jmp compile._#Scope.free_after#0#loop#0#wrap#end compile._#Scope.free_after#0#loop#0#wrap#0#if#end: compile._#Scope.free_after#0#loop#0#wrap#end: compile._#Scope.free_after#0#loop#rep: mov rbx, r15 ; (SET) inc r15 ; (UNARY) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r15, qword [rsi] mov ax, 0 mov cx, 1 cmovng ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after#0#loop#end jmp compile._#Scope.free_after#0#loop#start compile._#Scope.free_after#0#loop#end: cmp r13, 0 mov ax, 0 mov cx, 1 cmovl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after#1#wrap#0#if#end sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label mov r15, rax ; (SET) ; putting struct address into register lea rsi, [r11] ; initial struct addr move (SET_STR_R) add rsi, 56 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for local variable off mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.free_after#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 72], r15 ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.free_after#1#wrap#0#if#1#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _printf sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rel compile._#Scope.free_after#1#wrap#0#if#2#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call _print_num jmp compile._#Scope.free_after#1#wrap#end compile._#Scope.free_after#1#wrap#0#if#end: cmp r13, 0 mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after#1#wrap#1#if#end sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r13 ; (SET) mov byte [rbp - 73], r12b ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov cl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp jmp compile._#Scope.free_after#1#wrap#end compile._#Scope.free_after#1#wrap#1#if#end: compile._#Scope.free_after#1#wrap#end: compile._#Scope.free_after#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.get_tmp_handle: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; STARTING RETURN ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rax, qword [rsi] ; (SET) jmp compile._#Scope.get_tmp_handle#end compile._#Scope.get_tmp_handle#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.free_after_handle: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovnl ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_after_handle#0#wrap#0#if#end jmp compile._#Scope.free_after_handle#end jmp compile._#Scope.free_after_handle#0#wrap#end compile._#Scope.free_after_handle#0#wrap#0#if#end: compile._#Scope.free_after_handle#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) mov rbx, r12 ; (SET) sub rbx, r11 ; (STD_OP) mov r12, rbx ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov byte [rbp - 73], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov cl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp compile._#Scope.free_after_handle#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.free_to_handle: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) cmp r11, qword [rsi] mov ax, 0 mov cx, 1 cmovg ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to_handle#0#wrap#0#if#end jmp compile._#Scope.free_to_handle#end jmp compile._#Scope.free_to_handle#0#wrap#end compile._#Scope.free_to_handle#0#wrap#0#if#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, 0 mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.free_to_handle#0#wrap#1#if#end jmp compile._#Scope.free_to_handle#end jmp compile._#Scope.free_to_handle#0#wrap#end compile._#Scope.free_to_handle#0#wrap#1#if#end: compile._#Scope.free_to_handle#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 64 ; Add offset when getting member (MEMBER) ; putting struct address into register lea rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) mov rbx, r12 ; (SET) sub rbx, r11 ; (STD_OP) mov r12, rbx ; (SET) mov rbx, r12 ; (SET) inc r12 ; (UNARY) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov qword [rbp - 72], r12 ; (SET) mov byte [rbp - 73], 1 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) mov cl, byte [rbp - 73] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.free_tmp compile._#Scope.free_to_handle#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.mk_sub: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) mov r10, rbx ; (SET) sub rsp, 104 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 168] ; initial struct addr move (SET_STR_R) mov qword [rbp - 176], rax ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 8 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 184], rsi ; (SET) ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 192], rsi ; (SET) mov qword [rbp - 200], r10 ; (SET) mov rax, qword [rbp - 176] ; (SET) mov rbx, qword [rbp - 184] ; (SET) mov rcx, qword [rbp - 192] ; (SET) mov rdx, qword [rbp - 200] ; (SET) lea rsp, [rbp - 168] ; Free stack space (freeing tmp variables) call compile._#Scope.init mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 144], rsi ; (SET) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 168] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct jmp compile._#Scope.mk_sub#end compile._#Scope.mk_sub#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.gen_sub: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) mov r11, rbx ; (SET) sub rsp, 32 ; Create stack space for local variable true_name sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], 1 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 96 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 96], rsi ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r12, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 35 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov byte [rbp - 97], 35 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov bl, byte [rbp - 97] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 96], rax ; (SET) mov qword [rbp - 104], r11 ; (SET) mov rax, qword [rbp - 96] ; (SET) mov rbx, qword [rbp - 104] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r12 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) call _delete sub rsp, 104 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 200], r10 ; (SET) sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 216], rax ; (SET) mov rax, qword [rbp - 216] ; (SET) lea rsp, [rbp - 208] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov qword [rbp - 208], rax ; (SET) mov rax, qword [rbp - 200] ; (SET) mov rbx, qword [rbp - 208] ; (SET) lea rsp, [rbp - 192] ; Free stack space (freeing tmp variables) sub rsp, 104 call compile._#Scope.mk_sub ; putting struct address into register lea rdi, [rbp - 192] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct add rsp, 104 sub rsp, 104 ; Create stack space for local variable out ; putting struct address into register lea rdi, [rbp - 296] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 192] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 88] ; initial struct addr move (SET_STR_R) mov qword [rbp - 304], rax ; (SET) mov rax, qword [rbp - 304] ; (SET) lea rsp, [rbp - 296] ; Free stack space (freeing tmp variables) call utils._#Vector.end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 96 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 296] ; initial struct addr move (SET_STR_R) mov rcx, 104 ; size of struct [Scope] in bytes rep movsb ; move struct jmp compile._#Scope.gen_sub#end compile._#Scope.gen_sub#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._closest_break: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rel compile._#Scope._closest_break#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.ends_with cmp al, 0 je compile._#Scope._closest_break#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rbp - 64] ; (SET) jmp compile._#Scope._closest_break#end jmp compile._#Scope._closest_break#0#wrap#end compile._#Scope._closest_break#0#wrap#0#if#end: sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rel compile._#Scope._closest_break#0#wrap#1#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.ends_with cmp al, 0 je compile._#Scope._closest_break#0#wrap#1#if#end ; STARTING RETURN mov rax, qword [rbp - 64] ; (SET) jmp compile._#Scope._closest_break#end jmp compile._#Scope._closest_break#0#wrap#end compile._#Scope._closest_break#0#wrap#1#if#end: compile._#Scope._closest_break#0#wrap#end: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope._closest_break#1#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope._closest_break#end jmp compile._#Scope._closest_break#1#wrap#end compile._#Scope._closest_break#1#wrap#0#if#end: compile._#Scope._closest_break#1#wrap#end: ; STARTING RETURN ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Scope.closest_loop mov rax, rax ; (SET) jmp compile._#Scope._closest_break#end compile._#Scope._closest_break#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.closest_break: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.closest_break#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope.closest_break#end jmp compile._#Scope.closest_break#0#wrap#end compile._#Scope.closest_break#0#wrap#0#if#end: compile._#Scope.closest_break#0#wrap#end: ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) mov r11, qword [rsi] ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rsi, qword [rel compile._#Scope.closest_break#1#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call utils.ends_with cmp al, 0 je compile._#Scope.closest_break#1#wrap#0#if#end ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) ; putting struct address into register mov rsi, [rsi] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r12, qword [rsi] ; (SET) cmp r12, qword [rel NULL] mov ax, 0 mov cx, 1 cmovne ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.closest_break#1#wrap#0#if#1#wrap#0#if#end ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r12 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._closest_break mov rax, rax ; (SET) jmp compile._#Scope.closest_break#end jmp compile._#Scope.closest_break#1#wrap#0#if#1#wrap#end compile._#Scope.closest_break#1#wrap#0#if#1#wrap#0#if#end: compile._#Scope.closest_break#1#wrap#0#if#1#wrap#end: jmp compile._#Scope.closest_break#1#wrap#end compile._#Scope.closest_break#1#wrap#0#if#end: compile._#Scope.closest_break#1#wrap#end: ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope._closest_break mov rax, rax ; (SET) jmp compile._#Scope.closest_break#end compile._#Scope.closest_break#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.closest_loop: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rsi, qword [rel compile._#Scope.closest_loop#0#wrap#0#if#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 80], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) mov rbx, qword [rbp - 80] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call utils.ends_with cmp al, 0 je compile._#Scope.closest_loop#0#wrap#0#if#end ; STARTING RETURN mov rax, qword [rbp - 64] ; (SET) jmp compile._#Scope.closest_loop#end jmp compile._#Scope.closest_loop#0#wrap#end compile._#Scope.closest_loop#0#wrap#0#if#end: compile._#Scope.closest_loop#0#wrap#end: ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) mov r8, rsi ; (SET) mov rcx, qword [r8] ; (SET) cmp rcx, qword [rel NULL] mov ax, 0 mov cx, 1 cmove ax, cx ; Compare set mov bl, al ; Mov after compare cmp bl, 0 je compile._#Scope.closest_loop#1#wrap#0#if#end ; STARTING RETURN mov rax, qword [rel NULL] ; (SET) jmp compile._#Scope.closest_loop#end jmp compile._#Scope.closest_loop#1#wrap#end compile._#Scope.closest_loop#1#wrap#0#if#end: compile._#Scope.closest_loop#1#wrap#end: ; STARTING RETURN ; putting struct address into register mov rsi, [rbp - 64] ; initial struct addr move (SET_STR_R) add rsi, 24 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 72] ; (SET) lea rsp, [rbp - 64] ; Free stack space (freeing tmp variables) call compile._#Scope.closest_loop mov rax, rax ; (SET) jmp compile._#Scope.closest_loop#end compile._#Scope.closest_loop#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope._base_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init sub rsp, 8 ; Create stack space for local variable self mov qword [rbp - 64], rax ; (SET) sub rsp, 32 ; Create stack space for local variable out sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 104], rax ; (SET) mov qword [rbp - 112], 1 ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call utils._#Vector.init sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rbp - 64] ; (SET_PRM_R) mov qword [rbp - 104], rsi ; (SET) ; putting struct address into register lea rsi, [rbp - 96] ; initial struct addr move (SET_STR_R) mov qword [rbp - 112], rsi ; (SET) mov rax, qword [rbp - 104] ; (SET) mov rbx, qword [rbp - 112] ; (SET) lea rsp, [rbp - 96] ; Free stack space (freeing tmp variables) call compile._recursive_scope_name ; STARTING RETURN ; putting struct address into register lea rdi, [rbp + 8] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 96] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct jmp compile._#Scope._base_label#end compile._#Scope._base_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.base_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call compile._#Scope._base_label ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Scope.base_label#end compile._#Scope.base_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.place_base_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.base_label mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.place_base_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Scope.place_base_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.start_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call compile._#Scope._base_label ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rsi, qword [rel compile._#Scope.start_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Scope.start_label#end compile._#Scope.start_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.place_start_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.start_label mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.place_start_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Scope.place_start_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.rep_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call compile._#Scope._base_label ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rsi, qword [rel compile._#Scope.rep_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Scope.rep_label#end compile._#Scope.rep_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.place_rep_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.rep_label mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.place_rep_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Scope.place_rep_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.end_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call compile._#Scope._base_label ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rsi, qword [rel compile._#Scope.end_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Scope.end_label#end compile._#Scope.end_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.place_end_label: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r10 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#Scope.end_label mov r11, rax ; (SET) ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov qword [rbp - 72], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 16 ; Add offset when getting member (MEMBER) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 64], rsi ; (SET) mov rsi, qword [rel compile._#Scope.place_end_label#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 72], rsi ; (SET) mov rax, qword [rbp - 64] ; (SET) mov rbx, qword [rbp - 72] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call compile._#CompBuf.add_c sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 64], r11 ; (SET) mov rax, qword [rbp - 64] ; (SET) lea rsp, [rbp - 56] ; Free stack space (freeing tmp variables) call _delete compile._#Scope.place_end_label#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end compile._#Scope.gen_const_name: push rbp lea rbp, [rsp + 8] push r10 push r11 push r12 push r13 push r14 push r15 ; scope init mov r10, rax ; (SET) sub rsp, 32 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 96], r10 ; (SET) mov rax, qword [rbp - 96] ; (SET) lea rsp, [rbp - 88] ; Free stack space (freeing tmp variables) sub rsp, 32 call compile._#Scope._base_label ; putting struct address into register lea rdi, [rbp - 88] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rsp] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct add rsp, 32 sub rsp, 32 ; Create stack space for local variable v ; putting struct address into register lea rdi, [rbp - 120] ; initial struct addr move (SET_STR_R) ; putting struct address into register lea rsi, [rbp - 88] ; initial struct addr move (SET_STR_R) mov rcx, 32 ; size of struct [Vector] in bytes rep movsb ; move struct sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 96 ; Add offset when getting member (MEMBER) mov rsi, qword [rsi] ; (SET_PRM_R) mov qword [rbp - 128], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils.int_to_str mov r11, rax ; (SET) sub rsp, 8 ; Create stack space for tmp variable sub rsp, 1 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov byte [rbp - 129], 35 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov bl, byte [rbp - 129] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_char sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov qword [rbp - 136], r11 ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rsi, qword [rel compile._#Scope.gen_const_name#0#const#ptr] ; (SET_PRM_R) mov qword [rbp - 136], rsi ; (SET) mov rax, qword [rbp - 128] ; (SET) mov rbx, qword [rbp - 136] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.push_cstr sub rsp, 8 ; Create stack space for tmp variable mov qword [rbp - 128], r11 ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call _delete ; putting struct address into register lea rsi, [r10] ; initial struct addr move (SET_STR_R) add rsi, 96 ; Add offset when getting member (MEMBER) mov rbx, qword [rsi] ; (SET) inc qword qword [rsi] ; (UNARY) ; STARTING RETURN sub rsp, 8 ; Create stack space for tmp variable ; putting struct address into register lea rax, [rbp - 120] ; initial struct addr move (SET_STR_R) mov qword [rbp - 128], rax ; (SET) mov rax, qword [rbp - 128] ; (SET) lea rsp, [rbp - 120] ; Free stack space (freeing tmp variables) call utils._#Vector.as_cstr mov rax, rax ; (SET) jmp compile._#Scope.gen_const_name#end compile._#Scope.gen_const_name#end: lea rsp, [rbp - 56] pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop rbp ret ; scope end