diff options
-rwxr-xr-x | emcc | 2 | ||||
-rw-r--r-- | emscripten-version.txt | 2 | ||||
-rwxr-xr-x | emscripten.py | 41 | ||||
-rw-r--r-- | src/library_browser.js | 17 | ||||
-rw-r--r-- | src/library_sdl.js | 1 | ||||
-rw-r--r-- | src/runtime.js | 9 | ||||
-rw-r--r-- | tests/emscripten_fs_api_browser.cpp | 5 | ||||
-rw-r--r-- | tests/fuzz/20.cpp | 977 | ||||
-rw-r--r-- | tests/fuzz/20.cpp.txt | 1 | ||||
-rw-r--r-- | tests/fuzz/21.c | 2332 | ||||
-rw-r--r-- | tests/fuzz/21.c.txt | 1 | ||||
-rw-r--r-- | tests/return64bit/test.c | 6 | ||||
-rw-r--r-- | tests/return64bit/testbind.js | 18 | ||||
-rw-r--r-- | tests/return64bit/testbindend.js | 2 | ||||
-rw-r--r-- | tests/return64bit/testbindstart.js | 3 | ||||
-rw-r--r-- | tests/sdl_audio_quickload.c | 44 | ||||
-rw-r--r-- | tests/test_browser.py | 2 | ||||
-rw-r--r-- | tests/test_core.py | 26 | ||||
-rw-r--r-- | tests/test_interactive.py | 6 | ||||
-rw-r--r-- | tests/test_other.py | 25 | ||||
-rw-r--r-- | tools/shared.py | 6 |
21 files changed, 3449 insertions, 77 deletions
@@ -1223,6 +1223,8 @@ try: value = '"@' + os.path.abspath(value[1:]) + '"' value = value.replace('\\\\', '/').replace('\\', '/') # Convert backslash paths to forward slashes on Windows as well, since the JS compiler otherwise needs the backslashes escaped (alternative is to escape all input paths passing to JS, which feels clumsier to read) exec('shared.Settings.' + key + ' = ' + value) + if key == 'EXPORTED_FUNCTIONS': + shared.Settings.ORIGINAL_EXPORTED_FUNCTIONS = shared.Settings.EXPORTED_FUNCTIONS[:] # used for warnings in emscripten.py fastcomp = os.environ.get('EMCC_FAST_COMPILER') != '0' diff --git a/emscripten-version.txt b/emscripten-version.txt index 2ef35729..6cee04e0 100644 --- a/emscripten-version.txt +++ b/emscripten-version.txt @@ -1,2 +1,2 @@ -1.17.1 +1.18.1 diff --git a/emscripten.py b/emscripten.py index 939ddbe8..d75214d5 100755 --- a/emscripten.py +++ b/emscripten.py @@ -477,7 +477,7 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, if '_rand' in exported_implemented_functions or '_srand' in exported_implemented_functions: basic_vars += ['___rand_seed'] - asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew'] + ['setTempRet%d' % i for i in range(10)] + asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew'] + ['setTempRet%d' % i for i in range(10)] + ['getTempRet%d' % i for i in range(10)] # function tables function_tables = ['dynCall_' + table for table in last_forwarded_json['Functions']['tables']] function_tables_impls = [] @@ -632,6 +632,10 @@ function setTempRet%d(value) { value = value|0; tempRet%d = value; } +''' % (i, i) for i in range(10)]) + ''.join([''' +function getTempRet%d() { + return tempRet%d|0; +} ''' % (i, i) for i in range(10)])] + [PostSets.js + '\n'] + funcs_js + [''' %s @@ -644,9 +648,11 @@ function setTempRet%d(value) { if not settings.get('SIDE_MODULE'): funcs_js.append(''' -Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) }; -Runtime.stackSave = function() { return asm['stackSave']() }; -Runtime.stackRestore = function(top) { asm['stackRestore'](top) }; +Runtime.stackAlloc = asm['stackAlloc']; +Runtime.stackSave = asm['stackSave']; +Runtime.stackRestore = asm['stackRestore']; +Runtime.setTempRet0 = asm['setTempRet0']; +Runtime.getTempRet0 = asm['getTempRet0']; ''') # Set function table masks @@ -889,10 +895,15 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None, exported_implemented_functions = set(metadata['exports']) export_bindings = settings['EXPORT_BINDINGS'] export_all = settings['EXPORT_ALL'] - for key in metadata['implementedFunctions'] + forwarded_json['Functions']['implementedFunctions'].keys(): # XXX perf + all_implemented = metadata['implementedFunctions'] + forwarded_json['Functions']['implementedFunctions'].keys() # XXX perf? + for key in all_implemented: if key in all_exported_functions or export_all or (export_bindings and key.startswith('_emscripten_bind')): exported_implemented_functions.add(key) implemented_functions = set(metadata['implementedFunctions']) + if settings['ASSERTIONS'] and settings.get('ORIGINAL_EXPORTED_FUNCTIONS'): + for requested in settings['ORIGINAL_EXPORTED_FUNCTIONS']: + if requested not in all_implemented: + logging.warning('function requested to be exported, but not implemented: "%s"', requested) # Add named globals named_globals = '\n'.join(['var %s = %s;' % (k, v) for k, v in metadata['namedGlobals'].iteritems()]) @@ -1058,7 +1069,7 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None, if '_rand' in exported_implemented_functions or '_srand' in exported_implemented_functions: basic_vars += ['___rand_seed'] - asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew'] + ['setTempRet%d' % i for i in range(10)] + asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew', 'setTempRet0', 'getTempRet0'] # function tables function_tables = ['dynCall_' + table for table in last_forwarded_json['Functions']['tables']] function_tables_impls = [] @@ -1208,12 +1219,14 @@ function copyTempDouble(ptr) { HEAP8[tempDoublePtr+6>>0] = HEAP8[ptr+6>>0]; HEAP8[tempDoublePtr+7>>0] = HEAP8[ptr+7>>0]; } -''' + ''.join([''' -function setTempRet%d(value) { +function setTempRet0(value) { value = value|0; - tempRet%d = value; + tempRet0 = value; +} +function getTempRet0() { + return tempRet0|0; } -''' % (i, i) for i in range(10)])] + funcs_js + [''' +'''] + funcs_js + [''' %s return %s; @@ -1225,9 +1238,11 @@ function setTempRet%d(value) { if not settings.get('SIDE_MODULE'): funcs_js.append(''' -Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) }; -Runtime.stackSave = function() { return asm['stackSave']() }; -Runtime.stackRestore = function(top) { asm['stackRestore'](top) }; +Runtime.stackAlloc = asm['stackAlloc']; +Runtime.stackSave = asm['stackSave']; +Runtime.stackRestore = asm['stackRestore']; +Runtime.setTempRet0 = asm['setTempRet0']; +Runtime.getTempRet0 = asm['getTempRet0']; ''') # Set function table masks diff --git a/src/library_browser.js b/src/library_browser.js index 2317ca47..fce7bdd5 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -702,15 +702,22 @@ mergeInto(LibraryManager.library, { emscripten_async_wget: function(url, file, onload, onerror) { var _url = Pointer_stringify(url); var _file = Pointer_stringify(file); + function doCallback(callback) { + if (callback) { + var stack = Runtime.stackSave(); + Runtime.dynCall('vi', callback, [allocate(intArrayFromString(_file), 'i8', ALLOC_STACK)]); + Runtime.stackRestore(stack); + } + } FS.createPreloadedFile( PATH.dirname(_file), PATH.basename(_file), _url, true, true, function() { - if (onload) Runtime.dynCall('vi', onload, [file]); + doCallback(onload); }, function() { - if (onerror) Runtime.dynCall('vi', onerror, [file]); + doCallback(onerror); } ); }, @@ -741,7 +748,11 @@ mergeInto(LibraryManager.library, { http.onload = function http_onload(e) { if (http.status == 200) { FS.createDataFile( _file.substr(0, index), _file.substr(index + 1), new Uint8Array(http.response), true, true); - if (onload) Runtime.dynCall('vii', onload, [arg, file]); + if (onload) { + var stack = Runtime.stackSave(); + Runtime.dynCall('vii', onload, [arg, allocate(intArrayFromString(_file), 'i8', ALLOC_STACK)]); + Runtime.stackRestore(stack); + } } else { if (onerror) Runtime.dynCall('vii', onerror, [arg, http.status]); } diff --git a/src/library_sdl.js b/src/library_sdl.js index b630ca5c..ae384d22 100644 --- a/src/library_sdl.js +++ b/src/library_sdl.js @@ -814,6 +814,7 @@ var LibrarySDL = { } case 'touchstart': case 'touchend': case 'touchmove': { var touch = event.touch; + if (!Browser.touches[touch.identifier]) break; var w = Module['canvas'].width; var h = Module['canvas'].height; var x = Browser.touches[touch.identifier].x / w; diff --git a/src/runtime.js b/src/runtime.js index 63610d3b..4466a308 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -96,6 +96,15 @@ function unInline(name_, params) { } var Runtime = { + // When a 64 bit long is returned from a compiled function the least significant + // 32 bit word is passed in the return value, but the most significant 32 bit + // word is placed in tempRet0. This provides an accessor for that value. + setTempRet0: function(value) { + tempRet0 = value; + }, + getTempRet0: function() { + return tempRet0; + }, stackSave: function() { return STACKTOP; }, diff --git a/tests/emscripten_fs_api_browser.cpp b/tests/emscripten_fs_api_browser.cpp index 0355287a..1410ba3c 100644 --- a/tests/emscripten_fs_api_browser.cpp +++ b/tests/emscripten_fs_api_browser.cpp @@ -107,11 +107,14 @@ int main() { onLoaded, onError); + char name[40]; + strcpy(name, "/tmp/screen_shot.png"); // test for issue #2349, name being free'd emscripten_async_wget( "http://localhost:8888/screenshot.png", - "/tmp/screen_shot.png", + name, onLoaded, onError); + memset(name, 0, 30); emscripten_set_main_loop(wait_wgets, 0, 0); diff --git a/tests/fuzz/20.cpp b/tests/fuzz/20.cpp new file mode 100644 index 00000000..619ac697 --- /dev/null +++ b/tests/fuzz/20.cpp @@ -0,0 +1,977 @@ +/* + * This is a RANDOMLY GENERATED PROGRAM. + * + * Generator: csmith 2.2.0 + * Git version: bf42ffd + * Options: --no-volatiles --no-packed-struct --no-math64 --lang-cpp + * Seed: 2354592696 + */ + +#include "csmith.h" + + +static long __undefined; + +/* --- Struct/Union Declarations --- */ +/* --- GLOBAL VARIABLES --- */ +static int32_t g_8[4] = {(-1L),(-1L),(-1L),(-1L)}; +static int32_t g_10 = 0x095A9796L; +static uint8_t g_14 = 0xBBL; +static uint16_t g_68 = 65535UL; +static int32_t g_89 = (-1L); +static int32_t *g_88 = &g_89; +static const uint16_t g_95 = 65535UL; +static const uint16_t *g_94 = &g_95; +static int32_t g_101[1][2][5] = {{{0L,0L,0L,0L,0L},{(-1L),(-1L),(-1L),(-1L),(-1L)}}}; +static uint16_t g_168 = 65535UL; +static int16_t g_175 = (-10L); +static uint8_t g_177 = 1UL; +static int8_t g_208 = 1L; +static int8_t *g_207[4] = {&g_208,&g_208,&g_208,&g_208}; +static int32_t g_263 = (-4L); +static int32_t **g_311 = NULL; +static int32_t ***g_310 = &g_311; +static uint32_t g_324[4][1][5] = {{{0xA3D675C6L,0x497B3AE0L,0xA3D675C6L,1UL,1UL}},{{0xA3D675C6L,0x497B3AE0L,0xA3D675C6L,1UL,1UL}},{{0xA3D675C6L,0x497B3AE0L,0xA3D675C6L,1UL,1UL}},{{0xA3D675C6L,0x497B3AE0L,0xA3D675C6L,1UL,1UL}}}; +static uint32_t g_369 = 0x38F403BAL; +static int16_t **g_435 = NULL; +static const int32_t g_490 = (-1L); +static int8_t g_532 = 0xE9L; +static uint32_t g_534 = 0UL; +static int32_t g_679[1][5] = {{0x6C6BABE0L,0x6C6BABE0L,0x6C6BABE0L,0x6C6BABE0L,0x6C6BABE0L}}; +static int16_t *g_691 = &g_175; +static int32_t *g_735 = NULL; +static uint16_t g_813 = 1UL; +static int16_t g_906 = 0x50BEL; +static uint32_t g_912 = 0x1175B058L; +static int8_t * const *g_1027 = &g_207[2]; +static int8_t * const **g_1026[5] = {&g_1027,&g_1027,&g_1027,&g_1027,&g_1027}; +static int8_t **g_1029 = &g_207[1]; +static int8_t ***g_1028 = &g_1029; +static uint8_t g_1098 = 251UL; +static int16_t ***g_1103 = &g_435; +static int16_t ****g_1102 = &g_1103; +static uint32_t *g_1251 = &g_534; +static uint32_t **g_1250 = &g_1251; +static uint32_t ***g_1249 = &g_1250; +static int8_t ***g_1452 = &g_1029; +static uint8_t *g_1457 = &g_1098; +static uint8_t **g_1456 = &g_1457; +static int32_t *g_1463 = &g_10; +static int32_t **g_1486 = &g_1463; +static int32_t **g_1487 = &g_735; +static int16_t **** const *g_1490 = &g_1102; +static int16_t **** const **g_1489 = &g_1490; +static int32_t g_1555 = 0x5CD64271L; +static uint16_t g_1566 = 65531UL; +static int8_t g_1611 = (-1L); +static int16_t g_1671[8] = {(-7L),(-7L),(-7L),(-7L),(-7L),(-7L),(-7L),(-7L)}; +static uint32_t g_1726 = 2UL; +static uint32_t g_1781[2][2] = {{1UL,1UL},{1UL,1UL}}; +static int8_t ****g_1806 = &g_1028; +static int8_t *****g_1805[10][1][3] = {{{NULL,NULL,NULL}},{{&g_1806,&g_1806,&g_1806}},{{NULL,NULL,NULL}},{{&g_1806,&g_1806,&g_1806}},{{NULL,NULL,NULL}},{{&g_1806,&g_1806,&g_1806}},{{NULL,NULL,NULL}},{{&g_1806,&g_1806,&g_1806}},{{NULL,NULL,NULL}},{{&g_1806,&g_1806,&g_1806}}}; +static uint32_t g_1846[4] = {1UL,1UL,1UL,1UL}; +static const uint32_t g_1878[9][9][3] = {{{18446744073709551609UL,0x41FAE503L,5UL},{4UL,0xB45FB625L,0xBA90DCABL},{0x7859E91FL,18446744073709551609UL,5UL},{0UL,0x87F82538L,1UL},{0xDE88EC26L,0x8F3A2F9CL,0xC2B3141CL},{0x8C538065L,0x49C63EC0L,0x44D75A98L},{18446744073709551615UL,18446744073709551615UL,0x3EA8F13BL},{0x44D75A98L,18446744073709551614UL,18446744073709551606UL},{0xB1C843BDL,18446744073709551615UL,0x384A1D15L}},{{0x5E837D39L,0x49C63EC0L,0x5E837D39L},{18446744073709551615UL,0x8F3A2F9CL,18446744073709551609UL},{0UL,0x87F82538L,0xB7463E48L},{0x384A1D15L,18446744073709551609UL,0x97952306L},{0x03506829L,0xB45FB625L,0xB011D241L},{0x384A1D15L,0x41FAE503L,0x7859E91FL},{0UL,0x0EC69127L,0xD92197E9L},{18446744073709551615UL,5UL,0x06FB78C1L},{0x5E837D39L,0xD81B3B3EL,0UL}},{{0xB1C843BDL,0x5098CCB1L,1UL},{0x44D75A98L,0x37E638FAL,0UL},{18446744073709551615UL,0x06FB78C1L,0x06FB78C1L},{0x8C538065L,18446744073709551607UL,0xD92197E9L},{0xDE88EC26L,0xC2B3141CL,0x7859E91FL},{0UL,0xA98FC4D4L,0xB011D241L},{0x7859E91FL,0xB1C843BDL,0x97952306L},{4UL,0xA98FC4D4L,0xB7463E48L},{18446744073709551609UL,0xC2B3141CL,18446744073709551609UL}},{{0UL,18446744073709551607UL,0x5E837D39L},{5UL,0x06FB78C1L,0x384A1D15L},{0xB7463E48L,0x37E638FAL,18446744073709551606UL},{0x8F3A2F9CL,0x5098CCB1L,0x3EA8F13BL},{0xB7463E48L,0xD81B3B3EL,0x44D75A98L},{5UL,5UL,0xC2B3141CL},{0UL,0x0EC69127L,1UL},{18446744073709551609UL,0x41FAE503L,5UL},{4UL,0xB45FB625L,0xBA90DCABL}},{{0x7859E91FL,18446744073709551609UL,5UL},{0UL,0x87F82538L,1UL},{0xDE88EC26L,0x8F3A2F9CL,0xC2B3141CL},{0x8C538065L,0x49C63EC0L,0x44D75A98L},{18446744073709551615UL,18446744073709551615UL,0x3EA8F13BL},{0x44D75A98L,18446744073709551614UL,18446744073709551606UL},{0xB1C843BDL,18446744073709551615UL,0x384A1D15L},{0x5E837D39L,0x49C63EC0L,0x5E837D39L},{18446744073709551615UL,0x8F3A2F9CL,18446744073709551609UL}},{{0UL,0x87F82538L,0xB7463E48L},{0x384A1D15L,18446744073709551609UL,0x97952306L},{0x03506829L,0xB45FB625L,0UL},{18446744073709551609UL,5UL,0x8F3A2F9CL},{0x44D75A98L,0x36765C43L,0xD909217BL},{0x06FB78C1L,0x7859E91FL,0x97952306L},{0xB513056EL,0x0EC69127L,0x44D75A98L},{0x41FAE503L,0xB1C843BDL,0x384A1D15L},{0x03506829L,0xDAD1FA39L,0x44D75A98L}},{{0xDE88EC26L,0x97952306L,0x97952306L},{0xB011D241L,0UL,0xD909217BL},{0x3EA8F13BL,0x5098CCB1L,0x8F3A2F9CL},{0x8C538065L,0x87F82538L,0UL},{0x8F3A2F9CL,0x41FAE503L,1UL},{0x685D1A38L,0x87F82538L,0x5E837D39L},{0x6768B2D9L,0x5098CCB1L,0x6768B2D9L},{1UL,0UL,0xB513056EL},{0x7859E91FL,0x97952306L,18446744073709551609UL}},{{0x5E837D39L,0xDAD1FA39L,0xBA90DCABL},{18446744073709551615UL,0xB1C843BDL,18446744073709551615UL},{0x5E837D39L,0x0EC69127L,0x03506829L},{0x7859E91FL,0x7859E91FL,0x5098CCB1L},{1UL,0x36765C43L,18446744073709551606UL},{0x6768B2D9L,5UL,0x7859E91FL},{0x685D1A38L,18446744073709551614UL,0xB7463E48L},{0x8F3A2F9CL,0x6768B2D9L,0x7859E91FL},{0x8C538065L,0x2406F886L,18446744073709551606UL}},{{0x3EA8F13BL,18446744073709551615UL,0x5098CCB1L},{0xB011D241L,0xB45FB625L,0x03506829L},{0xDE88EC26L,0x06FB78C1L,18446744073709551615UL},{0x03506829L,0xD81B3B3EL,0xBA90DCABL},{0x41FAE503L,0x06FB78C1L,18446744073709551609UL},{0xB513056EL,0xB45FB625L,0xB513056EL},{0x06FB78C1L,18446744073709551615UL,0x6768B2D9L},{0x44D75A98L,0x2406F886L,0x5E837D39L},{18446744073709551609UL,0x6768B2D9L,1UL}}}; +static uint32_t * const g_1962 = &g_324[3][0][0]; +static uint32_t * const *g_1961 = &g_1962; +static uint16_t g_2002 = 4UL; +static int16_t ** const * const g_2016 = &g_435; +static int16_t ** const * const *g_2015 = &g_2016; +static int16_t ** const * const **g_2014 = &g_2015; +static int16_t ** const * const **g_2018 = &g_2015; + + +/* --- FORWARD DECLARATIONS --- */ +static uint32_t func_1(void); +static int32_t func_5(int32_t p_6, uint32_t p_7); +static uint8_t func_39(uint32_t p_40, int32_t * p_41, int32_t p_42); +static const int32_t * func_52(int32_t p_53, uint8_t p_54, uint32_t p_55, int16_t p_56, uint8_t p_57); +static int32_t * func_64(uint16_t p_65, int32_t * p_66); +static int32_t * func_69(int8_t p_70); +static uint8_t func_76(uint8_t p_77, const int32_t * const p_78, int32_t * p_79); +static int32_t * const func_80(int32_t * p_81); +static int32_t * func_82(int32_t p_83, uint16_t p_84, int32_t * p_85); +static int32_t func_92(const uint16_t * p_93); + + +/* --- FUNCTIONS --- */ +/* ------------------------------------------ */ +/* + * reads : g_8 g_14 g_10 g_68 g_88 g_912 g_94 g_95 g_735 g_101 g_1250 g_1251 g_534 g_679 g_1029 g_207 g_208 g_691 g_1463 g_168 g_1457 g_1098 g_1249 g_1489 g_263 g_89 g_175 g_813 g_1566 g_1027 g_1611 g_532 g_1726 g_1028 g_1781 g_1490 g_1102 g_1103 g_435 g_177 g_1555 g_906 g_324 g_1671 g_1487 g_1961 g_1456 g_2002 g_1486 g_1962 g_2014 + * writes: g_14 g_68 g_10 g_735 g_88 g_168 g_534 g_1028 g_1452 g_101 g_1456 g_175 g_1486 g_1487 g_263 g_89 g_94 g_813 g_208 g_1555 g_1566 g_532 g_1098 g_1611 g_1726 g_1102 g_1781 g_435 g_177 g_207 g_2002 g_1463 g_324 g_2014 g_2018 + */ +static uint32_t func_1(void) +{ /* block id: 0 */ + uint32_t l_4 = 0x20398070L; + int32_t l_17 = (-1L); + int32_t *l_18 = &l_17; + int32_t *l_21[4][2][10] = {{{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},{NULL,NULL,&g_8[0],NULL,NULL,&g_8[3],&g_8[0],&g_8[3],NULL,NULL}},{{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},{NULL,NULL,&g_8[1],NULL,NULL,NULL,&g_8[1],NULL,NULL,NULL}},{{NULL,NULL,NULL,&g_8[3],NULL,NULL,NULL,&g_8[3],NULL,NULL},{NULL,&g_8[3],&g_8[0],&g_8[3],NULL,NULL,&g_8[0],NULL,NULL,&g_8[3]}},{{NULL,&g_8[3],NULL,NULL,NULL,&g_8[3],NULL,NULL,NULL,&g_8[3]},{NULL,NULL,&g_8[1],NULL,NULL,NULL,&g_8[1],NULL,NULL,NULL}}}; + uint16_t l_1947 = 0UL; + uint8_t l_1950 = 8UL; + int32_t l_1952 = (-7L); + int32_t l_1967 = 0x2594DE78L; + int8_t *l_1968 = &g_208; + uint32_t l_1969 = 0xA55E1FD4L; + uint32_t **l_1994 = &g_1251; + int32_t l_2003 = 0xD7936716L; + int16_t *****l_2013 = &g_1102; + int16_t ******l_2012 = &l_2013; + int16_t ** const * const ***l_2017[9]; + int i, j, k; + for (i = 0; i < 9; i++) + l_2017[i] = NULL; + (*l_18) = (safe_rshift_func_uint16_t_u_s((((l_4 , (func_5(g_8[0], l_4) ^ 0x4D07DDBFL)) , 5UL) , (((((+func_5(g_8[0], (l_17 |= ((g_8[0] || (l_4 , l_4)) , g_8[2])))) >= g_10) , 0xA6C2E3A4L) , 0L) < 4294967295UL)), g_8[0])); + if (func_5(((*l_18) = (safe_lshift_func_uint8_t_u_u(func_5(g_14, (*l_18)), 3))), (&g_10 == &g_10))) + { /* block id: 8 */ + uint32_t l_30 = 0x8A7E8B7DL; + int16_t l_49 = (-1L); + const int16_t l_50 = 0xB00FL; + int32_t *l_51 = &l_17; + uint16_t *l_1948 = NULL; + uint16_t *l_1949 = NULL; + uint16_t *l_1951[1][8][1] = {{{NULL},{&g_168},{NULL},{&g_168},{NULL},{&g_168},{NULL},{&g_168}}}; + int8_t l_1953 = (-4L); + uint32_t l_1954[8][4][2] = {{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}},{{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL},{0xF7B7F389L,0x84E19BCBL},{0x2B89271DL,0x84E19BCBL}}}; + int i, j, k; + (*l_18) = ((((NULL != &g_8[1]) <= ((((safe_add_func_uint8_t_u_u(((*g_1457) = func_5(((safe_rshift_func_int8_t_s_u((((++g_14) , (-8L)) , (((safe_rshift_func_int16_t_s_s(l_30, 1)) <= (func_5((((safe_mul_func_uint16_t_u_u((l_1952 = (l_30 , ((safe_rshift_func_uint16_t_u_s((safe_rshift_func_uint16_t_u_u((l_1950 ^= (+((safe_mod_func_uint8_t_u_u(func_39((((((func_5((func_5(g_10, func_5((((((((safe_add_func_uint8_t_u_u(((safe_mul_func_uint16_t_u_u((NULL != &g_10), (safe_lshift_func_int8_t_s_s(g_10, 1)))) ^ 0x8CD8B12AL), g_8[0])) <= l_30) != 0x7384L) < (*l_18)) , (*l_18)) , l_49) <= (*l_18)), g_14)) & l_50), g_8[0]) >= 0x8DL) , &g_8[3]) != NULL) , (int32_t*) NULL) != NULL), l_51, g_8[1]), g_906)) < l_1947))), 10)), (*l_51))) , 0xE604L))), 0x59B6L)) ^ (*l_51)) | (*l_51)), (*l_51)) | (*l_51))) <= (*l_51))), g_324[3][0][0])) , (*l_18)), (*l_18))), l_1953)) , (*l_18)) | (*l_18)) & (*l_51))) | (*l_51)) , l_1954[3][2][0]); + return g_1671[5]; + } + else + { /* block id: 885 */ + int8_t *l_1963 = &g_1611; + int32_t l_1966 = 1L; + const int32_t *l_1971 = &g_89; + const int32_t **l_1970 = &l_1971; + uint16_t *l_1991[2]; + uint32_t *l_1999 = &l_1969; + int i; + for (i = 0; i < 2; i++) + l_1991[i] = &g_813; + (*g_1487) = &l_17; + (*l_1970) = func_52((safe_div_func_uint8_t_u_u((safe_mul_func_uint16_t_u_u(((*g_1249) != (*g_1249)), (safe_rshift_func_uint16_t_u_s(((*l_18) & (NULL != (*g_1490))), (NULL == g_1961))))), ((((**g_1028) = l_1963) != ((safe_lshift_func_uint8_t_u_s(((l_1967 |= l_1966) <= 0x55L), 5)) , l_1968)) ^ l_1969))), (*l_18), l_1966, (*l_18), (**g_1456)); + l_18 = ((*g_1486) = ((((safe_div_func_uint16_t_u_u((safe_div_func_int8_t_s_s(((safe_rshift_func_uint8_t_u_s((safe_rshift_func_uint16_t_u_u(((safe_mul_func_uint8_t_u_u(0UL, ((g_2002 = ((*g_1251) < (safe_lshift_func_int8_t_s_u(((((safe_div_func_int32_t_s_s((((safe_sub_func_uint16_t_u_u((safe_rshift_func_uint8_t_u_u((*l_18), 1)), (g_168 &= (safe_unary_minus_func_int8_t_s(0x8AL))))) < ((safe_mul_func_int16_t_s_s((l_1994 != ((safe_mul_func_int8_t_s_s(((***g_1028) |= (*l_18)), (safe_add_func_uint32_t_u_u((++(*l_1999)), (**g_1487))))) , (*g_1249))), g_2002)) , 0xCDA1EE90L)) && (*l_18)), 0x4EED3296L)) && (**g_1456)) <= (*l_18)) >= 255UL), l_2003)))) , (*l_18)))) == (*l_18)), 8)), 2)) <= (*l_18)), 1L)), 8L)) != 0xEBL) , (*g_1457)) , (int32_t*) NULL)); + } + (**g_1487) = ((safe_add_func_int8_t_s_s(l_1952, (((**g_1456) | (-8L)) <= (safe_mul_func_int16_t_s_s(l_1952, (l_17 , (0x039BF18DL > ((safe_sub_func_int32_t_s_s((safe_add_func_uint16_t_u_u(65535UL, ((((*l_2012) = &g_1102) != (g_2018 = (g_2014 = ((((*g_1962) = 3UL) , (**g_1456)) , g_2014)))) <= l_17))), (*g_735))) <= l_1967)))))))) || l_1952); + return (*g_1962); +} + + +/* ------------------------------------------ */ +/* + * reads : g_14 + * writes: g_14 + */ +static int32_t func_5(int32_t p_6, uint32_t p_7) +{ /* block id: 1 */ + int32_t *l_9[2]; + uint32_t l_11 = 1UL; + int i; + for (i = 0; i < 2; i++) + l_9[i] = &g_10; + l_11--; + ++g_14; + return p_6; +} + + +/* ------------------------------------------ */ +/* + * reads : g_8 g_10 g_68 g_14 g_88 g_912 g_94 g_813 g_95 g_735 g_101 g_1250 g_1251 g_534 g_679 g_1029 g_207 g_208 g_691 g_1463 g_168 g_1457 g_1098 g_1249 g_1489 g_175 g_89 g_1566 g_1027 g_1611 g_532 g_1726 g_1028 g_1781 g_1490 g_1102 g_1103 g_435 g_177 g_1555 g_263 + * writes: g_68 g_10 g_735 g_88 g_168 g_14 g_534 g_1028 g_1452 g_101 g_1456 g_175 g_1486 g_1487 g_263 g_89 g_94 g_813 g_208 g_1555 g_1566 g_532 g_1098 g_1611 g_1726 g_1102 g_1781 g_435 g_177 + */ +static uint8_t func_39(uint32_t p_40, int32_t * p_41, int32_t p_42) +{ /* block id: 10 */ + uint16_t *l_67 = &g_68; + int32_t l_75 = 1L; + int32_t **l_1491[8] = {&g_735,NULL,&g_735,NULL,&g_735,NULL,&g_735,NULL}; + int32_t *l_1492 = NULL; + const int32_t *l_1680 = &g_10; + const int32_t **l_1679 = &l_1680; + int32_t *l_1681 = &g_101[0][1][2]; + uint32_t l_1738 = 0x915B1875L; + int16_t ****l_1759 = &g_1103; + int8_t l_1785[2][10][5] = {{{0L,0xD1L,0L,0x10L,0xA1L},{(-4L),0xF8L,0L,(-9L),9L},{(-1L),0L,0x19L,0L,0x60L},{0x10L,(-7L),0L,9L,(-1L)},{0x20L,0L,0L,(-4L),0x12L},{1L,(-1L),(-1L),0x89L,0x10L},{0x1CL,0x60L,0x33L,0L,0x8FL},{0x7BL,0x4EL,9L,0L,1L},{0x83L,0x8FL,(-1L),0x89L,0x3AL},{0L,(-4L),(-1L),(-4L),0L}},{{(-1L),(-9L),(-7L),9L,(-8L)},{0x8FL,0x46L,0xD1L,0L,(-4L)},{0xD1L,(-7L),0x60L,(-9L),(-8L)},{(-1L),0L,1L,0x10L,0L},{(-8L),0x50L,(-7L),0x46L,0x3AL},{0x33L,1L,0x3AL,0xC2L,1L},{(-1L),0x20L,0x10L,(-1L),0x8FL},{(-1L),(-1L),(-1L),0x20L,0x10L},{0x33L,9L,0x12L,0L,0x12L},{(-8L),(-8L),1L,0x3AL,(-1L)}}}; + uint32_t l_1789 = 18446744073709551613UL; + uint32_t **l_1796 = &g_1251; + int16_t l_1841 = 0x47E8L; + int8_t ****l_1864 = &g_1452; + const uint32_t *l_1877 = &g_1878[1][2][2]; + const uint32_t **l_1876 = &l_1877; + int16_t l_1889 = 0x474EL; + int32_t l_1941 = 0x901B980BL; + uint8_t *l_1944 = &g_14; + uint8_t *l_1945 = NULL; + uint8_t *l_1946 = &g_177; + int i, j, k; +lbl_1744: + (*l_1679) = func_52(g_8[0], g_8[0], ((g_10 , (func_5((g_8[0] && ((safe_lshift_func_int8_t_s_u(func_5((safe_mul_func_int8_t_s_s(((l_1492 = func_64(((*l_67) |= 0xAE56L), func_69(((safe_add_func_uint16_t_u_u((g_168 = ((safe_sub_func_int32_t_s_s(l_75, ((l_75 , func_76(g_14, func_80(func_82((g_10 = (safe_rshift_func_uint8_t_u_u(g_8[2], 6))), g_14, g_88)), &g_101[0][1][1])) < 5UL))) || p_40)), l_75)) >= (*g_94))))) != NULL), 0x19L)), p_40), p_40)) <= p_40)), p_40) , (*g_1251))) < p_42), p_40, p_40); + if (((p_41 = &p_42) != (l_1681 = &g_89))) + { /* block id: 749 */ + uint16_t l_1684[9][7] = {{0x4D1DL,1UL,0x075BL,0xEA90L,0xD27EL,65526UL,0x9259L},{0x075BL,0xFB9BL,0x10FFL,65526UL,65530UL,6UL,65526UL},{1UL,0x9259L,0xD27EL,0UL,65526UL,0UL,0xD27EL},{6UL,6UL,0x10FFL,0xDC46L,65526UL,0x9922L,0x9259L},{0x9922L,0x3934L,6UL,1UL,0x10FFL,65527UL,0xFC16L},{0x10FFL,1UL,65526UL,65526UL,65526UL,0xFC16L,6UL},{0x861FL,0xD27EL,6UL,65535UL,65530UL,65530UL,65535UL},{0UL,0xD27EL,0UL,6UL,0xFC16L,65526UL,65526UL},{0x4D1DL,1UL,3UL,0xFC16L,65527UL,0x10FFL,1UL}}; + uint8_t * const *l_1695 = &g_1457; + int32_t l_1711 = 0x5C5B3728L; + int8_t l_1728 = 0x47L; + int32_t l_1733 = 0x9B2D669CL; + int32_t l_1735 = 1L; + int32_t l_1737 = 0xD5DDB545L; + int32_t l_1784 = (-7L); + int32_t l_1786 = (-1L); + int32_t l_1787 = 0L; + int32_t l_1788 = 0xB7C3DCB2L; + int i, j; + for (g_1611 = 0; (g_1611 > 2); g_1611 = safe_add_func_uint16_t_u_u(g_1611, 8)) + { /* block id: 752 */ + int32_t l_1710 = 1L; + int32_t l_1731 = 0x84BCF933L; + int32_t l_1732 = (-1L); + int32_t l_1734 = 0L; + int32_t l_1775 = 1L; + int32_t l_1776 = 0xE5BFAA72L; + int32_t l_1777 = (-6L); + int32_t l_1778 = 0x647D0747L; + int32_t l_1779 = 0x099AC607L; + int32_t l_1780 = 0xD5FEF757L; + (*p_41) &= l_1684[1][6]; + for (g_175 = 3; (g_175 >= 1); g_175 -= 1) + { /* block id: 756 */ + int32_t l_1730 = 8L; + int32_t *l_1746 = &g_10; + int32_t l_1760 = 1L; + int32_t l_1774[1][2][5] = {{{2L,(-1L),2L,2L,(-1L)},{(-1L),2L,2L,(-1L),2L}}}; + int i, j, k; + if ((safe_div_func_int32_t_s_s(g_8[g_175], (safe_sub_func_int8_t_s_s((-1L), g_8[g_175]))))) + { /* block id: 757 */ + uint32_t ***l_1724 = &g_1250; + int32_t l_1727 = (-7L); + int32_t l_1729 = 0x4E2B1F57L; + int32_t l_1736 = 0xD335B7D7L; + for (p_40 = 0; (p_40 <= 4); p_40 += 1) + { /* block id: 760 */ + uint32_t *l_1725 = &g_1726; + int i; + l_1711 = (safe_rshift_func_int8_t_s_s(((safe_mul_func_int16_t_s_s(g_8[g_175], (safe_sub_func_int16_t_s_s((l_1695 == ((((((((safe_add_func_uint16_t_u_u((safe_mod_func_int16_t_s_s(((0UL ^ (((p_40 >= (safe_div_func_uint16_t_u_u((!(*g_94)), ((safe_div_func_int16_t_s_s(1L, (safe_rshift_func_int16_t_s_s(((*p_41) , 5L), (safe_mul_func_uint16_t_u_u((safe_lshift_func_int16_t_s_u(((*p_41) < p_42), 14)), g_8[g_175])))))) | 0x7A52D48EL)))) || (*p_41)) , (*p_41))) , 6L), 1UL)), l_1710)) | p_40) , l_1710) | 0x94D1L) , &g_1456) != &g_1456) && 0x35F8L) , l_1695)), (*g_691))))) >= 1UL), 4)); + (*g_1463) = ((((((safe_sub_func_uint16_t_u_u((l_1711 &= (safe_mod_func_uint8_t_u_u(((p_40 > (*g_1457)) <= ((*g_94) >= (p_40 == (safe_add_func_int32_t_s_s((((p_40 < p_40) & (safe_sub_func_int8_t_s_s((~(safe_lshift_func_uint16_t_u_u(((((l_1727 ^= ((*l_1725) &= ((**g_1250) ^= (safe_sub_func_int16_t_s_s((l_1724 != l_1724), (((((~0xE6FD0E25L) ^ 8L) != 0x1FF1L) <= (*g_94)) | g_8[g_175])))))) == (*p_41)) < p_40) == p_40), 1))), l_1728))) , (*p_41)), (*l_1681)))))), p_42))), l_1728)) <= l_1729) > (*g_94)) , (int32_t***) NULL) == &g_311) & p_40); + } + if ((*g_1463)) + { /* block id: 768 */ + (*g_1463) ^= l_1711; + if ((*p_41)) + continue; + } + else + { /* block id: 771 */ + return p_42; + } + l_1738--; + } + else + { /* block id: 775 */ + uint8_t l_1741 = 0xA9L; + l_1741--; + if (l_75) + goto lbl_1744; + } + if (l_1735) + { /* block id: 779 */ + (*l_1681) ^= l_1728; + } + else + { /* block id: 781 */ + int32_t l_1745 = 0xB909AFC6L; + int16_t *****l_1747 = NULL; + int16_t *****l_1748 = &g_1102; + int32_t l_1768[9][4][3] = {{{0xCD9A7C8AL,(-5L),(-4L)},{0xAF3B7215L,0x2196F175L,(-6L)},{1L,(-1L),0x3F1D03C1L},{(-1L),0x2196F175L,(-1L)}},{{0x21C896E3L,(-5L),0L},{0x2196F175L,0x41C49213L,0L},{(-1L),0xAACA832CL,(-1L)},{0x919DCA21L,0x21C896E3L,0x3F1D03C1L}},{{0x41C49213L,0xF437A5A9L,(-6L)},{0x919DCA21L,0xEDA3817EL,(-4L)},{(-1L),(-1L),0x520C3304L},{0x2196F175L,(-1L),0x4D455C86L}},{{0x21C896E3L,0xEDA3817EL,0L},{(-1L),0xF437A5A9L,0xA4D09836L},{1L,0x21C896E3L,0L},{0xAF3B7215L,0xAACA832CL,0x4D455C86L}},{{0xCD9A7C8AL,0x41C49213L,0x520C3304L},{0xCD9A7C8AL,(-5L),(-4L)},{0xAF3B7215L,0x2196F175L,(-6L)},{1L,(-1L),0x3F1D03C1L}},{{(-1L),0x2196F175L,(-1L)},{0x21C896E3L,(-5L),0L},{0x2196F175L,0x41C49213L,0L},{(-1L),0xAACA832CL,(-1L)}},{{0x919DCA21L,0x21C896E3L,0x3F1D03C1L},{0x41C49213L,0xF437A5A9L,(-6L)},{0x919DCA21L,0xEDA3817EL,(-4L)},{(-1L),(-1L),0x520C3304L}},{{0x2196F175L,(-1L),0x4D455C86L},{0x21C896E3L,0xEDA3817EL,0L},{(-1L),0xF437A5A9L,0xA4D09836L},{1L,0x21C896E3L,0L}},{{0xAF3B7215L,0xAACA832CL,0x4D455C86L},{0xCD9A7C8AL,0x41C49213L,0x520C3304L},{0xCD9A7C8AL,(-5L),(-4L)},{0xAF3B7215L,0x2196F175L,(-6L)}}}; + int i, j, k; + for (p_42 = 7; (p_42 >= 0); p_42 -= 1) + { /* block id: 784 */ + int i; + if ((*p_41)) + break; + if (l_1745) + break; + l_1746 = &p_42; + if (l_1710) + continue; + } + (*l_1681) = ((0x2EEBL < (((*l_1748) = &g_1103) != (((safe_rshift_func_int8_t_s_u(p_40, l_1745)) ^ ((*l_1746) = (safe_sub_func_int8_t_s_s((safe_mul_func_int16_t_s_s((-1L), (~l_1745))), (((***g_1028) = 0x9DL) != ((((safe_mod_func_int32_t_s_s((-6L), (safe_mod_func_uint32_t_u_u((**g_1250), 0x6072443AL)))) & p_40) != (*l_1746)) ^ 4UL)))))) , l_1759))) < l_1760); + if ((*p_41)) + { /* block id: 794 */ + int32_t * const l_1767 = &g_263; + int32_t * const *l_1766 = &l_1767; + int32_t * const * const *l_1765 = &l_1766; + int32_t l_1769 = 0xF3C67E0AL; + int32_t l_1770 = 0xDE144CE1L; + int32_t l_1771 = 0x87004860L; + int32_t l_1772 = 0L; + int32_t l_1773[4][2][1]; + int i, j, k; + for (i = 0; i < 4; i++) + { + for (j = 0; j < 2; j++) + { + for (k = 0; k < 1; k++) + l_1773[i][j][k] = 0xCD9C8AADL; + } + } + (*l_1681) ^= ((*l_1746) = (*p_41)); + (*l_1679) = func_82(((*p_41) = ((p_42 || ((*g_94) != (&g_1250 == &g_1250))) && (((l_1745 , (safe_mul_func_int8_t_s_s((((**g_1029) = ((NULL != (uint32_t*) l_1746) || ((*l_1746) == (p_42 >= 0xAB24L)))) != 0xDAL), l_1737))) , l_1765) == &g_311))), p_40, p_41); + g_1781[1][0]++; + } + else + { /* block id: 801 */ + (*p_41) = 0xF85691D2L; + } + } + l_1789++; + } + if ((*p_41)) + break; + } + } + else + { /* block id: 809 */ + int8_t ****l_1797[3][10][8] = {{{NULL,&g_1028,&g_1028,&g_1452,&g_1028,&g_1452,&g_1028,&g_1028},{&g_1028,&g_1028,&g_1028,&g_1028,&g_1028,&g_1028,&g_1452,&g_1028},{NULL,&g_1452,&g_1028,&g_1452,&g_1452,&g_1028,&g_1028,&g_1452},{&g_1452,&g_1028,NULL,&g_1452,&g_1028,&g_1452,NULL,&g_1452},{&g_1452,&g_1452,&g_1028,NULL,&g_1452,&g_1452,NULL,&g_1452},{&g_1028,&g_1028,NULL,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{NULL,&g_1452,&g_1028,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452},{&g_1452,&g_1452,NULL,NULL,&g_1452,&g_1452,NULL,&g_1452},{NULL,&g_1028,&g_1028,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{&g_1028,&g_1452,&g_1452,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452}},{{&g_1452,&g_1452,&g_1028,NULL,&g_1452,&g_1452,NULL,&g_1452},{&g_1028,&g_1028,NULL,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{NULL,&g_1452,&g_1028,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452},{&g_1452,&g_1452,NULL,NULL,&g_1452,&g_1452,NULL,&g_1452},{NULL,&g_1028,&g_1028,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{&g_1028,&g_1452,&g_1452,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452},{&g_1452,&g_1452,&g_1028,NULL,&g_1452,&g_1452,NULL,&g_1452},{&g_1028,&g_1028,NULL,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{NULL,&g_1452,&g_1028,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452},{&g_1452,&g_1452,NULL,NULL,&g_1452,&g_1452,NULL,&g_1452}},{{NULL,&g_1028,&g_1028,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{&g_1028,&g_1452,&g_1452,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452},{&g_1452,&g_1452,&g_1028,NULL,&g_1452,&g_1452,NULL,&g_1452},{&g_1028,&g_1028,NULL,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{NULL,&g_1452,&g_1028,&g_1028,&g_1452,&g_1452,&g_1452,&g_1452},{&g_1452,&g_1452,NULL,NULL,&g_1452,&g_1452,NULL,&g_1452},{NULL,&g_1028,&g_1028,&g_1028,&g_1028,&g_1452,&g_1452,NULL},{&g_1028,&g_1452,&g_1452,&g_1028,&g_1452,&g_1452,NULL,NULL},{NULL,&g_1028,&g_1028,&g_1452,&g_1028,&g_1452,&g_1028,NULL},{&g_1452,&g_1028,&g_1452,NULL,&g_1028,&g_1452,NULL,&g_1028}}}; + int32_t l_1809 = (-5L); + int32_t *l_1811 = &g_89; + int32_t l_1828 = 0x18381127L; + int32_t l_1830 = 2L; + int32_t l_1837 = 1L; + int32_t l_1843 = 0x4408EEE1L; + int32_t *l_1924 = &l_1809; + int i, j, k; + for (p_42 = (-7); (p_42 >= (-19)); p_42--) + { /* block id: 812 */ + int8_t *****l_1798 = &l_1797[2][7][5]; + uint32_t *l_1807[10]; + int32_t l_1808 = 0x8CAAAE7BL; |