{"name": "sub_402764", "code": "__int64 __fastcall sub_402764 ( __int64 @@a1@@ , __int64 @@a2@@ , signed int @@a3@@ ) { __int64 @@result@@ ; int @@v5@@ ; if ( * ( int * ) ( @@a1@@ + Number ) > Number ) return sub_4025EF ( @@a1@@ , @@a2@@ , @@a3@@ ) ; if ( @@a3@@ >= * ( _DWORD * ) ( @@a1@@ + Number ) ) return sub_402596 ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 , _QWORD ) ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@a3@@ ) ; @@v5@@ = sub_402655 ( ( _QWORD * ) @@a1@@ ) ; if ( @@v5@@ > Number ) @@result@@ = sub_4025EF ( @@a1@@ , @@a2@@ , @@a3@@ ) ; else @@result@@ = ( unsigned int ) @@v5@@ ; return @@result@@ ; }", "source": [{"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r120"}, {"n": "a3", "t": {"T": 1, "n": "signed 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"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}
{"name": "sub_401A36", "code": "__int64 __fastcall sub_401A36 ( __int64 @@a1@@ , __int64 @@a2@@ ) { _BYTE * @@i@@ ; unsigned int v4 ; int v5 ; int j ; while ( ( unsigned int ) sub_4023AD ( & qword_405230 , & unk_403103 ) ) { while ( Number ) { if ( ! ( unsigned int ) sub_4022C9 ( & qword_405230 , Number L ) ) return Number ; v4 = sub_402764 ( @@a1@@ , qword_405230 + ( unsigned int ) dword_405238 , Number L ) ; if ( v4 != Number ) return v4 ; if ( * ( _BYTE * ) ( ( unsigned int ) dword_405238 + qword_405230 ) == Number ) break ; ++ dword_405238 ; } if ( dword_405238 && * ( _BYTE * ) ( ( unsigned int ) ( dword_405238 - Number ) + qword_405230 ) == Number ) -- dword_405238 ; * ( _BYTE * ) ( ( unsigned int ) dword_405238 + qword_405230 ) = Number ; v5 = sub_402B7F ( qword_405230 , Number L ) ; for ( @@i@@ = ( _BYTE * ) ( qword_405230 + v5 ) ; * @@i@@ == Number ; ++ @@i@@ ) ; * ( _BYTE * ) ( qword_405230 + v5 ) = Number ; for ( j = Number ; * ( _QWORD * ) ( Number L * j + @@a2@@ ) && ( unsigned int ) sub_401F52 ( * ( _QWORD * ) ( Number L * j + @@a2@@ ) , qword_405230 ) ; ++ j ) ; ( * ( void ( __fastcall * * ) ( _BYTE * ) ) ( Number L * j + @@a2@@ + Number ) ) ( @@i@@ ) ; if ( * ( _QWORD * ) ( Number L * j + @@a2@@ + Number ) ) ( * ( void ( * * ) ( void ) ) ( Number L * j + @@a2@@ + Number ) ) ( ) ; } return Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "i", "t": {"T": 3, "t": "_BYTE"}, "location": "s16"}]} {"name": "sub_402596", "code": "__int64 __fastcall sub_402596 ( __int64 ( __fastcall * @@a1@@ ) ( _QWORD , __int64 , _QWORD ) , unsigned int @@a2@@ , __int64 @@a3@@ , unsigned int @@a4@@ ) { unsigned int @@v6@@ ; do @@v6@@ = @@a1@@ ( @@a2@@ , @@a3@@ , @@a4@@ ) ; while ( @@v6@@ == Number && * __errno_location ( ) == dword_4051B4 ) ; return @@v6@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r24"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 9, "n": "__int64 (__fastcall *)(_QWORD, __int64, _QWORD)"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]} {"name": "sub_4025EF", "code": "__int64 __fastcall sub_4025EF ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { unsigned int @@v3@@ ; @@v3@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( ( int ) ( @@v3@@ - @@a3@@ ) <= Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } else { @@v3@@ = @@a3@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) -= @@a3@@ ; } sub_402BF8 ( @@a2@@ , @@v3@@ , * ( _QWORD * ) @@a1@@ + * ( int * ) ( @@a1@@ + Number ) ) ; * ( _DWORD * ) ( @@a1@@ + Number ) += @@v3@@ ; return @@v3@@ ; }", "source": [{"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "unsigned 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_402655", "code": "__int64 __fastcall sub_402655 ( _QWORD * @@a1@@ ) { __int64 @@result@@ ; unsigned int v2 ; unsigned int @@v3@@ ; int v4 ; if ( * ( ( _DWORD * ) @@a1@@ + Number ) ) return * ( ( unsigned int * ) @@a1@@ + Number ) ; v2 = * ( ( _DWORD * ) @@a1@@ + Number ) ; LODWORD ( @@result@@ ) = sub_402596 ( ( __int64 ( __fastcall * ) ( _QWORD , __int64 , _QWORD ) ) @@a1@@ [ Number ] , * ( ( _DWORD * ) @@a1@@ + Number ) , * @@a1@@ , v2 ) ; @@v3@@ = @@result@@ ; if ( ( int ) @@result@@ <= Number ) return ( unsigned int ) @@result@@ ; * ( ( _DWORD * ) @@a1@@ + Number ) = @@result@@ ; v4 = v2 - @@result@@ ; * ( ( _DWORD * ) @@a1@@ + Number ) = v4 ; if ( v4 > Number ) sub_402C7B ( v4 + * @@a1@@ , ( unsigned int ) @@result@@ , * @@a1@@ ) ; return @@v3@@ ; }", "source": [{"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r104"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}