{"name": "sub_40176B", "code": "__int64 sub_40176B ( ) { unsigned int v0 ; _BYTE * v1 ; __int64 v2 ; _BYTE * v3 ; _BYTE * @@v5@@ ; v0 = getpid ( ) ; v1 = ( char * ) & unk_406340 + ( unsigned int ) sub_402D61 ( & unk_406340 , v0 ) ; @@v5@@ = v1 + Number ; * v1 = Number ; v2 = sub_401F42 ( ) ; v3 = & @@v5@@ [ ( unsigned int ) sub_402D88 ( @@v5@@ , v2 ) ] ; * v3 = Number ; v3 [ Number ] = Number ; sub_4012DA ( ( __int64 ) String ) ; sub_4012DA ( ( __int64 ) & unk_406340 ) ; sub_4012DA ( qword_406398 ) ; sub_4012DA ( ( __int64 ) String ) ; return sub_4012FF ( ) ; }", "source": [{"n": "v5", "t": {"T": 3, "t": "_BYTE"}, "location": "s8"}]}
{"name": "sub_4012DA", "code": "__int64 __fastcall sub_4012DA ( __int64 @@a1@@ ) { return sub_402AC1 ( & off_4050E0 , @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "main", "code": "void __fastcall __noreturn main ( int @@a1@@ , char * * @@a2@@ , char * * @@a3@@ ) { sub_40205D ( sub_401242 , @@a2@@ , @@a3@@ ) ; sub_4021BD ( ) ; qword_406398 = ( __int64 ) @@a2@@ [ Number ] ; if ( ! qword_406398 ) sub_40135D ( ) ; argv = @@a2@@ + Number ; if ( ! @@a2@@ [ Number ] ) sub_40135D ( ) ; sub_40176B ( ) ; sub_401A36 ( & off_405100 , & off_405120 ) ; sub_401242 ( ) ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "char *"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char *"}, "location": "r64"}]} {"name": "sub_402D61", "code": "__int64 __fastcall sub_402D61 ( __int64 @@a1@@ , unsigned int @@a2@@ ) { return sub_402D88 ( @@a1@@ , @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]} {"name": "sub_402D88", "code": "__int64 __fastcall sub_402D88 ( __int64 @@a1@@ , unsigned __int64 @@a2@@ ) { unsigned int @@v2@@ ; unsigned __int64 @@i@@ ; __int64 @@v4@@ ; @@v2@@ = Number ; for ( @@i@@ = @@a2@@ ; @@i@@ > Number ; @@i@@ /= Number ) ++ @@v2@@ ; if ( @@a1@@ ) { @@v4@@ = @@v2@@ + @@a1@@ ; do { * ( _BYTE * ) -- @@v4@@ = @@a2@@ % Number + Number ; @@a2@@ /= Number ; } while ( @@a2@@ ) ; } return @@v2@@ ; }", "source": [{"n": "i", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r104"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "v2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r64"}]}