M2-Planet/test/test0100/test.M1

1686 lines
34 KiB
Plaintext

# Core program
# Defining function exit
:FUNCTION_exit
POP_ebx
POP_ebx
LOAD_IMMEDIATE_eax %1
INT_80
RETURN
# Defining function fgetc
:FUNCTION_fgetc
LOAD_IMMEDIATE_eax %3
LOAD_EFFECTIVE_ADDRESS_ebx %4
LOAD_INTEGER_ebx
PUSH_ebx
COPY_esp_to_ecx
LOAD_IMMEDIATE_edx %1
INT_80
TEST
POP_eax
JUMP_NE8 !FUNCTION_fgetc_Done
LOAD_IMMEDIATE_eax %-1
:FUNCTION_fgetc_Done
RETURN
# Defining function fputc
:FUNCTION_fputc
LOAD_IMMEDIATE_eax %4
LOAD_EFFECTIVE_ADDRESS_ebx %4
LOAD_INTEGER_ebx
LOAD_EFFECTIVE_ADDRESS_ecx %8
LOAD_IMMEDIATE_edx %1
INT_80
RETURN
# Defining function open
:FUNCTION_open
LOAD_EFFECTIVE_ADDRESS_ebx %12
LOAD_INTEGER_ebx
LOAD_EFFECTIVE_ADDRESS_ecx %8
LOAD_INTEGER_ecx
LOAD_EFFECTIVE_ADDRESS_edx %4
LOAD_INTEGER_edx
LOAD_IMMEDIATE_eax %5
INT_80
RETURN
# Defining function fopen
:FUNCTION_fopen
# Defining local f
PUSH_eax #f
# IF_0
LOAD_IMMEDIATE_eax %119
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_0
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %577
PUSH_eax #_process_expression2
LOAD_IMMEDIATE_eax %384
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_open
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %_END_IF_0
:ELSE_0
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %0
PUSH_eax #_process_expression2
LOAD_IMMEDIATE_eax %0
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_open
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
:_END_IF_0
# IF_1
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETG
MOVEZBL
TEST
JUMP_EQ %ELSE_1
LOAD_IMMEDIATE_eax %0
POP_ebx # _return_result_locals
RETURN
JUMP %_END_IF_1
:ELSE_1
:_END_IF_1
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
POP_ebx # _return_result_locals
RETURN
# Defining function close
:FUNCTION_close
LOAD_EFFECTIVE_ADDRESS_ebx %4
LOAD_IMMEDIATE_eax %6
INT_80
RETURN
# Defining function fclose
:FUNCTION_fclose
# Defining local error
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_close
POP_ebx # _process_expression_locals
PUSH_eax #error
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
POP_ebx # _return_result_locals
RETURN
# Defining function file_print
:FUNCTION_file_print
:WHILE_0
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
TEST
JUMP_EQ %END_WHILE_0
# THEN_while_0
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
PUSH_eax #_process_expression1
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_fputc
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %8
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %WHILE_0
:END_WHILE_0
RETURN
# Defining function malloc
:FUNCTION_malloc
LOAD_ESP_IMMEDIATE_into_eax %4
PUSH_eax
LOAD_IMMEDIATE_eax %45
LOAD_IMMEDIATE_ebx %0
INT_80
POP_ebx
ADD_eax_to_ebx
PUSH_eax
PUSH_ebx
LOAD_IMMEDIATE_eax %45
INT_80
POP_ebx
CMP
POP_eax
JUMP_EQ8 !FUNCTION_malloc_Done
LOAD_IMMEDIATE_eax %-1
:FUNCTION_malloc_Done
RETURN
# Defining function memset
:FUNCTION_memset
# Defining local s
PUSH_eax #s
# FOR_initialization_0
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %20
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
:FOR_0
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETL
MOVEZBL
TEST
JUMP_EQ %FOR_END_0
JUMP %FOR_THEN_0
:FOR_ITER_0
LOAD_EFFECTIVE_ADDRESS %8
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
SUBTRACT_eax_from_ebx_into_ebx
MOVE_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %FOR_0
:FOR_THEN_0
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
ADD_ebx_to_eax
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_CHAR
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %FOR_ITER_0
:FOR_END_0
POP_ebx # _recursive_statement_locals
RETURN
# Defining function calloc
:FUNCTION_calloc
# Defining local ret
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
MULTIPLY_eax_by_ebx_into_eax
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_malloc
POP_ebx # _process_expression_locals
PUSH_eax #ret
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %0
PUSH_eax #_process_expression2
LOAD_EFFECTIVE_ADDRESS %20
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %20
LOAD_INTEGER
POP_ebx # _common_recursion
MULTIPLY_eax_by_ebx_into_eax
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_memset
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
POP_ebx # _return_result_locals
RETURN
# Defining function free
:FUNCTION_free
RETURN
# Defining function match
:FUNCTION_match
# Defining local i
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
SUBTRACT_eax_from_ebx_into_ebx
MOVE_ebx_to_eax
PUSH_eax #i
:DO_0
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
# IF_2
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
TEST
JUMP_EQ %ELSE_2
LOAD_IMMEDIATE_eax %0
POP_ebx # _return_result_locals
RETURN
JUMP %_END_IF_2
:ELSE_2
:_END_IF_2
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
POP_ebx # _common_recursion
AND_eax_ebx
TEST
JUMP_NE %DO_0
:DO_END_0
LOAD_IMMEDIATE_eax %1
POP_ebx # _return_result_locals
RETURN
# Defining function consume_token
:FUNCTION_consume_token
# Defining local i
LOAD_IMMEDIATE_eax %0
PUSH_eax #i
# Defining local c
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
PUSH_eax #c
:DO_1
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
ADD_ebx_to_eax
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_CHAR
LOAD_EFFECTIVE_ADDRESS %4
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %20
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_IMMEDIATE_eax %32
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %9
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
POP_ebx # _common_recursion
AND_eax_ebx
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %10
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
POP_ebx # _common_recursion
AND_eax_ebx
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %62
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
POP_ebx # _common_recursion
AND_eax_ebx
TEST
JUMP_NE %DO_1
:DO_END_1
POP_ebx # _recursive_statement_locals
POP_ebx # _recursive_statement_locals
RETURN
# Defining function storeLabel
:FUNCTION_storeLabel
# Defining local entry
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %8
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_calloc
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #entry
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %4096
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_calloc
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_consume_token
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
# IF_3
LOAD_IMMEDIATE_eax %95
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
ADD_ebx_to_eax
LOAD_BYTE
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_3
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
LOAD_INTEGER
# looking up offset
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %_END_IF_3
:ELSE_3
:_END_IF_3
POP_ebx # _recursive_statement_locals
RETURN
# Defining function line_Comment
:FUNCTION_line_Comment
# Defining local c
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
PUSH_eax #c
:WHILE_1
LOAD_IMMEDIATE_eax %10
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %13
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
POP_ebx # _common_recursion
AND_eax_ebx
TEST
JUMP_EQ %END_WHILE_1
# THEN_while_1
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %WHILE_1
:END_WHILE_1
POP_ebx # _recursive_statement_locals
RETURN
# Defining function purge_string
:FUNCTION_purge_string
# Defining local c
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
PUSH_eax #c
:WHILE_2
LOAD_IMMEDIATE_eax %0xFFFFFFFF
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %34
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
POP_ebx # _common_recursion
AND_eax_ebx
TEST
JUMP_EQ %END_WHILE_2
# THEN_while_2
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %WHILE_2
:END_WHILE_2
POP_ebx # _recursive_statement_locals
RETURN
# Defining function first_pass
:FUNCTION_first_pass
# IF_4
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_4
RETURN
JUMP %_END_IF_4
:ELSE_4
:_END_IF_4
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
# looking up offset
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_first_pass
POP_ebx # _process_expression_locals
# Defining local source_file
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_0
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_fopen
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #source_file
# IF_5
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_5
LOAD_IMMEDIATE_eax &STRING_1
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_2
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_exit
POP_ebx # _process_expression_locals
JUMP %_END_IF_5
:ELSE_5
:_END_IF_5
# Defining local c
PUSH_eax #c
# FOR_initialization_1
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
:FOR_1
LOAD_IMMEDIATE_eax %0xFFFFFFFF
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
TEST
JUMP_EQ %FOR_END_1
JUMP %FOR_THEN_1
:FOR_ITER_1
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fgetc
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %FOR_1
:FOR_THEN_1
# IF_6
LOAD_IMMEDIATE_eax %58
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_6
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_storeLabel
POP_ebx # _process_expression_locals
JUMP %_END_IF_6
:ELSE_6
# IF_7
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %35
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %59
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
POP_ebx # _common_recursion
OR_eax_ebx
TEST
JUMP_EQ %ELSE_7
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_line_Comment
POP_ebx # _process_expression_locals
JUMP %_END_IF_7
:ELSE_7
# IF_8
LOAD_IMMEDIATE_eax %34
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_8
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_purge_string
POP_ebx # _process_expression_locals
JUMP %_END_IF_8
:ELSE_8
:_END_IF_8
:_END_IF_7
:_END_IF_6
JUMP %FOR_ITER_1
:FOR_END_1
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_fclose
POP_ebx # _process_expression_locals
POP_ebx # _recursive_statement_locals
POP_ebx # _recursive_statement_locals
RETURN
# Defining function output_debug
:FUNCTION_output_debug
# Defining local i
PUSH_eax #i
# FOR_initialization_2
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
:FOR_2
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
TEST
JUMP_EQ %FOR_END_2
JUMP %FOR_THEN_2
:FOR_ITER_2
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
# looking up offset
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %FOR_2
:FOR_THEN_2
# IF_9
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
TEST
JUMP_EQ %ELSE_9
LOAD_IMMEDIATE_eax &STRING_3
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_4
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_5
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
JUMP %_END_IF_9
:ELSE_9
LOAD_IMMEDIATE_eax &STRING_6
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_7
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_8
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
:_END_IF_9
JUMP %FOR_ITER_2
:FOR_END_2
POP_ebx # _recursive_statement_locals
RETURN
# Defining function reverse_list
:FUNCTION_reverse_list
# Defining local root
LOAD_IMMEDIATE_eax %0
PUSH_eax #root
# Defining local next
PUSH_eax #next
:WHILE_3
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETNE
MOVEZBL
TEST
JUMP_EQ %END_WHILE_3
# THEN_while_3
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
# looking up offset
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
# looking up offset
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %4
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %12
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %WHILE_3
:END_WHILE_3
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _return_result_locals
POP_ebx # _return_result_locals
RETURN
# Defining function main
:FUNCTION_main
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
STORE_INTEGER
# Defining local input
LOAD_IMMEDIATE_eax %0
PUSH_eax #input
LOAD_IMMEDIATE_eax &GLOBAL_output
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
STORE_INTEGER
# Defining local output_file
LOAD_IMMEDIATE_eax &STRING_9
PUSH_eax #output_file
# Defining local option_index
LOAD_IMMEDIATE_eax %1
PUSH_eax #option_index
:WHILE_4
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %20
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETLE
MOVEZBL
TEST
JUMP_EQ %END_WHILE_4
# THEN_while_4
# IF_10
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %24
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_10
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %_END_IF_10
:ELSE_10
# IF_11
LOAD_EFFECTIVE_ADDRESS %20
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_10
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %24
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_11
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
OR_eax_ebx
TEST
JUMP_EQ %ELSE_11
LOAD_IMMEDIATE_eax &STRING_12
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %20
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %0
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_13
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax %0
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_exit
POP_ebx # _process_expression_locals
JUMP %_END_IF_11
:ELSE_11
# IF_12
LOAD_EFFECTIVE_ADDRESS %20
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_14
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %24
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_15
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
OR_eax_ebx
TEST
JUMP_EQ %ELSE_12
# Defining local temp
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %8
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_calloc
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #temp
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %28
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %0
LOAD_INTEGER
# looking up offset
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %16
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %12
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_EFFECTIVE_ADDRESS %4
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %2
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
POP_ebx # _recursive_statement_locals
JUMP %_END_IF_12
:ELSE_12
# IF_13
LOAD_EFFECTIVE_ADDRESS %20
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_16
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %24
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_17
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
OR_eax_ebx
TEST
JUMP_EQ %ELSE_13
LOAD_EFFECTIVE_ADDRESS %4
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %24
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %1
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_IMMEDIATE_eax &GLOBAL_output
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_18
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_fopen
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
# IF_14
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_14
LOAD_IMMEDIATE_eax &STRING_19
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
# looking up offset
# -> offset calculation
LOAD_IMMEDIATE_ebx %4
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_20
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_exit
POP_ebx # _process_expression_locals
JUMP %_END_IF_14
:ELSE_14
:_END_IF_14
LOAD_EFFECTIVE_ADDRESS %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax %2
POP_ebx # _common_recursion
ADD_ebx_to_eax
POP_ebx # _common_recursion
STORE_INTEGER
JUMP %_END_IF_13
:ELSE_13
# IF_15
LOAD_EFFECTIVE_ADDRESS %20
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %4
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_21
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %24
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
POP_ebx # _common_recursion
SAL_eax_Immediate8 !2
ADD_ebx_to_eax
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &STRING_22
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_match
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
OR_eax_ebx
TEST
JUMP_EQ %ELSE_15
LOAD_IMMEDIATE_eax &STRING_23
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax %0
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_exit
POP_ebx # _process_expression_locals
JUMP %_END_IF_15
:ELSE_15
LOAD_IMMEDIATE_eax &STRING_24
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %2
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_exit
POP_ebx # _process_expression_locals
:_END_IF_15
:_END_IF_13
:_END_IF_12
:_END_IF_11
:_END_IF_10
JUMP %WHILE_4
:END_WHILE_4
# IF_16
LOAD_IMMEDIATE_eax %0
PUSH_eax #_common_recursion
LOAD_EFFECTIVE_ADDRESS %12
LOAD_INTEGER
POP_ebx # _common_recursion
CMP
SETE
MOVEZBL
TEST
JUMP_EQ %ELSE_16
LOAD_IMMEDIATE_eax %1
POP_ebx # _return_result_locals
POP_ebx # _return_result_locals
POP_ebx # _return_result_locals
RETURN
JUMP %_END_IF_16
:ELSE_16
:_END_IF_16
LOAD_EFFECTIVE_ADDRESS %8
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_first_pass
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
PUSH_eax #_common_recursion
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
LOAD_INTEGER
PUSH_eax #_process_expression1
CALL_IMMEDIATE %FUNCTION_reverse_list
POP_ebx # _process_expression_locals
POP_ebx # _common_recursion
STORE_INTEGER
LOAD_IMMEDIATE_eax &STRING_25
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %1
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_output_debug
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_26
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &GLOBAL_jump_table
LOAD_INTEGER
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax %0
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_output_debug
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax &STRING_27
PUSH_eax #_process_expression1
LOAD_IMMEDIATE_eax &GLOBAL_output
LOAD_INTEGER
PUSH_eax #_process_expression2
CALL_IMMEDIATE %FUNCTION_file_print
POP_ebx # _process_expression_locals
POP_ebx # _process_expression_locals
LOAD_IMMEDIATE_eax %0
POP_ebx # _return_result_locals
POP_ebx # _return_result_locals
POP_ebx # _return_result_locals
RETURN
# Program global variables
:GLOBAL_output
NULL
:GLOBAL_jump_table
NULL
# Program strings
:STRING_0
"r"
:STRING_1
"The file: "
:STRING_2
" can not be opened!
"
:STRING_3
' 3A 45 4C 46 5F 73 74 72 5F 00'
:STRING_4
' 0A 22 00'
:STRING_5
' 22 0A 00'
:STRING_6
"%ELF_str_"
:STRING_7
">ELF_str
&"
:STRING_8
"
%10000
!2
!0
@1
"
:STRING_9
""
:STRING_10
"-h"
:STRING_11
"--help"
:STRING_12
"Usage: "
:STRING_13
" -f FILENAME1 {-f FILENAME2}
"
:STRING_14
"-f"
:STRING_15
"--file"
:STRING_16
"-o"
:STRING_17
"--output"
:STRING_18
"w"
:STRING_19
"The file: "
:STRING_20
" can not be opened!
"
:STRING_21
"-V"
:STRING_22
"--version"
:STRING_23
"blood-elf 0.1
(Basically Launches Odd Object Dump ExecutabLe Files
"
:STRING_24
"Unknown option
"
:STRING_25
' 3A 45 4C 46 5F 73 74 72 0A 21 30 0A 00'
:STRING_26
' 25 30 0A 3A 45 4C 46 5F 73 79 6D 0A 25 30 0A 25 30 0A 25 30 0A 21 30 0A 21 30 0A 40 31 0A 00'
:STRING_27
' 0A 3A 45 4C 46 5F 65 6E 64 0A 00'
:ELF_end