{"name": "sub_4014C3", "code": "void __fastcall __noreturn sub_4014C3 ( __int64 @@a1@@ , unsigned int @@a2@@ , __int64 @@a3@@ ) { int v3 ; int v4 ; unsigned int v5 ; int @@pipedes@@ [ Number ] ; int @@v8@@ ; unsigned int @@v9@@ ; if ( ( unsigned int ) sub_401FB6 ( Number L , Number L ) == Number ) sub_40139D ( ) ; close ( Number ) ; if ( pipe ( @@pipedes@@ ) == Number ) sub_40139D ( ) ; if ( @@pipedes@@ [ Number ] != Number ) sub_40139D ( ) ; @@v9@@ = fork ( ) ; if ( @@v9@@ != Number ) { if ( @@v9@@ ) { close ( @@pipedes@@ [ Number ] ) ; sub_402575 ( & unk_406440 , write , ( unsigned int ) @@pipedes@@ [ Number ] , & unk_4063C0 , Number L ) ; v3 = sub_402977 ( & unk_406440 , @@a1@@ , @@a2@@ ) ; if ( v3 == Number ) sub_4013BD ( ) ; v4 = sub_402B23 ( @@a3@@ ) ; if ( ( unsigned int ) sub_402977 ( & unk_406440 , @@a3@@ , ( unsigned int ) ( v4 + Number ) ) == Number ) sub_4013BD ( ) ; if ( ( unsigned int ) sub_402AC1 ( & unk_406440 , String ) == Number ) sub_4013BD ( ) ; if ( ( unsigned int ) sub_402AC1 ( & unk_406440 , & unk_406340 ) == Number ) sub_4013BD ( ) ; if ( ( unsigned int ) sub_402AC1 ( & unk_406440 , qword_406398 ) == Number ) sub_4013BD ( ) ; if ( ( unsigned int ) sub_402977 ( & unk_406440 , String , Number L ) == Number ) sub_4013BD ( ) ; if ( ( unsigned int ) sub_402892 ( & unk_406440 ) == Number ) sub_4013BD ( ) ; close ( @@pipedes@@ [ Number ] ) ; v5 = sub_402B23 ( @@a3@@ ) ; sub_402CF0 ( @@a3@@ , v5 ) ; sub_402CF0 ( & unk_4063C0 , Number L ) ; if ( ( unsigned int ) sub_4021F3 ( & @@v8@@ , @@v9@@ ) == Number ) sub_401242 ( ) ; if ( ( @@v8@@ & Number ) != Number ) sub_4013FD ( ) ; if ( @@v8@@ >> Number ) sub_401413 ( ) ; sub_401242 ( ) ; } close ( @@pipedes@@ [ Number ] ) ; sub_4021D8 ( ) ; execvp ( * argv , argv ) ; _exit ( Number ) ; } sub_4013DD ( ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "pipedes", "t": {"T": 2, "n": 2, "s": 4, "t": "int"}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}
{"name": "sub_4018C1", "code": "void __fastcall __noreturn sub_4018C1 ( _BYTE * @@a1@@ ) { if ( ! dword_405220 ) sub_40143F ( ) ; if ( ! * @@a1@@ ) sub_401429 ( ) ; sub_4014C3 ( qword_405210 , dword_405218 , ( __int64 ) @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}]} {"name": "sub_40191C", "code": "void __fastcall __noreturn sub_40191C ( __int64 @@a1@@ ) { _BYTE * @@v1@@ ; @@v1@@ = ( _BYTE * ) ( ( unsigned int ) sub_402B7F ( @@a1@@ , Number L ) + @@a1@@ ) ; if ( ! * @@v1@@ ) sub_401429 ( ) ; * @@v1@@ = Number ; sub_4014C3 ( @@a1@@ , ( _DWORD ) @@v1@@ + Number - @@a1@@ , ( __int64 ) ( @@v1@@ + Number ) ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v1", "t": {"T": 3, "t": "_BYTE"}, "location": "s8"}]} {"name": "sub_401FB6", "code": "__int64 __fastcall sub_401FB6 ( unsigned int @@a1@@ , int @@a2@@ ) { __int64 @@result@@ ; if ( @@a1@@ == @@a2@@ ) return Number L ; if ( fcntl ( @@a2@@ , Number , Number L ) == Number ) return Number ; close ( @@a1@@ ) ; if ( fcntl ( @@a2@@ , Number , @@a1@@ ) == Number ) @@result@@ = Number ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "sub_4021F3", "code": "__int64 __fastcall sub_4021F3 ( int * @@a1@@ , __pid_t @@a2@@ ) { unsigned int @@v3@@ ; do @@v3@@ = waitpid ( @@a2@@ , @@a1@@ , Number ) ; while ( @@v3@@ == Number && * __errno_location ( ) == dword_4051B4 ) ; return @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__pid_t", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]} {"name": "sub_402575", "code": "__int64 __fastcall sub_402575 ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ , __int64 @@a4@@ , int @@a5@@ ) { __int64 @@result@@ ; @@result@@ = @@a1@@ ; * ( _QWORD * ) @@a1@@ = @@a4@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a3@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@a2@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a5@@ ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]} {"name": "sub_402892", "code": "__int64 __fastcall sub_402892 ( __int64 @@a1@@ ) { unsigned int @@v1@@ ; @@v1@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( ! @@v1@@ ) return Number L ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return sub_402820 ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 , _QWORD ) ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) @@a1@@ , @@v1@@ ) ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "sub_402977", "code": "__int64 __fastcall sub_402977 ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { signed int @@v4@@ ; signed int @@v5@@ ; @@v4@@ = @@a3@@ ; @@v5@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( @@a3@@ > @@v5@@ - * ( _DWORD * ) ( @@a1@@ + Number ) ) { if ( ( unsigned int ) sub_402892 ( @@a1@@ ) == Number ) return Number ; if ( @@v5@@ <= Number ) @@v5@@ = Number ; while ( @@v4@@ > * ( _DWORD * ) ( @@a1@@ + Number ) ) { if ( @@v5@@ > @@v4@@ ) @@v5@@ = @@v4@@ ; if ( ( unsigned int ) sub_402820 ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 , _QWORD ) ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@v5@@ ) == Number ) return Number ; @@a2@@ += @@v5@@ ; @@v4@@ -= @@v5@@ ; } } sub_402BF8 ( * ( _QWORD * ) @@a1@@ + * ( int * ) ( @@a1@@ + Number ) , ( unsigned int ) @@v4@@ , @@a2@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) += @@v4@@ ; return Number L ; }", "source": [{"n": "v4", "t": {"T": 1, "n": "signed int", "s": 4}, "location": "r104"}, {"n": "v5", "t": {"T": 1, "n": "signed int", "s": 4}, "location": "r112"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "sub_402AC1", "code": "__int64 __fastcall sub_402AC1 ( __int64 @@a1@@ , __int64 @@a2@@ ) { int @@v2@@ ; @@v2@@ = sub_402B23 ( @@a2@@ ) ; return sub_402977 ( @@a1@@ , @@a2@@ , @@v2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "sub_402B23", "code": "_BYTE * __fastcall sub_402B23 ( _BYTE * @@a1@@ ) { _BYTE * i ; _BYTE * v3 ; _BYTE * v4 ; _BYTE * v5 ; for ( i = @@a1@@ ; ; i = v5 + Number ) { if ( ! * i ) return ( _BYTE * ) ( i - @@a1@@ ) ; v3 = i + Number ; if ( ! * v3 ) return ( _BYTE * ) ( v3 - @@a1@@ ) ; v4 = v3 + Number ; if ( ! * v4 ) return ( _BYTE * ) ( v4 - @@a1@@ ) ; v5 = v4 + Number ; if ( ! * v5 ) break ; } return ( _BYTE * ) ( v5 - @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}]} {"name": "sub_402CF0", "code": "__int64 __fastcall sub_402CF0 ( _BYTE * @@a1@@ , unsigned int @@a2@@ ) { __int64 @@result@@ ; _BYTE * v3 ; _BYTE * v4 ; _BYTE * v5 ; _BYTE * v6 ; _BYTE * v8 ; _BYTE * v9 ; _BYTE * v10 ; for ( @@result@@ = @@a2@@ ; ( _DWORD ) @@result@@ ; @@result@@ = ( unsigned int ) ( @@result@@ - Number ) ) { v3 = @@a1@@ ; v8 = @@a1@@ + Number ; * v3 = Number ; @@result@@ = ( unsigned int ) ( @@result@@ - Number ) ; if ( ! ( _DWORD ) @@result@@ ) break ; v4 = v8 ; v9 = v8 + Number ; * v4 = Number ; @@result@@ = ( unsigned int ) ( @@result@@ - Number ) ; if ( ! ( _DWORD ) @@result@@ ) break ; v5 = v9 ; v10 = v9 + Number ; * v5 = Number ; @@result@@ = ( unsigned int ) ( @@result@@ - Number ) ; if ( ! ( _DWORD ) @@result@@ ) break ; v6 = v10 ; @@a1@@ = v10 + Number ; * v6 = Number ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}