Пишу бота. В запросах есть сигнатура, - она вычисляется как мд5 от какой-то строки, которая получается из определённо расставленных параметров. Покопавшись в декомпилированном флеше нашёл нужную функцию, которая собственно и расставляет параметры.
	PHP код:
	
		
		
			
private function concat(arg1:*):String
        {
            var loc1:*;
            loc1 = 0;
            var loc4:*;
            loc4 = null;
            var loc5:*;
            loc5 = null;
            var loc6:*;
            loc6 = null;
            var loc7:*;
            loc7 = undefined;
            var loc8:*;
            loc8 = false;
            var loc2:*;
            loc2 = "";
            var loc3:*;
            if ((loc3 = arg1 as Array) == null)
            {
                if (String(arg1) != "[object Object]")
                {
                    loc2 = loc2 + arg1;
                }
                else 
                {
                    loc5 = [];
                    loc8 = true;
                    var loc9:*;
                    loc9 = 0;
                    var loc10:*;
                    loc10 = arg1;
                    for (loc6 in loc10)
                    {
                        loc7 = arg1[loc6];
                        if ((loc4 = this.concat(loc7)).length > 0)
                        {
                            if (isNaN(Number(loc6)))
                            {
                                loc8 = false;
                            }
                            loc5.push({"param":loc6, "value":loc4});
                            continue;
                        }
                        loc5.push({"param":loc6, "value":""});
                    }
                    if (loc8)
                    {
                        loc5.sortOn("param", Array.DESCENDING | Array.NUMERIC);
                    }
                    else 
                    {
                        loc5.sortOn("param", Array.DESCENDING);
                    }
                    loc1 = (loc5.length - 1);
                    while (loc1 >= 0) 
                    {
                        loc2 = loc2 + loc5[loc1].param + loc5[loc1].value;
                        loc1 = (loc1 - 1);
                    }
                }
            }
            else 
            {
                loc1 = 0;
                while (loc1 < loc3.length) 
                {
                    loc2 = loc2 + loc1.toString() + this.concat(loc3[loc1]);
                    ++loc1;
                }
            }
            return loc2;
        } 
		
		
	 
 
к ней идет обращение из другой функции, которая передает параметры
	PHP код:
	
		
		
			
var req:Object;
req = null;
...
req = {};
req.controller =  "friend";   //---обьявлен как string
req.action =       "openChest";    //---обьявлен как string
req.params =     {"userId":-1, "screenId":0}   //---обьявлен как object
req.time =        1384842545;   //---обьявлен как int
var loc2:*;
loc2 = this.concat(req); 
		
		
	 
 
Обьясните что будет на выходе функции concat, если можно, то хотелось бы увидеть аналогию функции на delphi.