Что нового

# Помогите разобрать код

Статус
Закрыто для дальнейших ответов.

#### bed

##### Новичок
Ребят посмогите разобрать код...
Код:
``````Func Fn002E(\$Arg00, \$Arg01, \$Arg02, \$ArgOpt03 = 1)
If \$Arg00 <> 0 And \$Arg00 <> 1 Then
SetError(1)
Return ""
ElseIf \$Arg01 = "" Or \$Arg02 = "" Then
SetError(1)
Return ""
Else
If Number(\$ArgOpt03) <= 0 Or Int(\$ArgOpt03) <> \$ArgOpt03 Then \$ArgOpt03 = 1
Local \$Var0317
Local \$Var0318
Local \$Var0319
Local \$Var031A
Local \$Local002C[0x0100][2]
Local \$Var031B
Local \$Var031C
Local \$Var031D
Local \$Var031E
Local \$Var031F
Local \$Var0320
Local \$Var0321
If \$Arg00 = 1 Then
For \$Var0322 = 0 To \$ArgOpt03 Step 1
\$Var0319 = ""
\$Var0318 = ""
\$Var0317 = ""
For \$Var0319 = 1 To StringLen(\$Arg01)
If \$Var0318 = StringLen(\$Arg02) Then
\$Var0318 = 1
Else
\$Var0318 += 1
EndIf
\$Var0317 = \$Var0317 & Chr(BitXOR(Asc(StringMid(\$Arg01, \$Var0319, 1)), Asc(StringMid(\$Arg02, \$Var0318, 1)), 0x00FF))
Next
\$Arg01 = \$Var0317
\$Var031B = ""
\$Var031C = 0
\$Var031D = ""
\$Var031E = ""
\$Var031F = ""
\$Var0321 = ""
\$Var0320 = ""
\$Var031A = ""
\$Local002C = ""
Local \$Local002C[0x0100][2]
For \$Var031B = 0 To 0x00FF
\$Local002C[\$Var031B][1] = Asc(StringMid(\$Arg02, Mod(\$Var031B, StringLen(\$Arg02)) + 1, 1))
\$Local002C[\$Var031B][0] = \$Var031B
Next
For \$Var031B = 0 To 0x00FF
\$Var031C = Mod((\$Var031C + \$Local002C[\$Var031B][0] + \$Local002C[\$Var031B][1]), 0x0100)
\$Var031A = \$Local002C[\$Var031B][0]
\$Local002C[\$Var031B][0] = \$Local002C[\$Var031C][0]
\$Local002C[\$Var031C][0] = \$Var031A
Next
For \$Var031B = 1 To StringLen(\$Arg01)
\$Var031D = Mod((\$Var031D + 1), 0x0100)
\$Var031E = Mod((\$Var031E + \$Local002C[\$Var031D][0]), 0x0100)
\$Var031F = \$Local002C[Mod((\$Local002C[\$Var031D][0] + \$Local002C[\$Var031E][0]), 0x0100)][0]
\$Var0321 = BitXOR(Asc(StringMid(\$Arg01, \$Var031B, 1)), \$Var031F)
\$Var0320 &= Hex(\$Var0321, 2)
Next
\$Arg01 = \$Var0320
Next
Else
For \$Var0322 = 0 To \$ArgOpt03 Step 1
\$Var031C = 0
\$Var031D = ""
\$Var031E = ""
\$Var031F = ""
\$Var0321 = ""
\$Var0320 = ""
\$Var031A = ""
\$Local002C = ""
Local \$Local002C[0x0100][2]
For \$Var031B = 0 To 0x00FF
\$Local002C[\$Var031B][1] = Asc(StringMid(\$Arg02, Mod(\$Var031B, StringLen(\$Arg02)) + 1, 1))
\$Local002C[\$Var031B][0] = \$Var031B
Next
For \$Var031B = 0 To 0x00FF
\$Var031C = Mod((\$Var031C + \$Local002C[\$Var031B][0] + \$Local002C[\$Var031B][1]), 0x0100)
\$Var031A = \$Local002C[\$Var031B][0]
\$Local002C[\$Var031B][0] = \$Local002C[\$Var031C][0]
\$Local002C[\$Var031C][0] = \$Var031A
Next
For \$Var031B = 1 To StringLen(\$Arg01) Step 2
\$Var031D = Mod((\$Var031D + 1), 0x0100)
\$Var031E = Mod((\$Var031E + \$Local002C[\$Var031D][0]), 0x0100)
\$Var031F = \$Local002C[Mod((\$Local002C[\$Var031D][0] + \$Local002C[\$Var031E][0]), 0x0100)][0]
\$Var0321 = BitXOR(Dec(StringMid(\$Arg01, \$Var031B, 2)), \$Var031F)
\$Var0320 = \$Var0320 & Chr(\$Var0321)
Next
\$Arg01 = \$Var0320
\$Var0319 = ""
\$Var0318 = ""
\$Var0317 = ""
For \$Var0319 = 1 To StringLen(\$Arg01)
If \$Var0318 = StringLen(\$Arg02) Then
\$Var0318 = 1
Else
\$Var0318 += 1
EndIf
\$Var0317 &= Chr(BitXOR(Asc(StringMid(\$Arg01, \$Var0319, 1)), Asc(StringMid(\$Arg02, \$Var0318, 1)), 0x00FF))
Next
\$Arg01 = \$Var0317
Next
EndIf
Return \$Arg01
EndIf
EndFunc``````

#### kaster

##### Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
я даже знаю как он получен :D
непонятно чего ты хочешь. чтобы тебе его построчно разобрали? там одни элементарные функции. справку в руки и вперед.

#### Guezt

##### Продвинутый
OffTopic:
поддерживаю Kaster Декомпилировать разобрался как, значит и чтение справки не составит никакой трудности.

#### Yashied

##### Модератор
Команда форума
Глобальный модератор
Тема закрыта.

Статус
Закрыто для дальнейших ответов.
Похожие темы