{"name": "hostapd_drv_do_acs", "code": "__int64 __fastcall hostapd_drv_do_acs ( _QWORD * @@a1@@ ) { __int16 @@v2@@ ; unsigned int @@v3@@ ; __int64 @@v4@@ ; __int64 @@s@@ [ Number ] ; unsigned int @@v6@@ ; __int16 * @@v7@@ ; __int64 @@v8@@ ; unsigned int @@v9@@ ; void * @@ptr@@ ; int @@v11@@ ; int @@i@@ ; @@v11@@ = Number ; @@ptr@@ = Number L ; @@v9@@ = Number ; @@v4@@ = Number L ; if ( ! @@a1@@ [ Number ] || ! * ( _QWORD * ) ( @@a1@@ [ Number ] + Number L ) ) return Number L ; memset ( @@s@@ , Number , Number ) ; LODWORD ( @@s@@ [ Number ] ) = * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) ; if ( ! * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) ) @@v11@@ = Number ; @@v8@@ = * ( _QWORD * ) ( * @@a1@@ + Number L ) ; if ( @@v8@@ ) { @@ptr@@ = malloc ( * ( int * ) ( @@v8@@ + Number ) ) ; if ( ! @@ptr@@ ) return Number ; for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( @@v8@@ + Number ) ; ++ @@i@@ ) { @@v7@@ = ( __int16 * ) ( * ( _QWORD * ) ( @@v8@@ + Number ) + Number L * @@i@@ ) ; if ( ( @@v11@@ || ( unsigned int ) freq_range_list_includes ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L , ( unsigned int ) * @@v7@@ ) ) && ( ! * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) || ( * ( ( _DWORD * ) @@v7@@ + Number ) & Number ) == Number ) && ( * ( ( _DWORD * ) @@v7@@ + Number ) & Number ) == Number ) { @@v2@@ = * @@v7@@ ; @@v3@@ = @@v9@@ ++ ; * ( ( _BYTE * ) @@ptr@@ + @@v3@@ ) = @@v2@@ ; int_array_add_unique ( & @@v4@@ , * ( ( unsigned int * ) @@v7@@ + Number ) ) ; } } } else { for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( * @@a1@@ + Number L ) ; ++ @@i@@ ) { @@v8@@ = * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L * @@i@@ ; hostapd_get_hw_mode_any_channels ( ( __int64 ) @@a1@@ , @@v8@@ , @@v11@@ , ( __int64 ) & @@v4@@ ) ; } } @@s@@ [ Number ] = ( __int64 ) @@ptr@@ ; HIDWORD ( @@s@@ [ Number ] ) = @@v9@@ ; @@s@@ [ Number ] = @@v4@@ ; HIDWORD ( @@s@@ [ Number ] ) = * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) != Number ; LODWORD ( @@s@@ [ Number ] ) = ( * ( _WORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) & Number ) != Number ; HIDWORD ( @@s@@ [ Number ] ) = * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) != Number ; LOWORD ( @@s@@ [ Number ] ) = Number ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) && LODWORD ( @@s@@ [ Number ] ) ) LOWORD ( @@s@@ [ Number ] ) = Number ; if ( * ( _DWORD * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) && LODWORD ( @@s@@ [ Number ] ) ) { if ( * ( _BYTE * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) == Number ) { LOWORD ( @@s@@ [ Number ] ) = Number ; } else if ( * ( _BYTE * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) == Number || * ( _BYTE * ) ( * ( _QWORD * ) ( * @@a1@@ + Number L ) + Number L ) == Number ) { LOWORD ( @@s@@ [ Number ] ) = Number ; } } @@v6@@ = ( * ( __int64 ( __fastcall * * ) ( _QWORD , __int64 * ) ) ( @@a1@@ [ Number ] + Number L ) ) ( @@a1@@ [ Number ] , @@s@@ ) ; free ( @@ptr@@ ) ; return @@v6@@ ; }", "source": [{"n": "v2", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r8"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v7", "t": {"T": 3, "t": "__int16"}, "location": "s40"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}, {"n": "s", "t": {"T": 2, "n": 6, "s": 8, "t": "__int64"}, "location": "s96"}]}
{"name": "hostapd_get_hw_mode_any_channels", "code": "__int64 __fastcall hostapd_get_hw_mode_any_channels ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ , __int64 @@a4@@ ) { __int64 @@result@@ ; __int16 * @@v7@@ ; int @@i@@ ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = * ( unsigned int * ) ( @@a2@@ + Number ) ; if ( @@i@@ >= ( int ) @@result@@ ) break ; @@v7@@ = ( __int16 * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L * @@i@@ ) ; if ( ( @@a3@@ || ( unsigned int ) freq_range_list_includes ( * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) + Number L , ( unsigned int ) * @@v7@@ ) ) && ( * ( ( _DWORD * ) @@v7@@ + Number ) & Number ) == Number && ( ! * ( _DWORD * ) ( * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) + Number L ) || ( * ( ( _DWORD * ) @@v7@@ + Number ) & Number ) == Number ) ) { int_array_add_unique ( @@a4@@ , * ( ( unsigned int * ) @@v7@@ + Number ) ) ; } } 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": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v7", "t": {"T": 3, "t": "__int16"}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]}