{"name": "ds_get_bytes_per_pixel", "code": "__int64 __fastcall ds_get_bytes_per_pixel ( __int64 @@a1@@ ) { return * ( unsigned __int8 * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]}
{"name": "send_hextile_tile_8", "code": "unsigned __int64 __fastcall send_hextile_tile_8 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , _BYTE * @@a6@@ , _BYTE * @@a7@@ , _DWORD * @@a8@@ , _DWORD * @@a9@@ ) { __int64 v9 ; int v10 ; __int64 @@v11@@ ; int v12 ; int v13 ; void * @@v14@@ ; int v15 ; int v16 ; int v17 ; void ( __fastcall * v18 ) ( __int64 , __int64 , _QWORD ) ; int v19 ; int v20 ; __int64 @@v22@@ [ Number ] ; _DWORD * @@v23@@ ; _DWORD * @@v24@@ ; _BYTE * @@v25@@ ; _BYTE * @@v26@@ ; int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; __int64 @@v31@@ ; char @@v32@@ ; char @@v33@@ ; char @@v34@@ ; char @@v35@@ ; int @@i@@ ; int @@j@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; int @@v43@@ ; int @@v44@@ ; int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; __int64 @@v48@@ ; __int64 @@v49@@ ; _BYTE * @@v50@@ ; _BYTE * @@v51@@ ; __int64 @@v52@@ ; __int64 * @@v53@@ ; unsigned __int64 @@v54@@ ; @@v31@@ = @@a1@@ ; @@v30@@ = @@a2@@ ; @@v29@@ = @@a3@@ ; @@v28@@ = @@a4@@ ; @@v27@@ = @@a5@@ ; @@v26@@ = @@a6@@ ; @@v25@@ = @@a7@@ ; @@v24@@ = @@a8@@ ; @@v23@@ = @@a9@@ ; @@v54@@ = __readfsqword ( Number ) ; @@v49@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; v9 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v49@@ + Number ) + Number L ) ; v10 = ds_get_linesize ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v11@@ = @@v29@@ * v10 ; v12 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ = v9 + @@v11@@ + @@v30@@ * v12 ; @@v47@@ = @@v48@@ ; @@v50@@ = @@v26@@ ; @@v51@@ = @@v25@@ ; @@v33@@ = Number ; @@v34@@ = Number ; @@v38@@ = Number ; @@v39@@ = Number ; @@v40@@ = Number ; @@v41@@ = Number ; v13 = ( * ( unsigned __int8 * ) ( @@v31@@ + Number ) + Number ) << Number ; @@v52@@ = v13 - Number L ; @@v22@@ [ Number ] = v13 ; @@v22@@ [ Number ] = Number L ; @@v14@@ = alloca ( Number * ( ( v13 + Number L ) / Number ) ) ; @@v53@@ = @@v22@@ ; @@v42@@ = Number ; @@v43@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v38@@ == Number ) { if ( @@v33@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) || @@v34@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { if ( @@v33@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { ++ @@v39@@ ; } else if ( @@v34@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { ++ @@v40@@ ; } } else { @@v38@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ ) { if ( @@v38@@ == Number && @@v33@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v34@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } else { @@v33@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } } if ( @@v38@@ > Number ) break ; v15 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += v15 ; } if ( @@v38@@ > Number && @@v40@@ > @@v39@@ ) { @@v35@@ = @@v34@@ ; @@v34@@ = @@v33@@ ; @@v33@@ = @@v35@@ ; } if ( ! * @@v24@@ || @@v33@@ != * @@v50@@ ) { @@v41@@ |= Number ; * @@v24@@ = Number ; * @@v50@@ = @@v33@@ ; } if ( @@v38@@ <= Number && ( ! * @@v23@@ || @@v34@@ != * @@v51@@ ) ) { @@v41@@ |= Number ; * @@v23@@ = Number ; * @@v51@@ = @@v34@@ ; } if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; if ( ! * @@v24@@ || @@v33@@ != * @@v50@@ ) @@v41@@ |= Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v45@@ = Number ; @@v46@@ = Number ; @@v32@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v45@@ ) { if ( * ( _BYTE * ) ( @@j@@ + @@v47@@ ) != @@v32@@ ) { @@v45@@ = Number ; * ( ( _BYTE * ) @@v53@@ + @@v42@@ ++ ) = @@v32@@ ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v46@@ = Number ; if ( @@v33@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v32@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } } else if ( @@v33@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v32@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } if ( @@v45@@ ) { * ( ( _BYTE * ) @@v53@@ + @@v42@@ ++ ) = @@v32@@ ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v17 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += v17 ; } * @@v23@@ = Number ; if ( @@v42@@ > ( unsigned __int64 ) ( @@v27@@ * @@v28@@ ) ) { @@v38@@ = Number ; @@v41@@ = Number ; * @@v24@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ == Number ) { @@v42@@ = Number ; } else if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v44@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v34@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { if ( @@v44@@ == Number ) @@v44@@ = @@j@@ ; } else if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v44@@ = Number ; } } if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v16 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += v16 ; } } } if ( @@v38@@ > Number ) { @@v41@@ = Number ; * @@v23@@ = Number ; * @@v24@@ = Number ; @@v38@@ = Number ; } vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v41@@ ) ; if ( @@v38@@ > Number ) { for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { v18 = * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@v31@@ + Number ) ; v19 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; v18 ( @@v31@@ , @@v48@@ , ( unsigned int ) ( @@v28@@ * v19 ) ) ; v20 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ += v20 ; } } else { if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _BYTE * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v50@@ , Number L ) ; if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _BYTE * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v51@@ , Number L ) ; if ( @@v43@@ ) { vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v43@@ ) ; vnc_write ( @@v31@@ , @@v53@@ , @@v42@@ ) ; } } return __readfsqword ( Number ) ^ @@v54@@ ; }", "source": [{"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "r40"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "_BYTE"}, "location": "r80"}, {"n": "a7", "t": {"T": 3, "t": "_BYTE"}, "location": "s-16"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "_DWORD"}, "location": "s-32"}, {"n": "v48", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s112"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s120"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s128"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v35", "t": {"T": 1, "n": "char", "s": 1}, "location": "s157"}, {"n": "v34", "t": {"T": 1, "n": "char", "s": 1}, "location": "s158"}, {"n": "v33", "t": {"T": 1, "n": "char", "s": 1}, "location": "s159"}, {"n": "v32", "t": {"T": 1, "n": "char", "s": 1}, "location": "s160"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s168"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s172"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s176"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s180"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s184"}, {"n": "v26", "t": {"T": 3, "t": "_BYTE"}, "location": "s192"}, {"n": "v25", "t": {"T": 3, "t": "_BYTE"}, "location": "s200"}, {"n": "v24", "t": {"T": 3, "t": "_DWORD"}, "location": "s208"}, {"n": "v23", "t": {"T": 3, "t": "_DWORD"}, "location": "s216"}, {"n": "v22", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s240"}, {"n": "v54", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v53", "t": {"T": 3, "t": "__int64"}, "location": "s64"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v51", "t": {"T": 3, "t": "_BYTE"}, "location": "s80"}, {"n": "v50", "t": {"T": 3, "t": "_BYTE"}, "location": "s88"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]} {"name": "send_hextile_tile_16", "code": "unsigned __int64 __fastcall send_hextile_tile_16 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , _WORD * @@a6@@ , _WORD * @@a7@@ , _DWORD * @@a8@@ , _DWORD * @@a9@@ ) { __int64 v9 ; int v10 ; __int64 @@v11@@ ; int v12 ; int v13 ; void * @@v14@@ ; int v15 ; int v16 ; int v17 ; void ( __fastcall * v18 ) ( __int64 , __int64 , _QWORD ) ; int v19 ; int v20 ; __int64 @@v22@@ [ Number ] ; _DWORD * @@v23@@ ; _DWORD * @@v24@@ ; _WORD * @@v25@@ ; _WORD * @@v26@@ ; int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; __int64 @@v31@@ ; __int16 @@v32@@ ; __int16 @@v33@@ ; __int16 @@v34@@ ; __int16 @@v35@@ ; int @@i@@ ; int @@j@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; int @@v43@@ ; int @@v44@@ ; int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; __int64 @@v48@@ ; __int64 @@v49@@ ; _WORD * @@v50@@ ; _WORD * @@v51@@ ; __int64 @@v52@@ ; __int64 * @@v53@@ ; unsigned __int64 @@v54@@ ; @@v31@@ = @@a1@@ ; @@v30@@ = @@a2@@ ; @@v29@@ = @@a3@@ ; @@v28@@ = @@a4@@ ; @@v27@@ = @@a5@@ ; @@v26@@ = @@a6@@ ; @@v25@@ = @@a7@@ ; @@v24@@ = @@a8@@ ; @@v23@@ = @@a9@@ ; @@v54@@ = __readfsqword ( Number ) ; @@v49@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; v9 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v49@@ + Number ) + Number L ) ; v10 = ds_get_linesize ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v11@@ = @@v29@@ * v10 ; v12 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ = v9 + @@v11@@ + @@v30@@ * v12 ; @@v47@@ = @@v48@@ ; @@v50@@ = @@v26@@ ; @@v51@@ = @@v25@@ ; @@v33@@ = Number ; @@v34@@ = Number ; @@v38@@ = Number ; @@v39@@ = Number ; @@v40@@ = Number ; @@v41@@ = Number ; v13 = ( * ( unsigned __int8 * ) ( @@v31@@ + Number ) + Number ) << Number ; @@v52@@ = v13 - Number L ; @@v22@@ [ Number ] = v13 ; @@v22@@ [ Number ] = Number L ; @@v14@@ = alloca ( Number * ( ( v13 + Number L ) / Number ) ) ; @@v53@@ = @@v22@@ ; @@v42@@ = Number ; @@v43@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v38@@ == Number ) { if ( @@v33@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) || @@v34@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v33@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v39@@ ; } else if ( @@v34@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v40@@ ; } } else { @@v38@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ ) { if ( @@v38@@ == Number && @@v33@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v34@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } else { @@v33@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } } if ( @@v38@@ > Number ) break ; v15 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v15 >> Number ) ; } if ( @@v38@@ > Number && @@v40@@ > @@v39@@ ) { @@v35@@ = @@v34@@ ; @@v34@@ = @@v33@@ ; @@v33@@ = @@v35@@ ; } if ( ! * @@v24@@ || @@v33@@ != * @@v50@@ ) { @@v41@@ |= Number ; * @@v24@@ = Number ; * @@v50@@ = @@v33@@ ; } if ( @@v38@@ <= Number && ( ! * @@v23@@ || @@v34@@ != * @@v51@@ ) ) { @@v41@@ |= Number ; * @@v23@@ = Number ; * @@v51@@ = @@v34@@ ; } if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; if ( ! * @@v24@@ || @@v33@@ != * @@v50@@ ) @@v41@@ |= Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v45@@ = Number ; @@v46@@ = Number ; @@v32@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v45@@ ) { if ( * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) != @@v32@@ ) { @@v45@@ = Number ; * ( _WORD * ) ( ( char * ) @@v53@@ + @@v42@@ ) = @@v32@@ ; @@v42@@ += Number ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v46@@ = Number ; if ( @@v33@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v32@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } } else if ( @@v33@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v32@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } if ( @@v45@@ ) { * ( _WORD * ) ( ( char * ) @@v53@@ + @@v42@@ ) = @@v32@@ ; @@v42@@ += Number ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v17 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v17 >> Number ) ; } * @@v23@@ = Number ; if ( @@v42@@ > ( unsigned __int64 ) ( Number L * @@v27@@ * @@v28@@ ) ) { @@v38@@ = Number ; @@v41@@ = Number ; * @@v24@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ == Number ) { @@v42@@ = Number ; } else if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v44@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v34@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v44@@ == Number ) @@v44@@ = @@j@@ ; } else if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v44@@ = Number ; } } if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v16 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v16 >> Number ) ; } } } if ( @@v38@@ > Number ) { @@v41@@ = Number ; * @@v23@@ = Number ; * @@v24@@ = Number ; @@v38@@ = Number ; } vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v41@@ ) ; if ( @@v38@@ > Number ) { for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { v18 = * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@v31@@ + Number ) ; v19 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; v18 ( @@v31@@ , @@v48@@ , ( unsigned int ) ( @@v28@@ * v19 ) ) ; v20 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ += v20 ; } } else { if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _WORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v50@@ , Number L ) ; if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _WORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v51@@ , Number L ) ; if ( @@v43@@ ) { vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v43@@ ) ; vnc_write ( @@v31@@ , @@v53@@ , @@v42@@ ) ; } } return __readfsqword ( Number ) ^ @@v54@@ ; }", "source": [{"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "r40"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "_WORD"}, "location": "r80"}, {"n": "a7", "t": {"T": 3, "t": "_WORD"}, "location": "s-16"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "_DWORD"}, "location": "s-32"}, {"n": "v48", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s112"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s120"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s128"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v35", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s158"}, {"n": "v34", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s160"}, {"n": "v33", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s162"}, {"n": "v32", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s164"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s184"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s188"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s192"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s196"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s200"}, {"n": "v26", "t": {"T": 3, "t": "_WORD"}, "location": "s208"}, {"n": "v25", "t": {"T": 3, "t": "_WORD"}, "location": "s216"}, {"n": "v24", "t": {"T": 3, "t": "_DWORD"}, "location": "s224"}, {"n": "v23", "t": {"T": 3, "t": "_DWORD"}, "location": "s232"}, {"n": "v22", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s256"}, {"n": "v54", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v53", "t": {"T": 3, "t": "__int64"}, "location": "s64"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v51", "t": {"T": 3, "t": "_WORD"}, "location": "s80"}, {"n": "v50", "t": {"T": 3, "t": "_WORD"}, "location": "s88"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]} {"name": "send_hextile_tile_32", "code": "unsigned __int64 __fastcall send_hextile_tile_32 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , _DWORD * @@a6@@ , _DWORD * @@a7@@ , _DWORD * @@a8@@ , _DWORD * @@a9@@ ) { __int64 v9 ; int v10 ; __int64 @@v11@@ ; int v12 ; int v13 ; void * @@v14@@ ; int v15 ; int v16 ; int v17 ; void ( __fastcall * v18 ) ( __int64 , __int64 , _QWORD ) ; int v19 ; int v20 ; __int64 @@v22@@ [ Number ] ; _DWORD * @@v23@@ ; _DWORD * @@v24@@ ; _DWORD * @@v25@@ ; _DWORD * @@v26@@ ; int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; __int64 @@v31@@ ; int @@v32@@ ; int @@i@@ ; int @@j@@ ; int @@v35@@ ; int @@v36@@ ; int @@v37@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; int @@v43@@ ; int @@v44@@ ; int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; __int64 @@v48@@ ; __int64 @@v49@@ ; _DWORD * @@v50@@ ; _DWORD * @@v51@@ ; __int64 @@v52@@ ; __int64 * @@v53@@ ; unsigned __int64 @@v54@@ ; @@v31@@ = @@a1@@ ; @@v30@@ = @@a2@@ ; @@v29@@ = @@a3@@ ; @@v28@@ = @@a4@@ ; @@v27@@ = @@a5@@ ; @@v26@@ = @@a6@@ ; @@v25@@ = @@a7@@ ; @@v24@@ = @@a8@@ ; @@v23@@ = @@a9@@ ; @@v54@@ = __readfsqword ( Number ) ; @@v49@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; v9 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v49@@ + Number ) + Number L ) ; v10 = ds_get_linesize ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v11@@ = @@v29@@ * v10 ; v12 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ = v9 + @@v11@@ + @@v30@@ * v12 ; @@v47@@ = @@v48@@ ; @@v50@@ = @@v26@@ ; @@v51@@ = @@v25@@ ; @@v35@@ = Number ; @@v36@@ = Number ; @@v37@@ = Number ; @@v38@@ = Number ; @@v39@@ = Number ; @@v40@@ = Number ; v13 = ( * ( unsigned __int8 * ) ( @@v31@@ + Number ) + Number ) << Number ; @@v52@@ = v13 - Number L ; @@v22@@ [ Number ] = v13 ; @@v22@@ [ Number ] = Number L ; @@v14@@ = alloca ( Number * ( ( v13 + Number L ) / Number ) ) ; @@v53@@ = @@v22@@ ; @@v41@@ = Number ; @@v42@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v37@@ == Number ) { if ( @@v35@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) || @@v36@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v35@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v38@@ ; } else if ( @@v36@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v39@@ ; } } else { @@v37@@ = Number ; } } else if ( @@v37@@ <= Number ) { if ( @@v37@@ ) { if ( @@v37@@ == Number && @@v35@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v36@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v37@@ = Number ; } } else { @@v35@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v37@@ = Number ; } } } if ( @@v37@@ > Number ) break ; v15 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v15 >> Number ) ; } if ( @@v37@@ > Number && @@v39@@ > @@v38@@ ) { @@v46@@ = @@v36@@ ; @@v36@@ = @@v35@@ ; @@v35@@ = @@v46@@ ; } if ( ! * @@v24@@ || @@v35@@ != * @@v50@@ ) { @@v40@@ |= Number ; * @@v24@@ = Number ; * @@v50@@ = @@v35@@ ; } if ( @@v37@@ <= Number && ( ! * @@v23@@ || @@v36@@ != * @@v51@@ ) ) { @@v40@@ |= Number ; * @@v23@@ = Number ; * @@v51@@ = @@v36@@ ; } if ( @@v37@@ == Number ) { @@v40@@ |= Number ; @@v47@@ = @@v48@@ ; if ( ! * @@v24@@ || @@v35@@ != * @@v50@@ ) @@v40@@ |= Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v44@@ = Number ; @@v45@@ = Number ; @@v32@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v44@@ ) { if ( * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) != @@v32@@ ) { @@v44@@ = Number ; * ( _DWORD * ) ( ( char * ) @@v53@@ + @@v41@@ ) = @@v32@@ ; @@v41@@ += Number ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v41@@ , @@v45@@ , @@i@@ , @@j@@ - @@v45@@ , Number ) ; @@v41@@ += Number ; ++ @@v42@@ ; @@v45@@ = Number ; if ( @@v35@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v32@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v45@@ = @@j@@ ; @@v44@@ = Number ; } } } else if ( @@v35@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v32@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v45@@ = @@j@@ ; @@v44@@ = Number ; } } if ( @@v44@@ ) { * ( _DWORD * ) ( ( char * ) @@v53@@ + @@v41@@ ) = @@v32@@ ; @@v41@@ += Number ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v41@@ , @@v45@@ , @@i@@ , @@j@@ - @@v45@@ , Number ) ; @@v41@@ += Number ; ++ @@v42@@ ; } v17 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v17 >> Number ) ; } * @@v23@@ = Number ; if ( @@v41@@ > ( unsigned __int64 ) ( Number L * @@v27@@ * @@v28@@ ) ) { @@v37@@ = Number ; @@v40@@ = Number ; * @@v24@@ = Number ; } } else if ( @@v37@@ <= Number ) { if ( @@v37@@ == Number ) { @@v41@@ = Number ; } else if ( @@v37@@ == Number ) { @@v40@@ |= Number ; @@v47@@ = @@v48@@ ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v43@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v36@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v43@@ == Number ) @@v43@@ = @@j@@ ; } else if ( @@v43@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v41@@ , @@v43@@ , @@i@@ , @@j@@ - @@v43@@ , Number ) ; @@v41@@ += Number ; ++ @@v42@@ ; @@v43@@ = Number ; } } if ( @@v43@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v41@@ , @@v43@@ , @@i@@ , @@j@@ - @@v43@@ , Number ) ; @@v41@@ += Number ; ++ @@v42@@ ; } v16 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v16 >> Number ) ; } } } if ( @@v37@@ > Number ) { @@v40@@ = Number ; * @@v23@@ = Number ; * @@v24@@ = Number ; @@v37@@ = Number ; } vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v40@@ ) ; if ( @@v37@@ > Number ) { for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { v18 = * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@v31@@ + Number ) ; v19 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; v18 ( @@v31@@ , @@v48@@ , ( unsigned int ) ( @@v28@@ * v19 ) ) ; v20 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ += v20 ; } } else { if ( ( @@v40@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _DWORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v50@@ , Number L ) ; if ( ( @@v40@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _DWORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v51@@ , Number L ) ; if ( @@v42@@ ) { vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v42@@ ) ; vnc_write ( @@v31@@ , @@v53@@ , @@v41@@ ) ; } } return __readfsqword ( Number ) ^ @@v54@@ ; }", "source": [{"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "r40"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "_DWORD"}, "location": "r80"}, {"n": "a7", "t": {"T": 3, "t": "_DWORD"}, "location": "s-16"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "_DWORD"}, "location": "s-32"}, {"n": "v48", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s112"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s120"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s128"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "v37", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "v36", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v35", "t": {"T": 1, "n": "int", "s": 4}, "location": "s160"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s164"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s168"}, {"n": "v32", "t": {"T": 1, "n": "int", "s": 4}, "location": "s172"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s184"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s188"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s192"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s196"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s200"}, {"n": "v26", "t": {"T": 3, "t": "_DWORD"}, "location": "s208"}, {"n": "v25", "t": {"T": 3, "t": "_DWORD"}, "location": "s216"}, {"n": "v24", "t": {"T": 3, "t": "_DWORD"}, "location": "s224"}, {"n": "v23", "t": {"T": 3, "t": "_DWORD"}, "location": "s232"}, {"n": "v22", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s256"}, {"n": "v54", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v53", "t": {"T": 3, "t": "__int64"}, "location": "s64"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v51", "t": {"T": 3, "t": "_DWORD"}, "location": "s80"}, {"n": "v50", "t": {"T": 3, "t": "_DWORD"}, "location": "s88"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]} {"name": "send_hextile_tile_generic_8", "code": "unsigned __int64 __fastcall send_hextile_tile_generic_8 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , _BYTE * @@a6@@ , _BYTE * @@a7@@ , _DWORD * @@a8@@ , _DWORD * @@a9@@ ) { __int64 v9 ; int v10 ; __int64 @@v11@@ ; int v12 ; int v13 ; void * @@v14@@ ; int v15 ; int v16 ; int v17 ; void ( __fastcall * v18 ) ( __int64 , __int64 , _QWORD ) ; int v19 ; int v20 ; __int64 @@v22@@ [ Number ] ; _DWORD * @@v23@@ ; _DWORD * @@v24@@ ; _BYTE * @@v25@@ ; _BYTE * @@v26@@ ; int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; __int64 @@v31@@ ; char @@v32@@ ; char @@v33@@ ; unsigned __int8 @@v34@@ ; char @@v35@@ ; int @@i@@ ; int @@j@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; int @@v43@@ ; int @@v44@@ ; int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; __int64 @@v48@@ ; __int64 @@v49@@ ; _BYTE * @@v50@@ ; _BYTE * @@v51@@ ; __int64 @@v52@@ ; __int64 * @@v53@@ ; unsigned __int64 @@v54@@ ; @@v31@@ = @@a1@@ ; @@v30@@ = @@a2@@ ; @@v29@@ = @@a3@@ ; @@v28@@ = @@a4@@ ; @@v27@@ = @@a5@@ ; @@v26@@ = @@a6@@ ; @@v25@@ = @@a7@@ ; @@v24@@ = @@a8@@ ; @@v23@@ = @@a9@@ ; @@v54@@ = __readfsqword ( Number ) ; @@v49@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; v9 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v49@@ + Number ) + Number L ) ; v10 = ds_get_linesize ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v11@@ = @@v29@@ * v10 ; v12 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ = v9 + @@v11@@ + @@v30@@ * v12 ; @@v47@@ = @@v48@@ ; @@v50@@ = @@v26@@ ; @@v51@@ = @@v25@@ ; @@v32@@ = Number ; @@v33@@ = Number ; @@v38@@ = Number ; @@v39@@ = Number ; @@v40@@ = Number ; @@v41@@ = Number ; v13 = ( * ( unsigned __int8 * ) ( @@v31@@ + Number ) + Number ) << Number ; @@v52@@ = v13 - Number L ; @@v22@@ [ Number ] = v13 ; @@v22@@ [ Number ] = Number L ; @@v14@@ = alloca ( Number * ( ( v13 + Number L ) / Number ) ) ; @@v53@@ = @@v22@@ ; @@v42@@ = Number ; @@v43@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v38@@ == Number ) { if ( @@v32@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) || @@v33@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { if ( @@v32@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { ++ @@v39@@ ; } else if ( @@v33@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { ++ @@v40@@ ; } } else { @@v38@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ ) { if ( @@v38@@ == Number && @@v32@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v33@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } else { @@v32@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } } if ( @@v38@@ > Number ) break ; v15 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += v15 ; } if ( @@v38@@ > Number && @@v40@@ > @@v39@@ ) { @@v35@@ = @@v33@@ ; @@v33@@ = @@v32@@ ; @@v32@@ = @@v35@@ ; } if ( ! * @@v24@@ || @@v32@@ != * @@v50@@ ) { @@v41@@ |= Number ; * @@v24@@ = Number ; * @@v50@@ = @@v32@@ ; } if ( @@v38@@ <= Number && ( ! * @@v23@@ || @@v33@@ != * @@v51@@ ) ) { @@v41@@ |= Number ; * @@v23@@ = Number ; * @@v51@@ = @@v33@@ ; } if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; if ( ! * @@v24@@ || @@v32@@ != * @@v50@@ ) @@v41@@ |= Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v45@@ = Number ; @@v46@@ = Number ; @@v34@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v45@@ ) { if ( @@v34@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v45@@ = Number ; vnc_convert_pixel ( @@v31@@ , ( char * ) @@v53@@ + @@v42@@ , @@v34@@ ) ; @@v42@@ += * ( unsigned __int8 * ) ( @@v31@@ + Number ) ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v46@@ = Number ; if ( @@v32@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v34@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } } else if ( @@v32@@ != * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { @@v34@@ = * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } if ( @@v45@@ ) { vnc_convert_pixel ( @@v31@@ , ( char * ) @@v53@@ + @@v42@@ , @@v34@@ ) ; @@v42@@ += * ( unsigned __int8 * ) ( @@v31@@ + Number ) ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v17 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += v17 ; } * @@v23@@ = Number ; if ( @@v42@@ > ( unsigned __int64 ) ( @@v27@@ * @@v28@@ ) ) { @@v38@@ = Number ; @@v41@@ = Number ; * @@v24@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ == Number ) { @@v42@@ = Number ; } else if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v44@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v33@@ == * ( _BYTE * ) ( @@j@@ + @@v47@@ ) ) { if ( @@v44@@ == Number ) @@v44@@ = @@j@@ ; } else if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v44@@ = Number ; } } if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v16 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += v16 ; } } } if ( @@v38@@ > Number ) { @@v41@@ = Number ; * @@v23@@ = Number ; * @@v24@@ = Number ; @@v38@@ = Number ; } vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v41@@ ) ; if ( @@v38@@ > Number ) { for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { v18 = * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@v31@@ + Number ) ; v19 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; v18 ( @@v31@@ , @@v48@@ , ( unsigned int ) ( @@v28@@ * v19 ) ) ; v20 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ += v20 ; } } else { if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _BYTE * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v50@@ , Number L ) ; if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _BYTE * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v51@@ , Number L ) ; if ( @@v43@@ ) { vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v43@@ ) ; vnc_write ( @@v31@@ , @@v53@@ , @@v42@@ ) ; } } return __readfsqword ( Number ) ^ @@v54@@ ; }", "source": [{"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "r40"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "_BYTE"}, "location": "r80"}, {"n": "a7", "t": {"T": 3, "t": "_BYTE"}, "location": "s-16"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "_DWORD"}, "location": "s-32"}, {"n": "v48", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s112"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s120"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s128"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v35", "t": {"T": 1, "n": "char", "s": 1}, "location": "s157"}, {"n": "v34", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s158"}, {"n": "v33", "t": {"T": 1, "n": "char", "s": 1}, "location": "s159"}, {"n": "v32", "t": {"T": 1, "n": "char", "s": 1}, "location": "s160"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s168"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s172"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s176"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s180"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s184"}, {"n": "v26", "t": {"T": 3, "t": "_BYTE"}, "location": "s192"}, {"n": "v25", "t": {"T": 3, "t": "_BYTE"}, "location": "s200"}, {"n": "v24", "t": {"T": 3, "t": "_DWORD"}, "location": "s208"}, {"n": "v23", "t": {"T": 3, "t": "_DWORD"}, "location": "s216"}, {"n": "v22", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s240"}, {"n": "v54", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v53", "t": {"T": 3, "t": "__int64"}, "location": "s64"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v51", "t": {"T": 3, "t": "_BYTE"}, "location": "s80"}, {"n": "v50", "t": {"T": 3, "t": "_BYTE"}, "location": "s88"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]} {"name": "send_hextile_tile_generic_16", "code": "unsigned __int64 __fastcall send_hextile_tile_generic_16 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , _WORD * @@a6@@ , _WORD * @@a7@@ , _DWORD * @@a8@@ , _DWORD * @@a9@@ ) { __int64 v9 ; int v10 ; __int64 @@v11@@ ; int v12 ; int v13 ; void * @@v14@@ ; int v15 ; int v16 ; int v17 ; void ( __fastcall * v18 ) ( __int64 , __int64 , _QWORD ) ; int v19 ; int v20 ; __int64 @@v22@@ [ Number ] ; _DWORD * @@v23@@ ; _DWORD * @@v24@@ ; _WORD * @@v25@@ ; _WORD * @@v26@@ ; int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; __int64 @@v31@@ ; __int16 @@v32@@ ; __int16 @@v33@@ ; unsigned __int16 @@v34@@ ; __int16 @@v35@@ ; int @@i@@ ; int @@j@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; int @@v43@@ ; int @@v44@@ ; int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; __int64 @@v48@@ ; __int64 @@v49@@ ; _WORD * @@v50@@ ; _WORD * @@v51@@ ; __int64 @@v52@@ ; __int64 * @@v53@@ ; unsigned __int64 @@v54@@ ; @@v31@@ = @@a1@@ ; @@v30@@ = @@a2@@ ; @@v29@@ = @@a3@@ ; @@v28@@ = @@a4@@ ; @@v27@@ = @@a5@@ ; @@v26@@ = @@a6@@ ; @@v25@@ = @@a7@@ ; @@v24@@ = @@a8@@ ; @@v23@@ = @@a9@@ ; @@v54@@ = __readfsqword ( Number ) ; @@v49@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; v9 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v49@@ + Number ) + Number L ) ; v10 = ds_get_linesize ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v11@@ = @@v29@@ * v10 ; v12 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ = v9 + @@v11@@ + @@v30@@ * v12 ; @@v47@@ = @@v48@@ ; @@v50@@ = @@v26@@ ; @@v51@@ = @@v25@@ ; @@v32@@ = Number ; @@v33@@ = Number ; @@v38@@ = Number ; @@v39@@ = Number ; @@v40@@ = Number ; @@v41@@ = Number ; v13 = ( * ( unsigned __int8 * ) ( @@v31@@ + Number ) + Number ) << Number ; @@v52@@ = v13 - Number L ; @@v22@@ [ Number ] = v13 ; @@v22@@ [ Number ] = Number L ; @@v14@@ = alloca ( Number * ( ( v13 + Number L ) / Number ) ) ; @@v53@@ = @@v22@@ ; @@v42@@ = Number ; @@v43@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v38@@ == Number ) { if ( @@v32@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) || @@v33@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v32@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v39@@ ; } else if ( @@v33@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v40@@ ; } } else { @@v38@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ ) { if ( @@v38@@ == Number && @@v32@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v33@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } else { @@v32@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v38@@ = Number ; } } } if ( @@v38@@ > Number ) break ; v15 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v15 >> Number ) ; } if ( @@v38@@ > Number && @@v40@@ > @@v39@@ ) { @@v35@@ = @@v33@@ ; @@v33@@ = @@v32@@ ; @@v32@@ = @@v35@@ ; } if ( ! * @@v24@@ || @@v32@@ != * @@v50@@ ) { @@v41@@ |= Number ; * @@v24@@ = Number ; * @@v50@@ = @@v32@@ ; } if ( @@v38@@ <= Number && ( ! * @@v23@@ || @@v33@@ != * @@v51@@ ) ) { @@v41@@ |= Number ; * @@v23@@ = Number ; * @@v51@@ = @@v33@@ ; } if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; if ( ! * @@v24@@ || @@v32@@ != * @@v50@@ ) @@v41@@ |= Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v45@@ = Number ; @@v46@@ = Number ; @@v34@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v45@@ ) { if ( @@v34@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v45@@ = Number ; vnc_convert_pixel ( @@v31@@ , ( char * ) @@v53@@ + @@v42@@ , @@v34@@ ) ; @@v42@@ += * ( unsigned __int8 * ) ( @@v31@@ + Number ) ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v46@@ = Number ; if ( @@v32@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v34@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } } else if ( @@v32@@ != * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v34@@ = * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v46@@ = @@j@@ ; @@v45@@ = Number ; } } if ( @@v45@@ ) { vnc_convert_pixel ( @@v31@@ , ( char * ) @@v53@@ + @@v42@@ , @@v34@@ ) ; @@v42@@ += * ( unsigned __int8 * ) ( @@v31@@ + Number ) ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v46@@ , @@i@@ , @@j@@ - @@v46@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v17 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v17 >> Number ) ; } * @@v23@@ = Number ; if ( @@v42@@ > ( unsigned __int64 ) ( Number L * @@v27@@ * @@v28@@ ) ) { @@v38@@ = Number ; @@v41@@ = Number ; * @@v24@@ = Number ; } } else if ( @@v38@@ <= Number ) { if ( @@v38@@ == Number ) { @@v42@@ = Number ; } else if ( @@v38@@ == Number ) { @@v41@@ |= Number ; @@v47@@ = @@v48@@ ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v44@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v33@@ == * ( _WORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v44@@ == Number ) @@v44@@ = @@j@@ ; } else if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; @@v44@@ = Number ; } } if ( @@v44@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v42@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v42@@ += Number ; ++ @@v43@@ ; } v16 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v16 >> Number ) ; } } } if ( @@v38@@ > Number ) { @@v41@@ = Number ; * @@v23@@ = Number ; * @@v24@@ = Number ; @@v38@@ = Number ; } vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v41@@ ) ; if ( @@v38@@ > Number ) { for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { v18 = * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@v31@@ + Number ) ; v19 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; v18 ( @@v31@@ , @@v48@@ , ( unsigned int ) ( @@v28@@ * v19 ) ) ; v20 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ += v20 ; } } else { if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _WORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v50@@ , Number L ) ; if ( ( @@v41@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _WORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v51@@ , Number L ) ; if ( @@v43@@ ) { vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v43@@ ) ; vnc_write ( @@v31@@ , @@v53@@ , @@v42@@ ) ; } } return __readfsqword ( Number ) ^ @@v54@@ ; }", "source": [{"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "r40"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "_WORD"}, "location": "r80"}, {"n": "a7", "t": {"T": 3, "t": "_WORD"}, "location": "s-16"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "_DWORD"}, "location": "s-32"}, {"n": "v48", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s112"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s120"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s128"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v35", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s158"}, {"n": "v34", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s160"}, {"n": "v33", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s162"}, {"n": "v32", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s164"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s184"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s188"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s192"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s196"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s200"}, {"n": "v26", "t": {"T": 3, "t": "_WORD"}, "location": "s208"}, {"n": "v25", "t": {"T": 3, "t": "_WORD"}, "location": "s216"}, {"n": "v24", "t": {"T": 3, "t": "_DWORD"}, "location": "s224"}, {"n": "v23", "t": {"T": 3, "t": "_DWORD"}, "location": "s232"}, {"n": "v22", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s256"}, {"n": "v54", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v53", "t": {"T": 3, "t": "__int64"}, "location": "s64"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v51", "t": {"T": 3, "t": "_WORD"}, "location": "s80"}, {"n": "v50", "t": {"T": 3, "t": "_WORD"}, "location": "s88"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]} {"name": "send_hextile_tile_generic_32", "code": "unsigned __int64 __fastcall send_hextile_tile_generic_32 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , _DWORD * @@a6@@ , _DWORD * @@a7@@ , _DWORD * @@a8@@ , _DWORD * @@a9@@ ) { __int64 v9 ; int v10 ; __int64 @@v11@@ ; int v12 ; int v13 ; void * @@v14@@ ; int v15 ; int v16 ; int v17 ; void ( __fastcall * v18 ) ( __int64 , __int64 , _QWORD ) ; int v19 ; int v20 ; __int64 @@v22@@ [ Number ] ; _DWORD * @@v23@@ ; _DWORD * @@v24@@ ; _DWORD * @@v25@@ ; _DWORD * @@v26@@ ; int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; __int64 @@v31@@ ; int @@i@@ ; int @@j@@ ; int @@v34@@ ; int @@v35@@ ; int @@v36@@ ; int @@v37@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; int @@v43@@ ; int @@v44@@ ; unsigned int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; __int64 @@v48@@ ; __int64 @@v49@@ ; _DWORD * @@v50@@ ; _DWORD * @@v51@@ ; __int64 @@v52@@ ; __int64 * @@v53@@ ; unsigned __int64 @@v54@@ ; @@v31@@ = @@a1@@ ; @@v30@@ = @@a2@@ ; @@v29@@ = @@a3@@ ; @@v28@@ = @@a4@@ ; @@v27@@ = @@a5@@ ; @@v26@@ = @@a6@@ ; @@v25@@ = @@a7@@ ; @@v24@@ = @@a8@@ ; @@v23@@ = @@a9@@ ; @@v54@@ = __readfsqword ( Number ) ; @@v49@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; v9 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v49@@ + Number ) + Number L ) ; v10 = ds_get_linesize ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v11@@ = @@v29@@ * v10 ; v12 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ = v9 + @@v11@@ + @@v30@@ * v12 ; @@v47@@ = @@v48@@ ; @@v50@@ = @@v26@@ ; @@v51@@ = @@v25@@ ; @@v34@@ = Number ; @@v35@@ = Number ; @@v36@@ = Number ; @@v37@@ = Number ; @@v38@@ = Number ; @@v39@@ = Number ; v13 = ( * ( unsigned __int8 * ) ( @@v31@@ + Number ) + Number ) << Number ; @@v52@@ = v13 - Number L ; @@v22@@ [ Number ] = v13 ; @@v22@@ [ Number ] = Number L ; @@v14@@ = alloca ( Number * ( ( v13 + Number L ) / Number ) ) ; @@v53@@ = @@v22@@ ; @@v40@@ = Number ; @@v41@@ = Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v36@@ == Number ) { if ( @@v34@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) || @@v35@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v34@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v37@@ ; } else if ( @@v35@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { ++ @@v38@@ ; } } else { @@v36@@ = Number ; } } else if ( @@v36@@ <= Number ) { if ( @@v36@@ ) { if ( @@v36@@ == Number && @@v34@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v35@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v36@@ = Number ; } } else { @@v34@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v36@@ = Number ; } } } if ( @@v36@@ > Number ) break ; v15 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v15 >> Number ) ; } if ( @@v36@@ > Number && @@v38@@ > @@v37@@ ) { @@v46@@ = @@v35@@ ; @@v35@@ = @@v34@@ ; @@v34@@ = @@v46@@ ; } if ( ! * @@v24@@ || @@v34@@ != * @@v50@@ ) { @@v39@@ |= Number ; * @@v24@@ = Number ; * @@v50@@ = @@v34@@ ; } if ( @@v36@@ <= Number && ( ! * @@v23@@ || @@v35@@ != * @@v51@@ ) ) { @@v39@@ |= Number ; * @@v23@@ = Number ; * @@v51@@ = @@v35@@ ; } if ( @@v36@@ == Number ) { @@v39@@ |= Number ; @@v47@@ = @@v48@@ ; if ( ! * @@v24@@ || @@v34@@ != * @@v50@@ ) @@v39@@ |= Number ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v43@@ = Number ; @@v44@@ = Number ; @@v45@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v43@@ ) { if ( @@v45@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v43@@ = Number ; vnc_convert_pixel ( @@v31@@ , ( char * ) @@v53@@ + @@v40@@ , @@v45@@ ) ; @@v40@@ += * ( unsigned __int8 * ) ( @@v31@@ + Number ) ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v40@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v40@@ += Number ; ++ @@v41@@ ; @@v44@@ = Number ; if ( @@v34@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v45@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v44@@ = @@j@@ ; @@v43@@ = Number ; } } } else if ( @@v34@@ != * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { @@v45@@ = * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ; @@v44@@ = @@j@@ ; @@v43@@ = Number ; } } if ( @@v43@@ ) { vnc_convert_pixel ( @@v31@@ , ( char * ) @@v53@@ + @@v40@@ , @@v45@@ ) ; @@v40@@ += * ( unsigned __int8 * ) ( @@v31@@ + Number ) ; hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v40@@ , @@v44@@ , @@i@@ , @@j@@ - @@v44@@ , Number ) ; @@v40@@ += Number ; ++ @@v41@@ ; } v17 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v17 >> Number ) ; } * @@v23@@ = Number ; if ( @@v40@@ > ( unsigned __int64 ) ( Number L * @@v27@@ * @@v28@@ ) ) { @@v36@@ = Number ; @@v39@@ = Number ; * @@v24@@ = Number ; } } else if ( @@v36@@ <= Number ) { if ( @@v36@@ == Number ) { @@v40@@ = Number ; } else if ( @@v36@@ == Number ) { @@v39@@ |= Number ; @@v47@@ = @@v48@@ ; for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { @@v42@@ = Number ; for ( @@j@@ = Number ; @@j@@ < @@v28@@ ; ++ @@j@@ ) { if ( @@v35@@ == * ( _DWORD * ) ( Number L * @@j@@ + @@v47@@ ) ) { if ( @@v42@@ == Number ) @@v42@@ = @@j@@ ; } else if ( @@v42@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v40@@ , @@v42@@ , @@i@@ , @@j@@ - @@v42@@ , Number ) ; @@v40@@ += Number ; ++ @@v41@@ ; @@v42@@ = Number ; } } if ( @@v42@@ != Number ) { hextile_enc_cord ( ( _BYTE * ) @@v53@@ + @@v40@@ , @@v42@@ , @@i@@ , @@j@@ - @@v42@@ , Number ) ; @@v40@@ += Number ; ++ @@v41@@ ; } v16 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v47@@ += Number * ( ( unsigned __int64 ) v16 >> Number ) ; } } } if ( @@v36@@ > Number ) { @@v39@@ = Number ; * @@v23@@ = Number ; * @@v24@@ = Number ; @@v36@@ = Number ; } vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v39@@ ) ; if ( @@v36@@ > Number ) { for ( @@i@@ = Number ; @@i@@ < @@v27@@ ; ++ @@i@@ ) { v18 = * ( void ( __fastcall * * ) ( __int64 , __int64 , _QWORD ) ) ( @@v31@@ + Number ) ; v19 = ds_get_bytes_per_pixel ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; v18 ( @@v31@@ , @@v48@@ , ( unsigned int ) ( @@v28@@ * v19 ) ) ; v20 = ds_get_linesize ( * ( _QWORD * ) ( @@v31@@ + Number ) ) ; @@v48@@ += v20 ; } } else { if ( ( @@v39@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _DWORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v50@@ , Number L ) ; if ( ( @@v39@@ & Number ) != Number ) ( * ( void ( __fastcall * * ) ( __int64 , _DWORD * , __int64 ) ) ( @@v31@@ + Number ) ) ( @@v31@@ , @@v51@@ , Number L ) ; if ( @@v41@@ ) { vnc_write_u8 ( @@v31@@ , ( unsigned __int8 ) @@v41@@ ) ; vnc_write ( @@v31@@ , @@v53@@ , @@v40@@ ) ; } } return __readfsqword ( Number ) ^ @@v54@@ ; }", "source": [{"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r104"}, {"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "r40"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "_DWORD"}, "location": "r80"}, {"n": "a7", "t": {"T": 3, "t": "_DWORD"}, "location": "s-16"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "_DWORD"}, "location": "s-32"}, {"n": "v48", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s112"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "v45", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s120"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v43", "t": {"T": 1, "n": "int", "s": 4}, "location": "s128"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "v37", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "v36", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v35", "t": {"T": 1, "n": "int", "s": 4}, "location": "s160"}, {"n": "v34", "t": {"T": 1, "n": "int", "s": 4}, "location": "s164"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s168"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s172"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s184"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s188"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s192"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s196"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s200"}, {"n": "v26", "t": {"T": 3, "t": "_DWORD"}, "location": "s208"}, {"n": "v25", "t": {"T": 3, "t": "_DWORD"}, "location": "s216"}, {"n": "v24", "t": {"T": 3, "t": "_DWORD"}, "location": "s224"}, {"n": "v23", "t": {"T": 3, "t": "_DWORD"}, "location": "s232"}, {"n": "v22", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s256"}, {"n": "v54", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v53", "t": {"T": 3, "t": "__int64"}, "location": "s64"}, {"n": "v52", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v51", "t": {"T": 3, "t": "_DWORD"}, "location": "s80"}, {"n": "v50", "t": {"T": 3, "t": "_DWORD"}, "location": "s88"}, {"n": "v49", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]}