{"name": "sub_402820", "code": "__int64 __fastcall sub_402820 ( __int64 ( __fastcall * @@a1@@ ) ( _QWORD , __int64 , _QWORD ) , unsigned int @@a2@@ , __int64 @@a3@@ , unsigned int @@a4@@ ) { int @@v6@@ ; while ( @@a4@@ ) { @@v6@@ = @@a1@@ ( @@a2@@ , @@a3@@ , @@a4@@ ) ; if ( @@v6@@ == Number ) { if ( * __errno_location ( ) != dword_4051B4 ) return Number ; } else { @@a3@@ += @@v6@@ ; @@a4@@ -= @@v6@@ ; } } return Number L ; }", "source": [{"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r24"}, {"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": "err", "code": "void __fastcall __noreturn err ( __int64 @@a1@@ ) { sub_4012DA ( ( __int64 ) String ) ; sub_4012DA ( @@a1@@ ) ; sub_4012DA ( ( __int64 ) String ) ; sub_4012FF ( ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"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_402A3C", "code": "__int64 __fastcall sub_402A3C ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { __int64 @@result@@ ; if ( ( unsigned int ) sub_402892 ( @@a1@@ ) == Number ) @@result@@ = Number ; else @@result@@ = sub_402820 ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 , _QWORD ) ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@a3@@ ) ; return @@result@@ ; }", "source": [{"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"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}