{"name": "epoll_loop", "code": "void __fastcall __noreturn epoll_loop ( int @@a1@@ ) { struct epoll_event @@events@@ [ Number ] ; void ( __fastcall * @@v2@@ ) ( _QWORD , _QWORD , _QWORD ) ; unsigned int * @@v3@@ ; int @@v4@@ ; int @@i@@ ; while ( Number ) { @@v4@@ = epoll_wait ( @@a1@@ , @@events@@ , Number , Number ) ; if ( @@v4@@ <= Number ) { puts ( String ) ; } else { for ( @@i@@ = Number ; @@i@@ < @@v4@@ ; ++ @@i@@ ) { @@v3@@ = ( unsigned int * ) @@events@@ [ @@i@@ ] . data . ptr ; @@v2@@ = ( void ( __fastcall * ) ( _QWORD , _QWORD , _QWORD ) ) * ( ( _QWORD * ) @@v3@@ + Number ) ; @@v2@@ ( * @@v3@@ , @@events@@ [ @@i@@ ] . @@events@@ , * ( ( _QWORD * ) @@v3@@ + Number ) ) ; } } } }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "v3", "t": {"T": 3, "t": "unsigned int"}, "location": "s16"}, {"n": "events", "t": {"T": 2, "n": 16, "s": 12, "t": "struct epoll_event"}, "location": "s224"}, {"n": "v2", "t": {"T": 9, "n": "void (__fastcall *)(_QWORD, _QWORD, _QWORD)"}, "location": "s24"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}
{"name": "main", "code": "int __cdecl main ( int @@argc@@ , const char * * @@argv@@ , const char * * @@envp@@ ) { int @@result@@ ; struct sockaddr @@addr@@ ; epoll_data_t @@v5@@ ; int @@fd@@ ; puts ( String ) ; g_iEpollFd = epoll_create ( Number ) ; if ( g_iEpollFd >= Number ) { @@fd@@ = socket ( Number , Number , Number ) ; if ( @@fd@@ >= Number ) { @@addr@@ . sa_family = Number ; * ( _DWORD * ) & @@addr@@ . sa_data [ Number ] = inet_addr ( g_cRtmpSrvAddr ) ; * ( _WORD * ) @@addr@@ . sa_data = htons ( g_usRtmpSrvPort ) ; if ( bind ( @@fd@@ , & @@addr@@ , Number ) ) { @@result@@ = Number ; } else if ( listen ( @@fd@@ , Number ) ) { @@result@@ = Number ; } else { @@v5@@ . u64 = ( uint64_t ) malloc ( Number ) ; if ( @@v5@@ . u64 ) { * ( _DWORD * ) @@v5@@ . ptr = @@fd@@ ; * ( _QWORD * ) ( @@v5@@ . u64 + Number ) = ListenHandle ; * ( _QWORD * ) ( @@v5@@ . u64 + Number ) = Number L ; if ( ! ( unsigned int ) epoll_op ( g_iEpollFd , Number , @@fd@@ , Number , @@v5@@ ) ) { g_iListenFd = @@fd@@ ; epoll_loop ( g_iEpollFd ) ; } @@result@@ = Number ; } else { @@result@@ = Number ; } } } else { puts ( String ) ; @@result@@ = Number ; } } else { puts ( String ) ; @@result@@ = Number ; } return @@result@@ ; }", "source": [{"n": "envp", "t": {"T": 3, "t": "const char *"}, "location": "r16"}, {"n": "argc", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "argv", "t": {"T": 3, "t": "const char *"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}, {"n": "v5", "t": {"T": 8}, "location": "s16"}, {"n": "addr", "t": {"T": 6, "n": "struct sockaddr", "l": [{"T": 4, "n": "sa_family", "t": "sa_family_t", "s": 2}, {"T": 4, "n": "sa_data", "t": "char[14]", "s": 14}]}, "location": "s32"}, {"n": "fd", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]}