cseg01:0208 sub_208 proc far ; DATA XREF: cseg01:010E↑o
cseg01:0208
cseg01:0208 var_500 = byte ptr -500h
cseg01:0208 var_400 = byte ptr -400h
cseg01:0208 var_300 = byte ptr -300h
cseg01:0208 var_200 = byte ptr -200h
cseg01:0208 var_100 = byte ptr -100h
cseg01:0208 arg_0 = dword ptr 6
cseg01:0208
cseg01:0208 push bp
cseg01:0209 mov bp, sp
cseg01:020B mov ax, 500h
cseg01:020E call @__StackCheck$q4Word ; __StackCheck(Word)
cseg01:0213 sub sp, 500h
cseg01:0217 lea di, [bp+var_400]
cseg01:021B push ss
cseg01:021C push di
cseg01:021D mov di, offset aG3df ; "g3df"
cseg01:0220 push cs
cseg01:0221 push di
cseg01:0222 call @$basg$qm6Stringt1 ; 生成Delphi字符串:"g3df"
cseg01:0227 lea di, [bp+var_300] ; es:di 保存用户名的缓冲区
cseg01:022B push ss
cseg01:022C push di
cseg01:022D les di, [bp+arg_0]
cseg01:0230 les di, es:[di+18Ch]
cseg01:0235 push es
cseg01:0236 push di ; this
cseg01:0237 call @TControl@GetText$qv ; 读取用户名:username9977
cseg01:023C call @Concat$qm6Stringt1 ; 连接字符串:"g3df" + "username9977"
cseg01:0241 lea di, [bp+var_100]
cseg01:0245 push ss
cseg01:0246 push di ; es:di 输出结果缓冲区
cseg01:0247 push 0FFh
cseg01:024A call @$basg$qm6Stringt14Byte ; 生成Delphi字符串:"g3dfusername9977"
cseg01:024F lea di, [bp+var_300] ; es:di ===> 用户名:username9977
cseg01:0253 push ss
cseg01:0254 push di
cseg01:0255 lea di, [bp+var_100] ; es:di ===>连接后的字符串:"g3dfusername9977"
cseg01:0259 push ss
cseg01:025A push di
cseg01:025B call @$basg$qm6Stringt1 ; 生成字符串:"g3dfusername9977"
cseg01:0260 mov di, offset aH9cf8 ; "h9cf8"
cseg01:0263 push cs
cseg01:0264 push di
cseg01:0265 call @Concat$qm6Stringt1 ; 连接字符串:"g3dfusername9977" + "h9cf8"
cseg01:026A lea di, [bp+var_200] ; es:di ===> 字符串缓冲区
cseg01:026E push ss
cseg01:026F push di
cseg01:0270 push 0FFh
cseg01:0273 call @$basg$qm6Stringt14Byte ; 生成Delphi字符串:"g3dfusername9977h9cf8"
cseg01:0278 lea di, [bp+var_300] ; es:di ==> delphi字符串数据区
cseg01:027C push ss
cseg01:027D push di
cseg01:027E les di, [bp+arg_0]
cseg01:0281 les di, es:[di+18Ch]
cseg01:0286 push es
cseg01:0287 push di ; this
cseg01:0288 call @TControl@GetText$qv ; 再次取用户名
cseg01:028D add sp, 4
cseg01:0290 cmp [bp+var_300], 0 ; 字符串长度不等于0?
cseg01:0295 jnz short loc_2AD
cseg01:0297 mov di, offset aNaahWrong ; "Naah! Wrong!"
cseg01:029A push cs
cseg01:029B push di ; __int32
cseg01:029C les di, [bp+arg_0]
cseg01:029F les di, es:[di+184h]
cseg01:02A4 push es ; int
cseg01:02A5 push di ; TControl *
cseg01:02A6 call @TControl@SetText$q8TCaption ; TControl::SetText(TCaption)
cseg01:02AB jmp short locret_30F
cseg01:02AD ; ---------------------------------------------------------------------------
cseg01:02AD
cseg01:02AD loc_2AD: ; CODE XREF: sub_208+8D↑j
cseg01:02AD lea di, [bp+var_400] ; es:di ==> delphi字符串数据区,准备保存序列号
cseg01:02B1 push ss
cseg01:02B2 push di
cseg01:02B3 les di, [bp+arg_0]
cseg01:02B6 les di, es:[di+17Ch]
cseg01:02BB push es
cseg01:02BC push di ; this
cseg01:02BD call @TControl@GetText$qv ; 读取序列号
cseg01:02C2 lea di, [bp+var_500]
cseg01:02C6 push ss
cseg01:02C7 push di
cseg01:02C8 lea di, [bp+var_100] ; es:di ===> "g3dfusername9977"
cseg01:02CC push ss
cseg01:02CD push di
cseg01:02CE call @$basg$qm6Stringt1 ; 生成字符串:"g3dfusername9977"
cseg01:02D3 lea di, [bp+var_200] ; es:di ===> "g3dfusername9977h9cf8"
cseg01:02D7 push ss
cseg01:02D8 push di
cseg01:02D9 call @Concat$qm6Stringt1 ; 连接字符:"g3dfusername9977" + "g3dfusername9977h9cf8"
cseg01:02DE call @$bsub$qm6Stringt1 ; 比较上面连接的字符串是否与输入的序列号相等,不相等返回非0,相等返回0
cseg01:02E3 jnz short loc_2FB
cseg01:02E5 mov di, offset aYeahGoodWork ; "YEAH! Good work!"
cseg01:02E8 push cs
cseg01:02E9 push di ; __int32
cseg01:02EA les di, [bp+arg_0]
cseg01:02ED les di, es:[di+184h]
cseg01:02F2 push es ; int
cseg01:02F3 push di ; TControl *
cseg01:02F4 call @TControl@SetText$q8TCaption ; TControl::SetText(TCaption)
cseg01:02F9 jmp short locret_30F
cseg01:02FB ; ---------------------------------------------------------------------------
cseg01:02FB
cseg01:02FB loc_2FB: ; CODE XREF: sub_208+DB↑j
cseg01:02FB mov di, offset aNaahWrong ; "Naah! Wrong!"
cseg01:02FE push cs
cseg01:02FF push di ; __int32
cseg01:0300 les di, [bp+arg_0]
cseg01:0303 les di, es:[di+184h]
cseg01:0308 push es ; int
cseg01:0309 push di ; TControl *
cseg01:030A call @TControl@SetText$q8TCaption ; TControl::SetText(TCaption)
cseg01:030F
cseg01:030F locret_30F: ; CODE XREF: sub_208+A3↑j
cseg01:030F ; sub_208+F1↑j
cseg01:030F leave
cseg01:0310 retf 8
cseg01:0310 sub_208 endp