{"name": "audio_init", "code": "unsigned __int64 audio_init ( ) { __int64 v0 ; int v1 ; int v2 ; int v3 ; __int64 * v4 ; __int64 v5 ; __int64 v6 ; __int64 v7 ; __int64 v8 ; __int64 v9 ; __int64 v10 ; __int64 v11 ; __int64 v12 ; __int64 v13 ; __int64 v14 ; __int64 v15 ; int v16 ; __int64 v17 ; __int64 v18 ; __int64 v19 ; __int64 v20 ; unsigned int @@v21@@ ; unsigned int v22 ; __int64 v23 ; __int64 v24 ; __int64 v25 ; __int64 v26 ; int @@v28@@ ; _BOOL4 @@v29@@ ; int @@v30@@ ; unsigned __int64 @@i@@ ; __int64 * @@v32@@ ; char * @@s1@@ ; unsigned __int64 @@v35@@ ; @@v35@@ = __readfsqword ( Number ) ; @@v29@@ = Number ; @@v32@@ = glob_audio_state ; if ( ! glob_audio_state [ Number ] ) { @@v32@@ [ Number ] = Number L ; @@v32@@ [ Number ] = Number L ; @@v32@@ [ Number ] = Number L ; atexit ( audio_atexit ) ; v0 = timer_new_ns ( Number , ( __int64 ) audio_timer , ( __int64 ) @@v32@@ ) ; v4 = @@v32@@ ; @@v32@@ [ Number ] = v0 ; if ( ! @@v32@@ [ Number ] ) hw_error ( String ) ; audio_process_options ( String , & audio_options , ( __int64 ) v4 , v1 , v2 , v3 ) ; * ( ( _DWORD * ) @@v32@@ + Number ) = dword_6504 ; * ( ( _DWORD * ) @@v32@@ + Number ) = dword_6520 ; if ( * ( ( int * ) @@v32@@ + Number ) <= Number ) { AUD_log ( String , String , * ( ( unsigned int * ) @@v32@@ + Number ) , v5 , v6 , v7 ) ; * ( ( _DWORD * ) @@v32@@ + Number ) = Number ; } if ( * ( ( int * ) @@v32@@ + Number ) <= Number ) { AUD_log ( String , String , * ( ( unsigned int * ) @@v32@@ + Number ) , v5 , v6 , v7 ) ; * ( ( _DWORD * ) @@v32@@ + Number ) = Number ; } @@s1@@ = audio_get_conf_str ( String , Number L , & @@v28@@ ) ; if ( @@s1@@ ) { @@v30@@ = Number ; for ( @@i@@ = Number L ; @@i@@ <= Number ; ++ @@i@@ ) { if ( ! strcmp ( @@s1@@ , * ( const char * * ) * ( & drvtab + @@i@@ ) ) ) { @@v29@@ = audio_driver_init ( @@v32@@ , * ( & drvtab + @@i@@ ) , ( __int64 ) * ( & drvtab + @@i@@ ) , v9 , v10 , v11 ) == Number ; @@v30@@ = Number ; break ; } } if ( ! @@v30@@ ) { AUD_log ( String , String , ( __int64 ) @@s1@@ , v9 , v10 , v11 ) ; AUD_log ( String , String , v12 , v13 , v14 , v15 ) ; } } if ( ! @@v29@@ ) { for ( @@i@@ = Number L ; ! @@v29@@ && @@i@@ <= Number ; ++ @@i@@ ) { v8 = Number * @@i@@ ; if ( * ( ( _DWORD * ) * ( & drvtab + @@i@@ ) + Number ) ) @@v29@@ = audio_driver_init ( @@v32@@ , * ( & drvtab + @@i@@ ) , ( __int64 ) * ( & drvtab + @@i@@ ) , v9 , v10 , v11 ) == Number ; } } if ( ! @@v29@@ ) { v16 = audio_driver_init ( @@v32@@ , & no_audio_driver , v8 , v9 , v10 , v11 ) ; @@v29@@ = v16 == Number ; if ( v16 ) hw_error ( String ) ; AUD_log ( String , String , v17 , v18 , v19 , v20 ) ; } if ( ( int ) qword_6538 > Number ) { @@v21@@ = qword_6538 ; v22 = get_ticks_per_sec ( ) ; qword_6538 = muldiv64 ( Number L , v22 , @@v21@@ ) ; } else { if ( ( int ) qword_6538 < Number ) AUD_log ( String , String , ( unsigned int ) qword_6538 , v9 , v10 , v11 ) ; qword_6538 = Number L ; } if ( ! qemu_add_vm_change_state_handler ( audio_vm_change_state_handler , @@v32@@ ) ) AUD_log ( String , String , v23 , v24 , v25 , v26 ) ; @@v32@@ [ Number ] = Number L ; vmstate_register ( Number L , Number , ( __int64 ) & vmstate_audio , ( __int64 ) @@v32@@ ) ; } return __readfsqword ( Number ) ^ @@v35@@ ; }", "source": [{"n": "v21", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "v35", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "s1", "t": {"T": 3, "t": "char"}, "location": "s40"}, {"n": "v32", "t": {"T": 3, "t": "__int64"}, "location": "s48"}, {"n": "i", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v29", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s64"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}]}